0

嗨,我正在尝试编写一个小程序来索引 xml 集合中的一些文档。我使用 tf-idf 方法。现在,当我的程序读取查询时,它会为每个文档中的每个单词返回一个元组列表('tf-idf'、'docid')。

这是一个例子:

Query: "Dog water"

Documents: [(0.212,1),(0.334,1),(0.111,2),(0,2)]  

在这种情况下,文档 2 里面只有一个单词。

现在我的问题是:我知道我必须在这些文档和查询之间做点积,但我该怎么做呢?如何将查询转换为权重向量?

谢谢你。

4

1 回答 1

0

如果你的问题是:“我如何docid: [weight,...]从这个列表中构建一个字典,答案很简单:

from collections import defaultdict

def transform(query_results):
     revindex = defaultdict(list)
     for weight, docid in query_results:
         revindex[docid].append(weight)
     return revindex

否则,请提供更多解释 - 如果可能的话,请提供预期的输出示例。

于 2014-09-08T14:48:46.947 回答