我正在使用gensim来分析大型语料库中的文档相似度。每个文档都有一个“标题”,或者更具体地说,是一个唯一的ID字符串,以及内容文本。
在查看了几个关于tutorials,top modeling和维基百科的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
就是我想要的。
答案 0 :(得分:0)
您发布的second code仅使用预先计算的向量和模型(请参阅相同代码中的In[3]
和In[4]
)。它没有按原样使用或存储文档或标题,因此无法检索文档的标题。
但是,您发布的first code定义并使用WikiCorpus
类,其中包含一个名为titles
的列表。您只需使用该列表即可检索所需的标题。
所以,基本上这应该适合你:
wiki_corpus.titles[id]