Gensim을 이용한 Doc2Vec 훈련 치트코드

Untitled13

Gensim을 이용한 Doc2Vec 훈련 치트시트

In [11]:
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
import pandas as pd

데이터 로드 (텍스트는 토큰화 되어있다고 String Array라고 가정한다.)

In [2]:
raw = pd.read_csv("raw.txt",sep='\t', encoding='cp949')

토큰화되어있는 배열을 돌면서, document를 만든다.

In [3]:
documents = [TaggedDocument(doc, [i]) for i, doc in enumerate(raw['tokenized_sentence'])]

Doc2Vec 훈련, VECTOR_SIZE 에 따라서 차원수가 영향을 받으며 정확도가 다르다.

WINDOW에 따라서 컨텍스트를 더 많이 포함한다.

In [5]:
model = Doc2Vec(documents, vector_size = 10, epochs = 5, window = 7, min_count = 3, workers = 20)

모델을 로컬에 저장한다. (필수절차아님)

In [6]:
model.save('filename.d2v')

실제로 Doc2Vec을 다시 로딩한다. (필수절차아님)

In [13]:
reloaded_model = Doc2Vec.load('filename.d2v')

최종적으로 벡터를 추론한다.

In [ ]:
raw['tokenized_sentence'].apply(lambda _: reloaded_model.infer_vector(_).astype(float))

답글 남기기