使用 BM25 对单词进行排序

数据挖掘 nlp 统计数据 情绪分析 信息检索 排行
2022-03-09 10:03:43

使用 BM25 对单词进行排序有多有效,更具体地说,我有一个单词词典,我只想对文档中也在我的词典中的单词进行排序。我想为每个文档对字典中的所有单词进行排名,然后为特定文档添加每个单词的 BM25 值。

可以说我有一个像这样的文档和字典:

myDictionary=['bad', 'dangerous','hide', 'following]

corpus=[
['human', 'intelligence', 'computer','bad', 'dangerous'],
 ['survey', 'user', 'human', 'system', 'time', 'hide', 'following],
]

现在我将在我的字典中的所有单词循环中运行下面的 BM25 公式,然后对每个单词的结果求和以获得每个文档的 bm25 值。

1个回答

BM25 通常用于信息检索。在此任务中,您有一个查询和大量文档(可能数百万),然后您希望找到与您的查询最相关的这些文档的子集。将提供从最相关到​​最不相关的一组文档的排名。

如果说高效,则意味着以计算方式快速。我会说 BM25 相对于其他使用深度神经网络的算法来说相当快。

但是,如果您询问 BM25 结果是否有希望。这是值得商榷的,因为 BM25 已经使用了很长时间。人们通常将它用于排名的第一步,然后使用其他强大的工具进行重新排名。这并不意味着 BM25 给出了最好的答案。但是当您处理数千或数百万个文档时,这是一个不错的选择,以便仅选择 BM25 得分较高的文档子集,然后使用更准确的算法对 BM25 的结果进行重新排序。