word-based encoading
Natural Language Processing 을 Tensorflow로 구현하는 방법에 대해서 알아보자.
컴퓨터에게 문자를 인식하게 하려면 어떤 방법이 좋을까? 영어를 예로 든다면 가장 쉽게 생각할 수 있는 방법이 각 알파벳마다 해당되는 고유의 숫자를 부여하는 방법(ASCII)일 것 이다. 가장 직관적이고 쉬운 방법인 것 같은데, 여기에는 한계가 있다.
아래와 같이 SILENT와 LISTEN 이 두 단어가 있다. 이 두단어를 구성하는 각 알파벳은 정확히 같다. 다만 그 배열이 다를 뿐. 사람 입장에서는 명확히 다른 단어이다. 그런데 컴퓨터 입장에서는 각 알파벳에 해당하는 고유 숫자로 인식을 하며, 이 숫자의 배열을 이해시키는 과정이 없다면, 정확히 같은 의미로 인식을 하게 될 것이다. 만약 숫자의 배열까지 학습시켜 의미를 부여하는 알고리즘을 만들려고 한다면, 그 조합이 거의 무한대에 가까울 것이므로 무한대의 컴퓨팅 자원을 필요로 하게 될 것이다. 불가능하다.
말 그대로 단어에 고유의 번호를 부여하는 방식이다. 아래와 같은 두 가지 문장의 예시를 보자.
각 단어를 기준으로 고유 번호를 부여한다면, 컴퓨터는 위 두 문장을 아래와 같이 인식하게 될 것이다. 매우 비슷한 두 문장이나, 단어 하나의 차이로 다른의미를 가지는 문장이다. 이를 word-based encoading 방식으로 이해시킬 수가 있는 것이다.
이 것이 NLP를 공부하는데 있어서 가장 기초적인 부분이므로 잘 이해하고 다음 단계로 가도록 하자.