小编Tha*_*Bui的帖子

为什么Doc2vec为相同的文本给出两个不同的向量

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])
Run Code Online (Sandbox Code Playgroud)

我有一个test.txt文件,它的内容有2行,并且这2行的内容是相同的(它们是“ a”),我用doc2vec训练并得到了模型,但是问题是尽管2行的内容是相同的,doc2vec给了我两个不同的向量

0 [ 0.02730868  0.00393569 -0.08150548 -0.04009786 -0.01400406]
1 [ 0.03916578 -0.06423566 -0.05350181 -0.00726833 -0.08292392]
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样。我认为这些向量将是相同的。你能解释一下吗?如果我想为相同的单词制作相同的向量,在这种情况下该怎么办?

python nlp gensim word2vec doc2vec

5
推荐指数
2
解决办法
826
查看次数

标签 统计

doc2vec ×1

gensim ×1

nlp ×1

python ×1

word2vec ×1