티스토리 뷰

자연어를 안다는 것과 대화를 한다는 것은 완전히 별개의 능력이다. 자연어를 안다는 것은 지식의 영역이지만 대화를 한다는 것은 말할 차례를 알아차리는 것에서부터 시작하여 대화 상대방의 의도를 파악하고 상대방의 체면을 유지할 수 있는 어법을 고르고 이어지는 대화문들이 유의미한 관계를 맺도록 관리하며 대화의 결과로부터 예상되는 상대방과의 관계 변화 등을 고려해야 하는 등 관계의 영역이기 때문이다.

단순히 자연어를 안다고 대화가 가능한 것은 아니라는 점이다. 특히 대화는 글로 쓴 문장과 달리 어순이 더 자유롭고 문법 요소의 생략이나 함축, 대용, 줄임말 등도 빈번하게 나타나기 때문에 자연어에 대한 더 폭 넓은 이해를 전제로 한다. 구글도 2013년 발표한  구글의 4가지 큰 과제에서 세 번째 과제와 네 번째 과제로 각각 자연어의 이해와 대화의 이해를 꼽았을 정도이다.[1]

컴퓨터가 사람과 대화를 하기 위해서는 대화 상대방인 사람의 의도를 파악하는 것이 가장 중요한 일이다. 대화 상대방의 의도를 알아야 적절한 대답을 하든 추가 질문을 하든 아니면 얼버무리든 무언가 유의미한 대꾸를 할 수 있기 때문이다. 그런데 경우에 따라 사람들은 자신의 의도를 직접적으로 드러내기 보다는 간접적으로 전달하는 화법에 익숙해져 있기도 하다. 특히, 대화 상대방과의 상하관계, 친소관계, 또는 불화를 피하려 하거나 화합을 추구하려 하는 성향 등에 따라 자신의 의도를 간접적으로 전달하는 화법이 몸에 밴 경우는 컴퓨터가 그 의도를 파악하는 것이 쉽지 만은 않다. 아래 예로 든 9개의 문장[2]은 서로 다른 표현이지만 동일한 의도인 문을 닫으라를 전달하고 있다.

 

    문 닫아

    문을 닫아 줄래?

    문을 닫아 줄 수 있어?

    문을 닫으면 좋겠다

    방이 좀 춥네

    문 좀 닫고 살자

    문 안 닫고 뭐해?

    왜 문을 안 닫아?

    문 닫는 것 잊었어?

 

이와 같이 명령문 대신 의문문을 사용하거나, 본론을 얘기하기 전에 상대의 상황을 탐색하는 보조 질문을 던지거나 과 같은 부사를 사용하여 완곡하게 표현한다든가 글쎄, 고민해 볼게와 같이 즉답을 피하는 등 여러 언어적 장치를 동원하는 것이 대화의 일반적 상례이기 때문에 컴퓨터도 이런 표현을 이해할 수 있어야 대화가 가능하다. 이런 능력은 언어 능력과 별개의 대화 능력을 필요로 하는 것이다.

언어학에서는 이를 화행(speech act) 능력이라 부른다. 화행이란 말하는 사람의 목적, 즉 발화자의 발화 목적이 무엇인가를 연구하는 분야이다. 화자가 말한 내용을 그 의도에 따라 요청, 제안, 지시, 질문, 약속 등으로 분류하고 각 화행 간의 관계를 연구한다. 예를 들어 인사를 하였는데 상대방이 반응을 하지 않는다거나 질문을 하였는데 비난을 한다면 부자연스러운 대화가 될 것이다. 인사를 하면 상대방도 인사를 하고 칭찬을 하면 감사를 표하고 제안을 하면 동의 또는 거절을 하는 등 화행은 관습적으로 특정 화행과 결합하는 양상을 보인다고 한다.[3] 이를 인접쌍이라고 하는데 우리가 자각하지 못할 뿐 우리의 대화는 어느 정도 구조화, 관례화 되어 있다는 점을 알 수 있다. 이 화행분류는 컴퓨터에게 대화를 가르칠 때 유용한 틀(framework)로 사용될 수 있을 것이다.

그렇다면 CS는 어떤 방법으로 대화 상대방의 의도를 파악하는가? CS는 언어학의 연구성과를 반영하여 아래의 3단계를 거쳐서 사용자 의도를 파악한다.

    화제어 결정 : CS는 사용자가 무엇에 대해 말하고 있는가를 가장 중요한 요소로 본다. 그래서 사용자가 사용한 단어를 의도 파악의 첫번째 열쇠로 본다. 단어만으로 화자의 의도를 완전히 알 수는 없겠지만 무엇을 얘기 하려는지 주된 의도를 알려주는 가장 중요한 지표인 것이 확실하기 때문이다.

    화행 결정 : CS는 또한 사용자가 입력한 내용이 요청인지 질문인지 동의인지 칭찬인지 등을 판단한다. 이를 위해 사용자 입력문을 문법적으로 분석할 수 있는 사전과 POS Tagger(품사 분석기) 그리고 Parser(구문 분석기)를 내장하고 있고 40개의 화행 분류를 가지고 있다. 다만 현재로서는 이 기능들이 영문에만 작동한다. 한국어에 대해서 동일하게 작동시키려면 한국어로 된 사전, POS Tagger, Parser와 추가적으로 형태소 분석기가 구비되어야 한다.

    감정 상태 확인 : CS는 보조적으로 감정 동사와 감정 형용사를 구별하여 사용자의 현재 감정상태를 파악하고 그에 부합하는 반응을 준비한다.

CS는 위의 3단계를 거쳐 사용자의 의도를 파악한 후, 그 의도에 맞는 룰을 탐색하여 응답문을 출력한다. 단순히 패턴 매칭이 되는 룰을 찾는 것이 아니라, 먼저 의도를 찾고 그 의도 에 가장 적합한 룰을 찾는다. CS의 가장 큰 장점이라 할 수 있다.

대화가 가능하기 위한 두 번째 조건으로는 서로의 배경지식이 비슷해야 한다는 점을 들 수 있다. 예를 들어,

 

Ÿ   철수는 어항을 떨어뜨렸다. 그는 울고 말았다.

 

라는 진술문을 이해하려면 어항은 깨지기 쉬운 유리로 만들어진다, 유리는 떨어뜨리면 깨진다 등의 배경지식을 가지고 있어야 가능하다. 만약 상대방에게 이런 지식이 없어 철수가 왜 울었는지 이해 못한다면 말이 안 통한다”, “답답하다등의 느낌을 갖게 될 것이다. CS는 이런 점에 대비하여 지식베이스(Knowledge Base)를 쉽게 구축할 수 있도록 컨셉과 테이블 그리고 전문적인 데이터베이스에 이르기까지 여러 툴을 제공하고 있다.

이제 CS3가지 핵심요소인 룰, 토픽, 패턴에 대해 간단한 예제를 통해 기본 개념을 알아보기로 하자.

 



[1] Google's 4 Biggest Technical Challenges, According To Search Guru Amit Singhal – SXSW (http://www.forbes.com/sites/tomiogeron/2013/03/10/googles-4-biggest-technical-challenges-according-to-search-guru-amit-singhal-sxsw/#237f0517d497)

[2] 유방(2009), 한국어 간접화행과 공손표현, pp.16~17. 인하대학교 대학원 한국학과 석사학위논문

[3] 이성범(2012), 화용론 연구의 거시적 관점 : 이론과 실제, 소통, 또는 김해연(2009) 문학작품 대화문의 대화분석적 접근, pp.543~544.


댓글
댓글쓰기 폼