우리는 PM과 다시 중간 점검 회의를 했다. 대화 생성 JJ봇의 설계를 최종적으로 결정해야 했다. 남현이가 전보다 좀 자신 있는 어조로 회의의 포문을 열었다. JJ봇은 미가공 데이터의 품사 태깅 후에 발화자의 화계를 식별해야 한다고 했다. 품사 태깅을 하면 자연스럽게 말뭉치의 형태 분석이 이루어지는데 이를 통해서 문장 종류를 분류하는 작업이 수행된다고 했다. 그다음으로는 발화문의 의미를 분석하고 마지막으로 대화가 이루어지는 상황에서 발화자가 가지는 발화 의도 즉, 화행을 필수적으로 고려해야 한다고 했다. 따라서 JJ봇은 대화 맥락을 반영한 화행 기반 알고리즘을 구성해야 한다고 했다. 항상 고개만 끄덕이던 PM이 한마디 했다.
“그건 그냥 입력값을 단순히 나열한 거야. 트랜스포머 인공 신경망처럼 다면 복합적이지 않다고.”
“남현, 나와 대화한 걸 그냥 그대로 말하면 어떡해. 응용했어야지.”
알렉스의 말은 항상 그렇듯 절제돼 있었고 냉정했지만 정리된 친절함이 묻어났다. 남현이는 자신이 무슨 말을 했는지 깡그리 잊어버렸다. 그런데 부끄럽지 않았다. 다음번에도 알렉스는 남현이에게 또 어떻게든 대화를 통해 이끌어 줄 것이라는 신의가 생겼다.
곧이어 알렉스가 발표를 시작했다. 그가 제안한 알고리즘 구성의 핵심은 처음부터 발화자가 누구인지, 정보를 분석하는 것을 피해야 한다고 했다. 그것은 정답이 아니라고 강조했다. 제일 중요한 것은 문장 제일 끝에 위치하는 서술어를 가장 먼저 분석하는 것을 기본으로 해야 한다고 말했다. 이를 통해 화자와 청자의 화계를 세 가지 종류로 분류한다고 했다. 화계가 명확히 분류되면 대화 생성 AI가 의미 파악을 자연히 할 것이라고 부연 설명했다. 그런데 의미부와 화행부 사이의 일치가 항상 발생하는 것이 아니므로 문장이 내포한 의미가 대화 상황에 따라 어떤 화행 기능을 가지는지 알려 주는 ‘결정적 화행 결정면’ 분석이 알고리즘 구성의 핵심이라고 했다.
PM은 고개를 크게 끄덕였다. 남현이가 항상 해 왔던 생각처럼 알렉스는 정말 잘난 녀석이라는 것이 다시금 증명되었다. 기분 나쁘지 않게 사람을 배려해 주고 기회 주고 최종적으로 적당한 선에서 선을 긋고 배제하는 것까지 이 모든 걸 능수능란하게 할 줄 아는 진정한 능력자였다. 결국, 남현이는 언어학자가 형태소 분석해서 토큰화한 자료를 데이터 과학자이자 프로그래머인 알렉스의 지시로 프로그래밍을 위한 코드만 입력했다. 그런데도 알렉스는 우리 모두를 개발자라고 불렀다. 한국어를 잘 쓰는 감사한 녀석이었다.
| 시작한다. 회의 시작한다. 우리는 회의 시작한다.
[서술=서술] [서술=서술, 화계:하향]
따라서(∴) 우리-는_회의_시작-하_ㄴ다.
[서술=서술, 화계:하향/ 의미:행동 실행, 화행:행동 실행, 의미=화행]
| 〔 〕 시키나? 〔 〕 시키-나?
| 〔 〕 치우겠습니다. 〔 〕 치우-겠-습니다.
| 〔 〕 받았는데…. 〔 〕 받아-았-는데….
‘시작하ㄴ다’는 ‘V-ㄴ/ 는다’의 형태로 반말이니까 화계는 위에서 아래로 향하는 것으로 예측할 수 있었다. 앞에 무슨 말이 오고 갔는지는 모르겠지만 ‘시키나?’는 ‘A/ V-(으)나요?’를 사용한 것으로 원래는 부드럽게 묻는 기능이 있는 종결어미지만 반말로 쓴 걸 봐서 이것도 화계가 위에서 아래로 향한다고 분류할 수 있다. 하지만 발화자가 그냥 혼잣말한 것으로도 사용될 수 있으니 이런 경우는 하향 화계 또는 화계 없음으로 분류해서 프로그래밍 코드를 입력했다. ‘치우겠습니다’의 ‘V-겠-’은 발화자의 굳건한 의지가 반영된 문장이므로 보통 발화자가 자신보다 높은 위치에 있는 사람에게 말할 때 사용한다. 이건 상향 화계로 분류했다. 남현이는 미역 줄기 반찬을 오도독 씹듯 입을 중얼거리면서 작업했다. 그때 알렉스가 평소의 그답지 않게 소리쳤다.
“근데 남현, 지독한 냄새 나지 않아?”
“냄새? 전혀. 잘 모르겠는데?”
평소 크게 감정 표현하지 않는 신사 같은 알렉스가 냄새에 이상하게 신경질적으로 반응했다. 남현이는 판교 근처에 쓰레기 처리 시설이 있는데 그것 때문에 불쾌한 냄새가 날 수 있다고 약간 성난 알렉스를 다독였다. 그리고 계속 냄새가 나는 건 아니니 그에게 유연한 자세를 요구했다. 남현이가 그에게 처음으로 어떤 것을 요구했다. 으쓱해진 기분으로 남현이는 알렉스의 지시에 따라 프로그래밍 코드를 입력했다. ‘받았는데…’의 ‘A-(으)ㄴ데요/ V-는데요’는 단순히 말 줄임을 의미하는 건 아니었다. 발화자가 자신이 처한 상황에서 무엇을 해야 할지 잘 모를 때 일단 말을 던져 놓고 상대방의 반응을 기다리거나 유도하는 대화 상황이 포함돼 있었다. 반말인 걸로 봐서 좀 친한 동료 간 대화라고 볼 수 있기에 화계는 수평적이므로 수평 화계로 분류했다.
남현이는 알렉스의 지시가 오면 성심성의껏 임했다. 일전에는 상거래 결제 페이지 분야에서 근무했는데 선임은 알렉스와 달랐다. 남현이처럼 한국어를 모어로 쓰는 한국인이었지만 말의 절반 이상이 영어였다. 혹자는 그걸 판교 사투리라고 부르기도 했는데 선임은 온갖 현란한 말만 외칠 뿐 남현이를 개발자라고 불러 주지 않았다. 함께 입사했던 동기이자 친구들은 금방 떠나갔다. 일이 힘들기도 했고 그들은 빠르게 변하는 기술의 속도를 따라가지 못했다. 남현이는 문과를 비롯한 비이공계에 딱히 적성이 없었다. 그러나 비이공계생보다는 좀 나은 이공계 적성이 있었을 뿐 더 깊은 이공계 적성이 있지는 않았다. 이걸 서서히 깨달을 무렵 남현이는 치열한 이 업계에서 온화한 성품을 기르는 것으로 자신의 USP를 쌓았다. 이 말도 이전 팀 PM이 자주 쓰던 단어였다. 알렉스와의 관계에서도 남현이가 부처처럼 분자, 원자 단위를 넘어서는 그보다 더 미세한 소우주 단위 온화함을 가질 수 있었던 건 이 프로젝트 시작부터 가졌던 생각, 이곳은 남현이의 홈그라운드에 세워졌다는 것이었다.
알렉스와 남현이는 거의 매일 함께 일했다. 화행을 최종적으로 결정하는 ‘결정적 화행 결정면’을 산출하는 수식을 알렉스가 세워야 했다. 언어 분석에 능통해서 문과일 거라 짐작했던 알렉스는 수리 공식을 세울 때는 이전의 능력을 뛰어넘는 집중력과 체력을 보였다. 남현이는 그에게 철저히 매혹당했다.
결정적 화행 결정면의 수리 공식:의미<-1, 화행> 1
1. 천천-히_오-아도_되-어.
[형태:서술<명령, 화계:하향 / 의미:허용, 화행:불허용 ]
결정적 화행 결정면=화행> 1, 따라서(∴) 허용< 불허용
2. 우리-는_회의_시작-하-ㄴ다.
[형태:서술=서술, 화계:하향 / 의미:동작 실행, 화행:동작 실행]
결정적 화행 결정면=의미<-1, 따라서(∴) 동작 실행=동작 실행
3. 이제-는_이렇-(으)ㄴ_일-도_시키-나?
[형태:의문=의문, 화계:하향 / 의미:부드러운 질문, 화행:불허용]
결정적 화행 결정면=화행> 1, 따라서(∴) 부드러운 질문< 불허용
남현이는 도대체 알렉스는 영국에서 뭐 하다 온 녀석일까 하는 생각에 빠져 있었다. 그때 또 알렉스의 짜증 섞인 목소리가 들렸다.
“또 나.”
“뭐가 난다는 거야?”
“냄새.”
남현이는 시계를 보았다. 아직 쓰레기 처리할 시간이 아니었다. 판교 일대 주민들이 악취 민원을 성남시에 제기해서 시 차원에서 악취 근원을 찾아 개선할 것이라는 기사를 읽은 것이 떠올랐다. 이상하게도 남현이만 전혀 냄새를 느낄 수 없었다. 남현이가 알렉스를 재차 달랬다.
“알렉스, 우린 개발자야. 남은 토큰 데이터를 마저 분석하자고. 프로젝트를 진행하느라 후각이 예민해져서 코가 잠시 이상 반응을 일으킨 걸 거야.”
4. 나_먼저_들어가-ㄹ게.
[형태:서술=서술, 화계:수평/ 의미:동작 실행, 화행:동작 실행]
결정적 화행 결정면=의미<-1, 따라서(∴) 동작 실행=동작 실행
나_먼저_들어가-ㄴ다.
[형태:서술=서술, 화계: 하향/ 의미:동작 실행, 화행:동작 실행]
결정적 화행 결정면=의미<-1, 따라서(∴) 동작 실행=동작 실행
나_먼저_들어가-ㅂ니다.
[형태:서술=서술, 화계:강한 하향/ 의미:동작 실행, 화행:동작 실행]
결정적 화행 결정면=의미<-1, 따라서(∴) 동작 실행=동작 실행
‘-(으)ㄹ게’는 선택, 의지를 나타낸다고 알렉스가 말해 줬다. 그럼 알렉스 여자 친구가 문과여서 알렉스도 문과 출신 영향을 받았을 것이다. 알렉스가 문과가 아니라면 남현이처럼 공과 출신인가? 남현이는 알렉스의 메타 한국어 설명을 계속 들었다. 발화자는 친한 동료 사이라고 추정할 수 있다고 했다. 화계는 수평 화계로 분류했고 남현이는 알렉스의 말에 따라 얼른 코드를 짰다. ‘나 먼저 들어간다’는 완전 반말로 하향 화계, ‘나 먼저 들어갑니다’는 상층에 있는 발화자가 공식적으로 퇴근할 때 부하 직원에게 ‘들으라’라는 발화 의도를 추정하여 완전 수직적이라고 해서 강한 하향 화계로 분류한다고 했다. 남현이가 그것의 조건이 무엇이냐고 물었더니 ‘-습니다/ㅂ니다’는 항상 ‘저는’과 함께 쓰여야 하기에 그걸 깬 건 그만큼 대충 말해도 괜찮다는 대화 상황을 유추해 볼 수 있다고 말했다. 남현이는 얼른 코드를 짰다.
-4화로 이어집니다-