相似句子:用gensim实现doc2vec
02 Dec 2019之前写过Word2vec的实现方式,现在用gensim实现doc2vec,由于调用机制很像,就直接用nltk_data的数据,该数据包安装方式可参考win10环境下python3无法下载nltk_data的问题。
Python代码如下
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
from nltk.tokenize import word_tokenize
data = ["I love machine learning, its awesome",
"I love coding in python",
"I love building chatbots",
"they chat anything well"]
tagged_data = [TaggedDocument(words=word_tokenize(_d.lower()),tags=['SENT_%s' %str(i)]) for i,_d in enumerate(data)]
model = Doc2Vec(size=100,alpha=0.01,min_count=2,dn=1)
model.build_vocab(tagged_data) # 训练词库
for epoch in range(10):
print('iteration{0}'.format(epoch))
model.train(tagged_data,total_examples=model.corpus_count,epochs=model.iter)
model["SENT_0"] # 句向量
model.docvecs.most_similar(0) # 相似句子
分类: 自然语言处理