2019년 3월 21일 목요일

인간의 언어(Human Languages)

통상적으로 인간이 사용하는 언어를 자연언어 Natural Languages라고 부른다.
나와 같은 프로그래머는 프로그래밍 언어 Programming Languages와 구별하기 위한 이 표현을 그냥 편의상 받아들여서 사용하고 있다.

그런데 좀 우습지 않은가?
자연언어? Natural Languages?
마치 무언가 원초적인 힘을 가지고 있으며, 신성 불가침의 속성을 가지고 있다는 느낌을 주는 표현이 아닌가?


과거 자연언어 처리를 위한 방법으로 도입되었던 분석적 방법은 매우 제한적이거나 불완전한 면이 많았다.
어째서 이 방법에 문제가 많았던 것일까?
자연스럽게 인간의 언어를 이해하고 또 문장을 생성하기 위해서는 필요로 하는 문법이 너무나 많다고 할 수도 있다.
혹은 너무나 많은 예외 상황을 탓할 수도 있으며, 그나마도 어떤 예외를 적용할지 판단할 기준을 찾기가 너무 어렵다고도 할 수 있다.

사실은, 애초에 문법으로 배울 수 있는 언어는 아주 일부분이며, 단지 시작일 뿐이고, 수많은 예외 상황을 습득하는 것이 진짜 언어를 배우는 것이었기 때문일 것이다.

인간의 언어란, 아주 합리적이지도 않고, 이성적이지도 않다.
어쩌면 아주 오랜 시간을 거치면서 서로의 말이 제대로 전달될 수 있는 방법에 대해서 경험적으로 변형되어 온 것일지 모르겠다.

최근의 자연언어 처리는 빅데이터를 기반으로 하는 방법이 주로 사용되는 듯 하다.
그리고 이 방법의 문제도 많겠지만, 인간이 언어를 배우는 방법에 더 가까워 보인다.

그래야 일곱시 일곱분이 아닌 일곱시 칠분이라는 표현을 해석하고 생성할 수 있지 않겠는가.


잠깐 영어, 영어 공부에 대한 생각

한국인이 영어를 배우기 힘들어 하는 이유?
언어의 유사성이 매우 낮기 때문이 아닐까?
유사성이라함은 언어의 구조적인 유사성 뿐 아니라, 언어가 통용되는 사회 문화 철학적 유사성을 모두 함축하고 있다.

곰곰 생각해보면, 우리가 영어를 배우면서 종종 겪게되는 어려움은 이런거다.
"이러이러한 표현을 영어로 어떻게 말해야 하나요?"
그런데 간혹이긴 하지만, 이런 답변을 보게 된다.
"본토에서는 그런 식의 말을 쓰지 않는다. 그래도 굳이 영어로 표현하자면 ..."

이런 경우를 보면 정말 언어가 사고(思考)를 창조한다는 의미를 알게 된다.
언어로 표현할 수 없는(표현하지 않는) 것은 생각할 수도 없는 것이다.

유사성이 떨어지는 언어를 습득하기 위해서는 먼저 생각의 틀을 바꾸어야 한다.
한국인은 한국어로 생각을 하고 이걸 영어로 옮기려고 하지만, 이 경우에는 기존에 영어에서 쓰지 않던 새로운 표현 방식을 만들어 내야 한다.
그러니 외국인과의 대화에서 서로가 이해할 수 없어서 곤란해하는 경우가 속출하고 대화는 단절되고, 대화가 두려워지고, 관계는 서먹해지고...

원초적으로 따지면, 자신이 가지고 있던 모든 지식을 다 비우고, 영어가 사용되는 환경과 상황에서 생활하면서, 그곳에서 사용되는 표현 방식을 익히고 쓰면서 배워야 한다.
그런데 그게 가능하겠는가?
그렇다면 대안으로 외국인들이 사용하는 문장을 그냥 따라한다.
그 상황을 보면서 따라하고, 그 상황을 상상하면서 반복한다.
그렇게 한 문장 한 문장이 쌓이게 되면, 영어로 생각하는 영역과 한국어로 생각하는 영역이 다르다는 걸 알 수 있을 것이다.

애초에 이런 생각의 영역이 다를 거라는 생각은 없이, 언어가 단지 생각을 표현하는 수단이라고만 여겼기에 영어 공부는 틀렸던 거다.
언어는 생각을 표현하는 수단이기 이전에 생각을 만들어내는 도구다.
이 도구가 없다면 생각도 불가능하다.

한국어라는 도구가 만들어 내는 생각과, 영어라는 도구가 만들어 내는 생각은 아주 많이 다랐던 것이다.