자연어와 인공어
세상에는 두가지 종류의 언어가 있습니다. 하나는 우리가 일상적으로 쓰는 의사소통을 위한 언어입니다. 언제부터, 왜, 무엇을 계기로 인류가 언어를 쓰기 시작했는지 명확하지는 않지만 이러한 언어를 자연적으로 발생했다고 하여 자연어(natural language)라고 부릅니다. 한국어, 영어, 독일어, 프랑스어 등 우리가 알고있는 거의 모든 언어는 자연어의 범주에 속합니다. 자연어처리(Natural Language Processing)은 이러한 자연어를 컴퓨터가 보다 잘 이해하고 생성해 낼 수 있도록 연구하는 인공지능의 한 분야입니다.
또다른 언어는 어떠한 목적을 가지고 만들어진 언어로, 인공어(artificial language)라고 합니다. C++,python,java 등 인간이 컴퓨터를 편하게 조작하기 위해 만들어낸 프로그래밍 언어는 물론이고 국제적인 의사소통을 원활하게 하기 위해 만들어진 언어인 에스페란토(Esperanto)와 같이 사람이 만들어낸 언어는 모두 여기에 속합니다. 인공어는 명확한 규칙이 있고 패턴화 하기 쉽다는 특징이 있습니다. 세상에는 정말 훌륭한 인공어가 많지만 이 브런치북의 범위를 벗어나기 때문에 자세히 다루지는 않겠습니다.
앞서서 살펴보았듯이 우리가 이 브런치북을 통해 다루게 될 자연어는 시시각각 변화하며 그 자체로 완벽하지 않습니다. 동일한 문장이 다양한 상황속에서 전혀 다른 의미로 해석되기도 하며, 이러한 언어의 특징은 언어의 보편적인 규칙을 찾아내고 패턴화 하려는 언어학자들의 노력을 무력하게도 합니다. 또한 사람들은 어순이 뒤죽박죽이거나 문법적으로 정확하지 않은 문장을 가지고도 의사소통이라는 본연의 목적을 훌륭하게 달성해내기도 합니다. 하지만 컴퓨터는 그렇지 않지요. 자연어처리가 어려운 이유입니다.
이 브런치북의 초반부에는 많은 시간을 할애해서 자연어처리가 어려운 이유에 대해서 설명했습니다. 왜 자연어처리의 한계를 이해하는 것이 중요할까요? 자연어처리가 할 수 있는 것과 없는 것을 이해하는 것이 지식의 깊이와 넓이를 확장하는 데에 큰 도움이 되기 때문입니다. 이제 다음시간 부터는 본격적으로 자연어처리(NLP)의 테크닉에 대해 배워보겠습니다.