Я использую 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 строк, и содержимое этих 2 строк такое же (они "a"), которое я обучил с помощью doc2vec и получилмодель, но проблема в том, что содержимое двух строк одинаково, doc2vec дал мне 2 разных вектора.
0 [ 0.02730868 0.00393569 -0.08150548 -0.04009786 -0.01400406]
1 [ 0.03916578 -0.06423566 -0.05350181 -0.00726833 -0.08292392]
Я не знаю, почему это произошло.Я думал, что эти векторы будут одинаковыми.Вы можете это объяснить?И если я хочу сделать одинаковые векторы для одних и тех же слов, что мне делать в этом случае?