信息检索,倒排索引问题

0 投票
1 回答
1183 浏览
提问于 2025-04-20 11:43

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

这是一个例子:

Query: "Dog water"

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

在这个例子中,文档2里面只有一个单词。

现在我的问题是:我知道我需要对这些文档和查询进行点积运算,但我该怎么做呢?我怎么才能把查询转换成一个权重向量呢?

谢谢。

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

如果不是这样,请提供更多的解释——如果可以的话,给一个你期望的输出示例。

撰写回答