Gensim 패키지의 word2vec 모델을 사용해 단어 벡터화 하기
* 아래 예제는 Github의 IPython notebook으로 공유되어 있습니다.
입력 데이터
kaggle에 오픈되어 있는 hotel review 데이터를 사용해 보자데이터 포멧
테이터 형태를 살펴 보면 User_ID, Description, Browser, Device, Is_Response 형태로 구성되어 있다.Imports package
import pandas , nltk from gensim.models import Word2Vec from nltk.tokenize import RegexpTokenizer
load Data
filename = 'data/hotel-reviews.csv' df = pandas.read_csv(filename, sep=',') def nltk_tokenizer(_wd): return RegexpTokenizer(r'\w+').tokenize(_wd.lower()) df['Token_Description'] = df['Description'].apply(nltk_tokenizer) df.head()
Training
common_texts = df['Token_Description'].tolist() model = Word2Vec( common_texts, size=150, alpha=0.025, window=10, min_count=2, sg=1) model.train(common_texts, total_examples=len(common_texts), epochs=10)
파라메터 설명
size: 벡터 차원의 크기alpha: learning rate
window: 모델 학습할때 앞뒤로 보는 단어의 수
min_count: 학습에 사용할 최소 단어 빈도 수
sg: skip-gram (default)
결과 확인
model.wv.most_similar("france")
ref
https://radimrehurek.com/gensim/models/word2vec.htmlhttps://rare-technologies.com/word2vec-tutorial/
http://kavita-ganesan.com/gensim-word2vec-tutorial-starter-code/
https://www.kaggle.com/harmanpreet93/hotelreviews
댓글 없음:
댓글 쓰기