원-핫 인코딩 방식이란 단어를 하나의 벡터로 표현하는 법으로 각 값은 0 혹은 1만 갖는다.
예를 들어 남자, 여자, 아빠, 엄마를 알려줘야 한다고 할 때
남자라면 [1,0,0,0] 값을 여자는 [0,1,0,0] 으로 표현하는 것이 원-핫 인코딩 방식이다.
하지만 실제 자연어 처리 문제는 수백만개의 넘는 단어를 표현해야하므로 이런 방법은 공간을 너무 많이 사용하게 된다.
그리고 이런 표현은 벡터값 자체에는 단어의 특징이 전혀 표현되지 않는다.
이런 문제를 해결하기 위해서 벡터의 크기가 작으면서 벡터가 단어의 의미를 표현할 수 있는 방법들이 있는데
이러한 방법들을 분포 가설(같은 문맥의 단어, 즉 비슷한 위치에 나오는 단어는 비슷한 의미를 가짐)을 기반으로 한다.
크게 카운트 기반 방법과 예측 방법이 있음
: 어떤 글의 문맥 안에 단어가 동시에 등장하는 횟수를 세는 방법.
공기(=동시 출현) : 동시에 등장하는 횟수
기본적으로 동시 등장 횟수를 하나의 행렬로 나타낸 뒤 그 행렬을 수치화 해서 단어 벡터로 만드는 법을 이용함. 그 방법들은
이 있다.
인선과 성현은 도서관에 있다.인선과 현준은 서울에 없다.인선과 성현은 코딩을 좋아한다.
를 예시로 들어 표현하면
이렇게 만들어진 동시 출현 행렬을 바탕으로 위의 네 가지 방법을 사용해 단어 벡터를 만들면 된다.
: 신경망 구조 혹은 모델을 사용해 특정 문맥에서 어떤 단어가 나올지 예측하면서 단어를 벡터로 만드는 방법
이 중 Word2vec에서는 CBOW와 Skip-Gram 두 가지 모델로 나뉨.
[ 출처 : 책 ( 텐서플로와 머신러닝으로 시작하는 자연어 처리) ]
[ NLP ] 텍스트 유사도 ( 자카드 유사도, 코사인 유사도 ) (0) | 2020.10.26 |
---|---|
[ NLP ] 텍스트 분류 (1) | 2020.10.24 |
[ Beautiful Soup ] Beautiful Soup 설치와 html 태그 제거 (2) | 2020.10.03 |
[ NLP ] 토크나이징 (0) | 2020.09.23 |
[ NLP ] 사이킷런을 사용해서 데이터를 수치화 하는 방법 (0) | 2020.09.18 |