자연어 처리 (NLP; Natural Language Processing)

 

 

  인간과 휴대폰이 대화를 하듯 자연스러운 의사 소통이 이루어지는 시대다. ‘우!리!집!’과 같은 단순한 단어를 힘주어 몇 번을 소리쳐야 했던 휴대전화의 음성 인식이 이제는 ‘자연어’를 이용해 인간의 비서역할을 대신 할 수 있을 만큼 발전한 것이다. 자연어는 기계가 이해할 수 있는 언어인 ‘기계어’와 구분되는 용어로 ‘인간이 이해할 수 있는 언어(한국어, 영어, 일본어 등)’를 일컫는다. 기계가 ‘0’과 ‘1’의 조합인 디지털 데이터가 아닌 인간의 언어를 이해할 수 있도록 하는 기술인 자연어처리는 인공지능 분야로부터 파생되었다고 볼 수 있다. 인공지능이란 기계가 인간과 유사하게 생각하고 판단할 수 있도록 인공적인 지능을 만들어 주는 분야라고 할 수 있는데, 기계가 인공적인 지능을 갖게 된다는 것은 학습을 통해 인간의 언어를 이해할 수 있다는 것을 포함한다.

 

  기계가 자연어를 이해해 자연스러운 대화가 가능하도록 하기 위해서는 다양한 기술이 필요하다. 우선 기계와 인간이 소리로 의사소통을 하기 위해 인간의 음성을 텍스트로 바꾸는 음성인식(Speech to Text, STT) 기술이 선행된다. 음성인식을 통해 인간의 음성을 텍스트로 변환하고 나면 입력된 텍스트를 여러 형태로 분석하는 과정이 이루어 진다. 인간의 음성이 무엇을 나타내는지, 어떠한 의도를 가지고 있는지를 분석한 뒤 사용자가 어떤 대상에 대해 질문을 한 것이라면 검색 및 시맨틱 기술 등을 활용해 사용자가 원하는 대답을 찾는다. 이 후 최종적으로 사용자 질문에 대한 답을 문장형태로 만드는 언어 생성과정을 거친 뒤 음성인식과 반대되는 발화기술(Text to Speech, TTS)를 통해 사용자에게 음성으로 전달 된다.

 

  이러한 여러 자연어처리 과정 중 문장의 의미를 분석해 사용자의 질문에 대한 의도를 정확히 파악하기 위해서는 형태소 분석, 구문분석, 화행분석, 대화처리과정이 필수적이다. 가장 먼저 사용자의 발화(소리를 내어 말을 하는 현실적인 언어 행위)를 의미를 지닌 가장 작은 단위인 형태소 단위로 구분해 각 형태소가 어떤 품사를 가지는지 분석하는 형태소 분석과정이 필요하다. 형태소 분석으로 사용자가 한 발화에 대해 명사, 동사, 형용사, 조사 등의 품사 정보를 알 수 있다. 형태소 분석 결과는 거의 모든 자연어처리 기술의 기본이라고 할 정도로 필수적인 작업이다. 또한 자연어처리 이외에 검색분야에서도 사용자가 원하는 문서를 정확하게 찾기 위한 용도로도 사용된다. 형태소 분석 정보는 이 후 구문분석 과정을 거쳐 의미 관계 분석에 활용된다. 구문분석은 사용자의 발화를 명사구, 동사구, 형용사구 등 특정 기준을 가지고 구분하고, 구분된 각 덩어리(chunk) 사이에 어떠한 관계가 존재하는지 분석하는 것이다. 이러한 구문분석을 통해 사용자 발화의 주어, 목적어, 수식어구들을 파악할 수 있다. 이 정보들은 그 자체로도 의미를 지니지만 추가적인 화행분석으로 활용도가 높아진다. 화행분석이란 사용자 발화에 대한 의도를 분석하는 작업으로 사용자가 질문을 하는 것인지, 요청을 하는 것인지, 단순한 감정 표현인지 문장의 의도를 구분해 내는 것이다. 이렇게 사용자의 의도를 파악하고 나면 사용자 음성에 대해 대답을 할지, 호응을 할지 또는 예약시스템과 같이 사용자가 원하는 액션을 하기 위한 필수적인 정보를 묻는 등 적절한 답변을 위한 대화처리 과정이 이루어지게 된다.

 

  인간 사이의 대화는 양자가 하나의 문장을 말함으로써 끝나는 것이 아니다. 한 사람이 이야기하고 다른 한 사람이 답변하고, 때로는 되묻거나, 새로운 질문을 던지기도 하면서 대화가 이루어 진다. 또한 인간의 대화는 서로 공유하고 있는 기반 지식(흔히 상식이라고 부르는), 상대방이 조금 전에, 혹은 어제 무슨 이야기를 했었는지에 대한 정보 위에서 이루어진다. 자연어처리 기술은 이렇게 상대방과의 공유되는 지식, 이전 대화들에 대한 기록, 대화를 이끌어 가는 전략을 처리하는 모든 방법을 포함하는 것이다.