brunch

You can make anything
by writing

C.S.Lewis

by TUGU Sep 22. 2019

NLP in TensorFlow_챕터 1

word-based encoading


Natural Language Processing 을 Tensorflow로 구현하는 방법에 대해서 알아보자.



기본은 word based encoading을 이해하는 것부터



1) ASCII 기반 encoading의  한계점

컴퓨터에게 문자를 인식하게 하려면 어떤 방법이 좋을까? 영어를 예로 든다면 가장 쉽게 생각할 수 있는 방법이 각 알파벳마다 해당되는 고유의 숫자를 부여하는 방법(ASCII)일 것 이다. 가장 직관적이고 쉬운 방법인 것 같은데, 여기에는 한계가 있다.

아래와 같이 SILENT와 LISTEN 이 두 단어가 있다. 이 두단어를 구성하는 각 알파벳은 정확히 같다. 다만 그 배열이 다를 뿐. 사람 입장에서는 명확히 다른 단어이다. 그런데 컴퓨터 입장에서는 각 알파벳에 해당하는 고유 숫자로 인식을 하며, 이 숫자의 배열을 이해시키는 과정이 없다면, 정확히 같은 의미로 인식을 하게 될 것이다. 만약 숫자의 배열까지 학습시켜 의미를 부여하는 알고리즘을 만들려고 한다면, 그 조합이 거의 무한대에 가까울 것이므로 무한대의 컴퓨팅 자원을 필요로 하게 될 것이다. 불가능하다.

               




                         

 2)   그래서 대신에 사용하는 방법이 word-based encoading 방식이다


말 그대로 단어에 고유의 번호를 부여하는 방식이다. 아래와 같은 두 가지 문장의 예시를 보자.



                                 

각 단어를 기준으로 고유 번호를 부여한다면, 컴퓨터는 위 두 문장을 아래와 같이 인식하게 될 것이다. 매우 비슷한 두 문장이나, 단어 하나의 차이로 다른의미를 가지는 문장이다. 이를 word-based encoading 방식으로 이해시킬 수가 있는 것이다. 

          


                                   


이 것이 NLP를 공부하는데 있어서 가장 기초적인 부분이므로 잘 이해하고 다음 단계로 가도록 하자.




이미지 출처 : https://www.coursera.org/learn/natural-language-processing-tensorflow/lecture/sssvb/word-based-encodings










브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari