인간의 커뮤니케이션은 명확한 알고리즘에 기반한 기계의 방식과 달리 매우 복잡합니다. 단순히 단어 자체에 담긴 의미 안에서 이루어지는 것이 아니기 때문이죠. 실제로는 맥락이라고 하는 상황 정의에 따라 작동하기 때문에 구문, 철자는 물론 구두점 하나로도 의미나 해석이 달라질 수 있습니다.
게다가 인간의 언어는 오랜 시간 진화해왔고, 지금도 계속해서 변화하고 있습니다. 같은 언어권에서도 지역과 세대에 따라, 구어와 문어에서 사용하는 언어가 다르죠. 예를 들어 영국식, 미국식, 호주식 영어가 모두 다르고, 기성 세대는 젊은 세대가 사용하는 신조어를 이해하기 어려워합니다.
기계가 사람의 언어를 이해하도록, 자연어처리
인간 사이에도 그럴진대 컴퓨터가 사람의 언어를 알아들을 수 있게 만들려면 얼마나 어려울까요?
반대로 대부분의 사람들도 컴퓨터의 언어라 할 수 있는 코드 또는 기계어를 이해하지 못합니다. 기본적으로 기계의 언어는 수 많은 0과 1의 조합으로 이루어졌으니까요. 요즘 우리가 ‘Siri야’나 'OK Google'하고 말하면 바로 기계가 인간의 언어를 알아듣고, 대답하는 것이 신기할 따름입니다.
그런데 이러한 기계와 인간 사이의 소통은 어떻게 가능할까요? 딥러닝* 기반 AI의 등장과 더불어 자연어처리(Natural Language Processing, 이하 NLP)** 기술이 발전하면서 가능해질 수 있었죠. NLP 기술이 적용된 기계는 인간의 말이나 문자를 해석하고, 판단하고, 명령을 이행할 수도 있게 된 것입니다.
이런 NLP 분야는 빠른 속도로 발전하고 있는 AI 기술이 적극적으로 활용되고 있는 대표적인 분야입니다. 1950년대부터 연구되기 시작하여 규칙 기반 및 통계 기반 방법을 거쳐 진화해왔죠. 그리고 2000년대 이후 딥러닝과 결합하며 오늘날에 이를 수 있었습니다.
한국어 자연어 처리가 특히 더 어려운 이유
그런데 영어를 비롯한 다른 언어들에 비해 한국어는 자연어처리가 더 어렵다고 합니다. 도대체 ‘왜?’란 궁금증과 안타까움을 갖고 그 이유에 대해 알아봅니다.
1 한국어는 교착어***입니다.
교착어는 어근****과 접사*****에 의해 단어의 기능이 결정됩니다.****** 그런 이유로 띄워쓰기 단위인 어절 단위로 토큰화를 할 경우에는 문장에서 발생가능한 단어의 수가 엄청나게 늘어나게 되죠. ******* 기본적으로 조사가 없는 영어에 비해 경우의 수가 훨씬 더 많아질 수 밖에 없습니다.
가령 '그녀'라는 단어 하나만 해도 '그녀가, 그녀를, 그녀의, 그녀와, 그녀로, 그녀께서, 그녀처럼 등'과 같이 다양한 경우가 존재합니다. 그렇기 때문에, 한국어에서는 토큰화를 통해 접사나 조사 등을 분리하는 것이 중요한 작업이 되기도 합니다.*******
2 어순이 중요하지 않습니다.
한국어는 어순이 바뀌어도 의미가 통합니다. 예를 들어 ‘나는 학교에서 공부를 합니다.’나 ‘나는 공부를 학교에서 합니다.’나 동일한 의미이죠. 이렇듯 단어 순서를 뒤바꾸거나, 심지어 주어를 생략해도 문제가 없는 경우도 있습니다.
이는 분명 우리가 실생활에서 사용할 때는 편리할 수 있습니다. 반면 자연어 처리를 더 어렵게 만드는 이유이기도 하죠. 특정 단어 뒤에 어떤 단위가 나타나도 되기 때문에 확률에 기반한 언어 모델이 다음 단어를 예측하기 어렵게 만듭니다.*******
3 띄어쓰기가 잘 지켜지지 않습니다.
한국어는 영어에 비해 띄어쓰기가 잘 지켜지지 않습니다. 일단 원어민인 우리도 철저히 지키기 힘들만큼 띄어쓰기 규칙이 까다롭고, 띄어쓰기를 전혀 하지 않더라도 의미 전달에는 문제가 없죠. 사실 띄어쓰기 자체가 근대 이후에나 도입되었고, 이에 대한 표준 규칙도 계속해서 변화해왔습니다.
결국 한국어는 띄어쓰기가 잘 지켜지지 않는 경우가 많아 자연어 처리가 더 어렵습니다.
4 의문문과 평서문의 구분이 어렵습니다.
실제로 문장 부호가 없이 텍스트만 보고는 의미 구분이 불가능할 정도입니다. 예를 들어 ‘밥 먹었어.’와 ‘밥 먹었어?’에서 마침표와 물음표를 빼고 보면 구분이 안 된다는 것을 알 수 있습니다.
마무리하며
위 내용만 보면 한국어가 유난히 자연어처리가 어려운 언어처럼 보일 수 있습니다. 하지만 이 세상에 다양한 언어가 공존하는 만큼 한국어 못지않은 언어들도 많죠. 예를 들어 같은 아시아권 언어인 태국어********는 띄어쓰기도, 물음표도 없고, 심지어 마침표조차 없습니다.
그런 점에서 기존에 영어 중심으로 발전해 온 자연어처리 및 기계번역의 특성상 한국어가 어려운 것도 이해가 됩니다. 한국인이 영어보다 일본어를 비교적 쉽게 배울 수 있는 것처럼, 기계도 영어와 유사한 프랑스어, 스페인어가 더 수월하겠죠. 또한 다른 언어에 비해 상대적으로 한국어 데이터가 아직은 많이 부족한 것도 불리한 부분입니다.
한 언어에는 해당 언어를 사용하는 국가나 민족의 특성과 문화가 반영되어 있다고 합니다. 그런 점에서 한국어의 자연어처리나 기계번역은 지금보다 앞으로가 더 기대됩니다. 최근 들어 본격적인 데이터화 사업을 통해 한국어 데이터가 풍부해지고 있고, 한국어에 대한 이해도가 높은 우리나라 연구원들이 계속해서 노력하고 있으니까요.
References
[1] https://media.fastcampus.co.kr/knowledge/data-science/nlp-korean-4reasons/
[2] https://kh-kim.gitbook.io/natural-language-processing-with-pytorch/00-cover/04-korean-is-hell
[3] https://wikidocs.net/22533
[4] https://www.bloter.net/newsView/blt201712050015
함께보면 좋은 콘텐츠
[AI 이야기] 기계 번역이 인공지능을 만나기까지 [AI 이야기] 인간을 닮아가는 기계 번역 언어처리 엔진 LETR는 왜 텍스트 언어에 집중할까?