0

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

在浏览了几个关于顶级建模索引和检索以及维基百科的教程之后,我仍然不清楚的是如何获得可解释的结果来构建 LSI 模型,并在索引中查询一些搜索向量。在我看到前 N 个最相似的文档索引及其相似度分数后,我如何查找这些文档的标题

例如,在这段代码中:

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 的标题?

在该教程的前一部分中,该iter_wiki()函数产生了一个 (title, tokens) 的元组。这title就是我想要的。

4

1 回答 1

1

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

于 2017-12-19T16:25:28.177 回答