(사진=셔터스톡)
(사진=셔터스톡)

'자연어 처리(NLP, Natural Language Processing)'는 인간의 언어 현상을 컴퓨터를 통해서 묘사할 수 있도록 연구하고 구현하는 인공지능(AI)의 한 분야다. 

인간과 다른 동물들과 크게 다른 점 중의 하나는 언어를 통한 소통이다. 물론 동물들도 서로 간의 소통이 있기는 하지만, 인간들의 소통 방식은 그보다 훨씬 복잡하다. 인간들의 언어는 고도로 구체적이며, 단어 자체의 의미뿐만 아니라 문맥 속에서 서로 다른 의미를 지니기도 하는 등 엄청나게 다양하고 복잡한 소통 방식을 갖고 있다. 

그래서 AI 연구자들은 인간의 언어 활동을 컴퓨터로 구현할 수 있다면 이것도 AI의 일종으로 볼 수 있을 것으로 생각했으며, 매카시는 다트머스 회의 제안서에서도 “기계가 언어를 사용”하는 것을 AI 연구의 한 분야로 제안했다. 컴퓨터 과학에서 언어(Language)라고 하면 주로 포트란이나 C, Java와 같은 프로그래밍 언어를 지칭하기 때문에, 이런 프로그래밍 언어가 아니라 인간 생활 속에서 소통을 위해 자연스럽게 만들어지고 사용되는 언어로 ‘자연어’라는 용어를 사용하게 되었다.

자연어 처리를 하기 위한 정보의 형태는 음성으로 전달되는 구어와 자판이나 활자에 의해 인쇄된 형태가 있다. 구어 형태는 인쇄된 형태와 달리 철자 하나하나의 구분이 어렵기 때문에 처리가 훨씬 더 복잡해진다. 

자연어 처리에는 몇가지 하위 분야가 있는데, 대표적인 것으로 텍스트 분석이나 음성 인식과 합성, 구문 분석 그리고 자동 대화 시스템인 챗봇과 같은 것들이 있다. 또 네이버 검색과 같은 정보 검색 및 추출이나 단어, 문장, 문서 분류, 감정 분석 등도 자연어 처리 분야에 포함되며, 기계에 의한 자동 번역도 한 분야인데, 기계 번역은 다음 회에 이야기한다. 

2024년 AI 광풍을 몰고 왔던 대형언어모델(LLM, Large Language Model)인 '챗GPT'의 핵심 기술이 사용자의 자연어를 이해하고 생성해서 사용자에게 응대할 수 있는 자연어 처리 기술이다. 

이해하고 생성한다고 단순하게 이야기했지만, 자연어를 이해하기 위해서는 인간 언어의 구조와 의미를 파악하기 위해 언어의 의미 분석이나 의도 분석, 엔티티 인식 그리고 정서 분석 등이 이뤄져야 한다. 또 구조화된 데이터에서 자연어를 생성하기 위해서는 대량의 학습을 통해 콘텐츠를 결정하고, 문법적 정확성과 일관성이 적용되면서도 뉘앙스와 복잡성을 포함하는 텍스트를 생성해야 하는 고난도의 기술이다. 

사실 챗GPT가 등장하기 이전에도, 삼성의 '빅스비'나 애플의 '시리', 아마존의 '알렉사' 같은 AI 비서들이 자연스럽게 우리의 삶에 녹아 들어 왔지만, 자연어 처리는 기술적으로 꽤 복잡하고 어려운 문제다. 사람들 간의 의사소통은 발음이나 억양이 완전히 동일하지도 않고, 대화 상황을 충분히 이해하지 못하거나, 문맥에 따른 의미를 정확히 파악하지 않으면, 그 말의 뜻이 모호해져 버리는 경우가 많다. 

시간의 흐름에 따라, 장소에 따라 단어나 문장의 뜻이 바뀌어 버리기도 하고 새로운 말들이 생겨나기도 하며 지역에 따라 사투리가 사용되기도 한다. 많은 사람들은 정확한 문법으로만 대화하지는 않으며, 그래도 의미가 전달되기도 하고 같은 단어라도 뉘앙스에 따라 다른 의미를 내포한다. 

사람들 간의 대화는 중간중간 대화에 방해가 생겨서 완전한 문장으로 끝나지 않아도 이해가 되지만, 기계는 이런 상황에서는 이해하기가 어렵다. 사람 간 대화는 이런 상황에서도 자연스럽게 이어지고 이해될 수 있지만, 이러한 모호한 상황을 기계가 이해하도록 하기에는 너무나 복잡한 문제다. 그래서 자연어를 처리하고 대화 시스템을 만드는 것은 여간 어려운 문제가 아니다. 이런 어려움에도 불구하고 이 시기에 자연어 처리를 하는 프로그램을 개발하려는 노력이 있었는데, ‘베이스볼(BASEBALL)’ ‘SAD-SAM’ ‘스튜던트(STUDENT)’ 등과 앞서 소개한 '일라이자'가 그런 노력 중 일부였다.

1961년에 MIT 링컨연구소의 버트 그린(Bert Green)은 앨런 뉴웰과 허버트 사이먼이 개발한 초기 AI 개발 언어의 IBM 컴퓨터용 버전인 'IPL-V'으로 베이스볼이라는 프로그램을 개발했다. 이는 야구와 관련해 저장된 데이터에 대해 일반적인 영어로 묻고 대답하는 프로그램이었는데, 질문은 제한된 단문만 가능했지만 자연어로 데이터베이스를 검색하도록 하는 프로그램이었다. 

예를 들어 “레드삭스팀은 7월에 몇 게임을 경기했는가”라는 질문을 천공카드를 통해 입력하면, 주어진 데이터베이스에서 답을 찾아 인쇄하는 프로그램이었다. 이 프로그램도 질문 자체를 이해하는 것은 아니고, 질문을 특수한 형태로 재구성해서 논리 연산이 가능하게 해, 프로그램의 데이터베이스에서 관련된 사항을 추출하면, 이를 다시 영어 구문 형태로 변환하여 출력하는 방식이었다.  

1963년에 카네기 멜런 대학의 로버트 린제이(Robert Lindsay)도 IPL-V로 개발된 ‘SAD-SAM(Syntactic Appraiser and Diagrammer - Semantic Analyzing Machine)’이라는 프로그램을 공개했는데, 영어 구문으로 가족관계를 추론하고 분석하는 질의응답 프로그램이었다. 예를 들어 “조와 제인은 톰의 자녀다”라는 문장과 “메리는 제인의 엄마다”라는 문장을 입력하면 프로그램은 톰과 메리가 부부관계인 가족을 구성하게 되며, “조의 엄마는 누구인가”라는 질문에 대답할 수 있게 되는 프로그램이었다. SAD 부분이 입력 내용을 분석해서 가족관계를 구성하고 질문을 분석해서 보내면 SAM은 답을 찾는 의미 정보를 추출하는 구조였다. 

1965년에 로버트 시몬스(Robert Simmons)는 자연어로 정보 검색을 하는 실험을 했다. ‘프로토신텍스(ProtoSynthex)’라는 이름의 시스템은 어린이용 백과사전의 한 챕터 내용을 데이터로 저장하고, 이에 관한 간단한 영어 질문에 답변을 제공하는 시스템이었다.

1968년에는 마빈 민스키의 지도를 받으며 자연어 처리를 연구하던 다니엘 밥로우(Daniel Bobrow)가 박사논문으로 스튜던트라는 프로그램을 개발했는데, 이는 자연어 처리 분야에서 AI의 초기 성과물로 자주 인용된다. 이는 영어 대화로 작성된 대수학 문제를 풀고 숫자로 답을 제공하는 프로그램인데, 예를 들어 “뉴욕과 LA 사이의 거리는 3000마일이다. 비행기의 평균 시속이 600마일일 때, 뉴욕에서 LA로 비행하는 시간을 구하라” 같은 문제에 답을 제공했다. 

이 프로그램은 대수 문제를 풀기 위한 규칙 기반 프로그램이었고 문장 패턴 분석에 휴리스틱 기법이 사용됐는데, 입력된 문제는 분석 후 개별 정보 조각으로 구성된 핵심 문장으로 변환되고, 이는 다시 대수학적 표현으로 변환돼 답을 반환하는 방식으로 동작했다. 

1966년에 개발 완료된 일라이자는 단문 대답이 아닌 지속적인 대화가 진행될 수 있는 구조로 만들기 위해, 와이젠바움이 오랫동안 관심을 가져왔던 심리학 치료의 언어 패턴을 활용했다. 그래서 사용자의 대화에서 키워드를 인식해서 이를 간단한 문구나 그 키워드에 대해 확장을 요구하는 질문 형태로 반영하도록 개발했다. 또 일라이자는 대화를 지속하기 위해 문장에서 키워드를 찾기 어렵거나 분석하기 어려운 경우 그리고 적절한 응답을 제시하기 어려운 경우에는 "계속 이야기해 주세요"라던가 "좀 더 자세히 얘기해 주세요"와 같이 기본 설정된 문구를 제시하도록 프로그램됐다.

챗GPT의 등장과 발전에 많은 사람들이 열광했듯이, 기계인 컴퓨터가 사람의 언어인 자연어를 사용할 수 있게 만드는 것은 AI 연구의 오랜 분야며 관심을 끌어왔다. 1960년대 초반의 자연어 처리 연구에서 비록 기계가 자연어를 이해하지는 못했지만, 많은 연구자들의 초기 탐구는 좋은 출발을 보여 줬다. 

특히 일라이자의 등장은 광범위한 일반 대중들이 AI 연구 결과물을 직접 접해 보는 기회였고 또 열광했다는 측면에서 챗GPT의 등장과 많이 닮아 보인다. AI 연구자들도 더욱 낙관적인 입장이 돼 자연어 처리 연구에 훨씬 더 강력한 구문적, 의미적, 추론 능력을 적용해 나갔는데, 이는 1960년대 후반과 1970년대 초반 새로운 작업의 토대가 됐다. 

문병성 싸이텍 이사 moonux@gmail.com

관련기사
저작권자 © AI타임스 무단전재 및 재배포, AI학습 및 활용 금지