요즘은 인터넷 번역 서비스가 유행이다. 일반인이 여기에 대해 어떤 견해를 가지고 있을 지는 모르겠지만, 많은 사람들이 아마 인공지능 같은 것을 떠올리지 않을까 하는 생각이 든다. 하지만 그것은 철저한 오해이다. 우선, 컴퓨터가 번역을 하는 과정을 따라가 보자!She dumped me.
란 문장을 주고 한글로 번역하라고 컴퓨터에게 시키면, 컴퓨터는 우선 문장들을 다음과 같이 단어별로 쪼개개 된다.
“She”, “dumped”, “me”
쪼개진 하나의 단어들을 토큰이라고 부르는 데, 컴퓨터는 사람이 미리 입력해 놓은 사전을 뒤져서 각 토큰이 명사인지, 동사인지, 목적어인지 등을 구분하게 된다. 이 시점에서 컴퓨터는 각 단어의 의미에는 전혀 관심이 없다.
그러면 컴퓨터는 주어진 단어가 다음과 같은 형태를 가졌다는 것을 알게 될 것이다.
S + V + O
그러면 컴퓨터는 미리 컴퓨터에 입력된 영어 문장구조 데이터 중에 S + V + O형이 있는지 확인한다. 각 형은 번역될 나라의 말로, 대치 형이 함께 입력되어있다. 한국어를 예로 들자면 S + V + O 는 S + O + V로 대치된다.
자 이제 컴퓨터는 “she”, “me”, “dumped” 로 순서가 바뀐 바뀐 토큰 배열과, S + O + V형태의 문장구조에 대한 정보를 가지게 되었다. 이제 컴퓨터는 사전을 다시 뒤져, 각 토큰을 우선 직역 한다.
그녀 나 찼다.
한국어의 경우 목적어 뒤에는 마지막 글자에 받침이 없는 경우 ‘를’을 붙이고, 받침이 있는 경우 ‘을’을 붙인다는 규칙이 있다. 그리고 이 규칙은 사람이 미리 컴퓨터에 입력해 둔다. 그리고 주어의 뒤에는 ‘은’, ‘는’, ‘이’, ‘가’ 중에 하나가 붙는다.
그래서 컴퓨터는, 미리 입력된 정보에 따라 최종적으로 “그녀가 나를 찼다.” 라는 문장을 내어 놓게된다. 엄청 단순하다!
핵심이 되는 부분은, 컴퓨터는 다음과 같은 미리 입력된 표를 가지고 있을 뿐이라는 것이다.
영어 S + V + O : 한글 S + O + V
영어 V + S + O ? : 한글 S + V + O ?
….
….
들어보니까 굉장히 쉽다는 것을 알게 됐을 것이다. 사실 영어의 문장형태는 예외사항을 제외하면 몇개 되지도 않으니, 컴퓨터 언어를 다룰줄 안다면 직접 구현하는 것도 그리 어렵지는 않다. 다만, 모든 단어에 대한 정보를 미리 주어야 하므로, 번역이란, 멋지게 들리는 인공지능이라기 보다는, 단순 노가다 프로그램에 가깝다.
ps.
여기서는 매우 단순하게 묘사했지만, 사실은 단어만으로는 주어인지 목적어인지 구분이 쉽지 않다. 따라서, 컴퓨터는 여러 가능성을 전부 검토해 보거나, 자주쓰이는 문장형을 선택하거나, 혹은, 어문학 전문가가 입력한, 각 형이 완성될 수 있는 조건을 기술한 자세한 식들을 이용한다. 어쨌거나, 컴퓨터는 시키는데로 할 뿐이라는 것이고, 별로 대단한 일은 결코 벌어지지 않는다. 그러니 매트릭스가 현실화 될까 걱정할 필요는 전혀 없다.