首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么所有文档的BM25分数结果都为负?

为什么所有文档的BM25分数结果都为负?
EN

Stack Overflow用户
提问于 2020-06-02 20:45:07
回答 1查看 396关注 0票数 0

我一直在尝试计算BM25分数,以便根据查询从一组文档中找到相关和不相关的文档。事实证明,由于文档长度或文档数量的原因,所有文档的BM25分数都为负值。代码是用python编写的。这组文档是xml文件。

*例如:

分号之前的数字是文档id,分号之后的数字是基于查询的BM25分数。

在python中输出如下:*

查询“有关政府资助私立或宗教学校学券利弊的研究文件”

bm25 --> {'47424':-15.148270578009287,'59301':-4.5324888278916955,'51441':-6.39047920340723,'35782':-12.439912866021055,'6409':-14.577866844394313,'70619':-17.00481043343906,'44597':-8.697203569753626,'73731':-5.178938184315641,'56686':-15.217341163205859,'75558':-13.864972462927318,'6386':-15.063892406359518,'50516':-15.224423885623839,'53259':-15.251308584218336,'53364':-15.66416744135934,'7914':-5.66450911939087,'32528':-16.092842615677846,'16723':-10.120903791415753,'86068':-15.109324552334709,'67169':-16.25963854937583,'41521':-14.689271200861244,'25029':-10.542716008819404,'32963':-15.995234645822308,'49023':-5.128845432659929,'46632':-4.522709302815306,'76481':-15.331654599460377,'19526':-16.5397158773958,'68829':-6.237632920251847,'49731':-16.64556902599432,'61487':-15.777496075315927,'16841':-4.970159012101008,'6399':-16.14724012989677,'55974':-16.679111714509364,'76556':-14.37904634631273,'61644':-9.167501264772618,'8085':-15.04843381737171734,'55891':-8.227333733937748,'3648':-16.5003155647673,'70606':-16.840470957025445,'64336':-4.2650402909943,'31281':-15.991922110559575,'2800':-14.793472384723657,'67135':-14.008735870771446,'41355':-14.200897078737842,'70854':-16.398911831821696}

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 18:14:47

这可能是由于您的IDF函数所致,该函数通常由IDF = log((N -n+ 0.5) / (n + 0.5))计算得出。这导致出现在超过一半的语料库文档中的术语为负值。由于您将此IDF值与BM25公式的另一部分相乘,因此总体BM25结果也将变为负值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62152332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档