gensim文档相似性:如何从最相似的结果中获取文档标题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gensim文档相似性:如何从最相似的结果中获取文档标题?相关的知识,希望对你有一定的参考价值。

我正在使用gensim来分析大型语料库中的文档相似性。每个文档都有一个“标题”,或者更具体地说,一个唯一的ID字符串,以及内容文本。

在查看了几个关于tutorialstop modeling和Wikipedia的indexing and retrieval之后,我还不清楚如何获得可解释的结果来构建LSI模型,以及查询某些搜索向量的索引。在我看到前N个最相似的文档索引及其相似性分数后,如何查找这些文档的标题?

例如,在这个code

index.num_best = 10
print(index[query_lsi])
INFO:gensim.utils:loading MatrixSimilarity object from ./data/wiki_index.0
INFO:gensim.utils:loading MatrixSimilarity object from ./data/wiki_index.1
INFO:gensim.utils:loading MatrixSimilarity object from ./data/wiki_index.2

[(4028, 0.82495784759521484), (52384, 0.82495784759521484), (13582, 0.8166358470916748), (61938, 0.8166358470916748), (0, 0.80658835172653198), (48356, 0.80658835172653198), (85, 0.8048851490020752), (48441, 0.8048851490020752), (115, 0.79446637630462646), (48471, 0.79446637630462646)]

我如何查找例如文档#61938的标题,该文档以最相似的结果返回?

previous part to that tutorial中,iter_wiki()函数产生了一个元组(标题,标记)。 title就是我想要的。

答案

您发布的second code仅使用预先计算的向量和模型(请参阅相同代码中的In[3]In[4])。它不会按原样使用或存储文档或标题,因此无法检索文档的标题。 但是,你发布的first code定义并使用WikiCorpus类,它有一个名为titles的列表。您只需使用该列表即可检索所需的标题。 所以,基本上这应该适合你:wiki_corpus.titles[id]

以上是关于gensim文档相似性:如何从最相似的结果中获取文档标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 gensim 模型中的 Doc2Vec 相似度分数访问文档详细信息?

如何计算两个文本文档之间的相似度?

基于Gensim的文本相似度计算

Gensim Word2vec:语义相似度

gensim加载word2vec训练结果(bin文件)并进行相似度实验

如何使用 gensim 的 word2vec 模型与 python 计算句子相似度