1. 程式人生 > >Gensim中word2vec和doc2vec的基本用法

Gensim中word2vec和doc2vec的基本用法

一、 word2vec:

from gensim.models.word2vec import Word2Vec
model = Word2Vec(lines, sg=1, size=100,  window=5,  min_count=5,  negative=3, hs=1)

其中lines是[['中國','國人','有限','限公','公司'],['學生','生幼','條款']]這種型別的資料格式

model.most_similar('人壽')   #可以檢視和“人壽”這個詞最接近的詞
模型持久化:
model.wv.save_word2vec_format('e:/2gram.vec', binary=False)
模型載入:
import gensim
m=gensim.models.KeyedVectors.load_word2vec_format('e:/2gram.vec', binary=False)

得到模型中的詞表:

vacab = model.vocab.keys()

二、Doc2vec:

訓練模型:

from gensim.test.utils import common_texts
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
documents = [TaggedDocument(doc, [i]) for i, doc in enumerate(lines)]
model = Doc2Vec(documents, vector_size=100, window=3, min_count=1, workers=4)

其中所需的資料格式要求:

模型持久化和載入:

from gensim.test.utils import get_tmpfile
# fname = get_tmpfile("e:/doc2vec.vec")
model.save('e:/doc2vectest.vec')
model1 = Doc2Vec.load('e:/doc2vectest.vec')  # you can continue training with the loaded model!

獲取段落的向量:

model1.infer_vector(['國 人壽 財保險 股 有限公司'])