为了账号安全,请及时绑定邮箱和手机立即绑定

我想从python中的两个嵌入文档中获取语义相似的单词列表

我想从python中的两个嵌入文档中获取语义相似的单词列表

阿波罗的战车 2022-10-05 17:00:46
我正在研究在 python 中嵌入文本。我发现两个文档与 Doc2vec 模型的相似之处。代码如下:for doc_id in range(len(train_corpus)):    inferred_vector = model.infer_vector(train_corpus[doc_id].words) # it takes each document words as a input and produce vector of each document    sims = model.docvecs.most_similar([inferred_vector], topn=len(model.docvecs)) # it takes list of all document's vector as a input and compare those with the trained vectors and gives the most similarity of 1st document to other and then second to other and so on .    print('Document ({}): «{}»\n'.format(doc_id, ' '.join(train_corpus[doc_id].words)))    print(u'SIMILAR/DISSIMILAR DOCS PER MODEL %s:\n' % model)    for label, index in [('MOST', 0), ('SECOND-MOST', 1), ('MEDIAN', len(sims)//2), ('LEAST', len(sims) - 1)]:        print(u'%s %s: «%s»\n' % (label, sims[index], ' '.join(train_corpus[sims[index][0]].words)))现在,从这两个嵌入的文档中,我如何才能从这些特定文档中提取一组语义相似的单词。请帮帮我。
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

只有某些Doc2Vec模式也训练词向量:(dm=1默认)或(DBOW doc-vectors,但添加了 skip-gram 词向量。如果您使用过这种模式,那么您的属性dm=0, dbow_words=1中将会有词向量。model.wv

调用model.wv.similarity(word1, word2)方法将为您提供任何 2 个单词的成对相似性。

因此,您可以遍历 中的所有单词doc1,然后收集与 中的每个单词的相似度doc2,并报告每个单词的最高相似度。


查看完整回答
反对 回复 2022-10-05
  • 1 回答
  • 0 关注
  • 51 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信