Я могу построить модель, используя встроенный корпус lee_background.Но когда я пытаюсь сравнить, используя метод most_s Similar, я получаю сообщение об ошибке.
lee_train_file = '/opt/conda/lib/python3.6/site-packages/gensim/test/test_data/lee_background.cor'
train_corpus=list()
with open(lee_train_file) as f:
for i, line in enumerate(f):
train_corpus.append(gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(line), [i]))
model = gensim.models.doc2vec.Doc2Vec(vector_size=48, min_count=2, epochs=40)
model.build_vocab(train_corpus)
model.wv.vocab['penalty'].count
model.train(train_corpus, total_examples=model.corpus_count, epochs=model.epochs)
line="""
dummy text here...
"""
inferred_vector=model.infer_vector(gensim.utils.simple_preprocess(line) )
model.docvecs.most_similar(inferred_vector, topn=3)
Я пытался сделать это со списком (inferred_vector), но все равно получаю ошибку.
TypeError: 'numpy.float32 'объект не повторяется
Я пытаюсь сравнить фиктивный текст с корпусом и определить, существует ли уже запись в файле данных.
Обновить: Вместо списка (inferred_vector) мне нужно использовать [inferred_vector].Это решило мою проблему.Но когда я запускаю этот код, я получаю разные похожие документы.Как это возможно?
line="""
The national executive of the strife-torn Democrats last night appointed little-known West Australian senator Brian Greig
as interim leader--a shock move likely to provoke further conflict between the party's senators and its organisation.
In a move to reassert control over the party's seven senators, the national executive last night rejected Aden Ridgeway's
bid to become interim leader, in favour of Senator John, a supporter of deposed leader Natasha Stott Despoja and an outspoken
gay rights activist.
"""
inferred_vector=model.infer_vector(gensim.utils.simple_preprocess(line))
model.docvecs.most_similar([inferred_vector], topn=5)
Иногда я получаю этот список, и этот список постоянно меняется каждый раз, когда я запускаю код, даже если в модели нет изменений.
[(151, 0.5980586409568787),
(74, 0.5736572742462158),
(106, 0.5714541077613831),
(249, 0.5695925951004028),
(209, 0.5642371773719788)]
[(249, 0.5727256536483765),
(151, 0.5725511312484741),
(74, 0.5711895823478699),
(106, 0.5583171248435974),
(292, 0.5491517782211304)]
КакНа самом деле, первая строка в учебном корпусе на 99% похожа на эту строку, потому что изменилось только 1 слово.Удивительно, но document_id 1 нигде нет в списке 5 лучших.