현재 가장 많이 사용되는 딥러닝(Deep Learning) 기반의 분산 표현(distributed representation) 워드임베딩(Word Embedding, 자연어를 기계가 이해할 수 있는 숫자 벡터 값으로 변경하는 기술)은 Word2vec이라 할 수 있다. Word2Vec 임베딩 기술은 단순하지만 성능이 우수해서 많이 사용되는데 치명적인 문제점도 존재한다. 바로 주어지는 단어(Corpus, 말뭉치)를 기반으로 학습을 진행하며 존재하지 않던 단어를 던졌을 때 에러가 발생하는 등 만능적인 모습을 보여주지 않는다. 당연히 학습 안된 단어는 나오지 말아야 되는거 아니냐? 할 수 있겠지만 이 문제를 해결하기 위한 방식이 연구되고 있었고, 페이스북(Facebook)에서 이를 보완하는 언어 모델이 등장한다..
Word2Vec로 구현할 수 있는 서비스는 무궁무진하다. 분류, 연관키워드와 같은 직접적인 서비스를 구현할 수도 있으며 최종 서비스를 위한 전처리 과정에서도 활용될 수 있다. 참고로 이 포스팅은 이전에 작성한 Word2Vec #2, 기본적인 모델 구현(생성)하기에서 만든 모델을 기반으로 설명이 이어진다. Word2Vec Source Code from gensim.models import Word2Vec model_okt = Word2Vec.load('word2vec_okt.model') 코모란 버전과 Okt 버전 모두 모델을 만들었지만, 이번 포스팅에서는 Okt 버전만 사용해보도록 한다. # 단어 벡터 확인 print('영웅 : ', model_okt.wv['영웅']) 벡터가 잘 뽑혔는지 확인하기 위해서..
Word2Vec를 이해하기 전에 우선 희소 표현과 분산 표현에 대한 이해를 하지 못했다면 아래의 포스팅을 보고 표현들의 개념을 익히길 권장한다. 희소 표현과 분산 표현, 차원의 저주 희소 표현과 분산 표현, 차원의 저주 희소 표현(Sparse Representation) 희소 표현(Sparse Representation)이란 데이터가 희소(부족)한 형태를 띄는 것을 말한다. 즉 대부분의 값이 0인 경우를 뜻하며, 원핫 인코딩(One Hot Encoding)이 대표적인 예.. needjarvis.tistory.com 워드투벡 혹은 워드투벡터는 분산 표현을 만들기 위해서 가장 많이 활용하는 강력하고 범용적인 단어 임베딩(Word Embedding) 모델이다. 구글(Google)에서 2013년에 발표했으며, ..