Word Representation ① Thesaurus 시소러스
자연어 처리, Natural Language Processing 말 그대로 자연어를 컴퓨터가 처리하는 분야이다. 이를 위해 사람이 쓰는 부드러운 언어를 컴퓨터가 이해할 수 있는 방식으로 변형시켜야 한다.
사람이 쓰는 ‘말’의 의미는 ‘단어’로 구성된다. 그래서 컴퓨터에게 자연어를 이해시키기 위해서는 단어의 의미를 이해시키는 것이 중요하다. 단어를 표현하는 방법에 대해서 thesaurus, Local representation, Continuous representation 순서로 포스팅을 해보려고 한다. 이번 포스팅은 본격적인 설명에 앞서 시소러스와 이후 있을 포스팅의 개요에 대해 작성되었다.
1. Thesaurus 시소러스
사람이 직접 단어의 의미를 정의하는 방식
시소러스란 유의어 사전으로, 자연어에서 사용되는 시소러스는 모든 단어에 대한 유의어 집합을 만든 다음에 단어들 사이의 '상위-하위'와 같은 관계들을 그래프로 표현하는 것이다.
시소러스를 사용하면 ‘좋아하다’를 검색했을 때, 정확히 ‘좋아하다’의 결과만이 아닌, ‘선호하다’, ‘사랑하다’라는 단어의 검색 결과도 포함할 수 있을 것이다.
시소러스의 문제점
- 자연어에 존재하는 수많은 단어를 전부 저렇게 레이블링을 할 수 있을까?
- 의미가 변하는 단어들은 어떻게 반영할까? 전부 수정하나?
- 그래프로 단어들 사이의 모든 관계를 표현할 수 있나?
사람이 방대한 양을 정의해야 하는 문제점에서 벗어나기 위해 컴퓨터가 대량의 코퍼스로부터 단어를 자동으로 (= 사람의 개입 X) 표현하는 방법들이 등장하게 된다.
이후 내용은 다음 포스팅에 대한 간략한 소개이다.
컴퓨터가 자연어를 이해하고 처리할 수 있도록 하기 위해서는 숫자로 표현해야 한다. 숫자로 표현하는 방식은 예를 들어 A라는 단어를 표현하기 위해 A라는 단어에만 집중했는지, A의 주변 단어들도 참고하였는지에 따라 나눌 수 있다.
Local Representation은 해당 단어만을 신경 써서 특정값에 매핑하는 방법이고, Continuous representation은 주변 단어들도 참고하여 표현하는 방법이다.
다음 포스팅은 아래와 같은 목차로 나누어서 포스팅을 할 예정이다.
- Local Representation
- one-hot vector
- Count Based 통계 기반 기법
- Continuous Representation
- Word2Vec
- GloVe
본 포스팅은 밑바닥부터 시작하는 딥러닝, 딥러닝을 이용한 자연어 처리 입문을 참고하여 작성되었습니다.