【发布时间】:2018-05-16 04:32:06
【问题描述】:
我正在使用Doc2vec 从单词中获取向量。
请看我下面的代码:
from gensim.models.doc2vec import TaggedDocument
f = open('test.txt','r')
trainings = [TaggedDocument(words = data.strip().split(","),tags = [i]) for i,data in enumerate(f)
model = Doc2Vec(vector_size=5, epochs=55, seed = 1, dm_concat=1)
model.build_vocab(trainings)
model.train(trainings, total_examples=model.corpus_count, epochs=model.epochs)
model.save("doc2vec.model")
model = Doc2Vec.load('doc2vec.model')
for i in range(len(model.docvecs)):
print(i,model.docvecs[i])
我有一个test.txt 文件,它的内容有 2 行,这两行的内容相同(它们是“a”)
我用doc2vec训练得到了模型,但是问题是虽然2行的内容是一样的,但是doc2vec给了我2个不同的向量。
0 [ 0.02730868 0.00393569 -0.08150548 -0.04009786 -0.01400406]
1 [ 0.03916578 -0.06423566 -0.05350181 -0.00726833 -0.08292392]
我不知道为什么会这样。我认为这些向量是相同的。 你能解释一下吗?而如果我想为相同的词制作相同的向量,在这种情况下我应该怎么做?
【问题讨论】:
标签: python nlp word2vec gensim doc2vec