马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
BM25算法介绍BM25(BM=best matching)是TDIDF的优化版本,首先我们来看看TFIDF是怎么计算的
TFIDFT F − I D F = T F ∗ I D F = 某 单 词 数 量 单 词 总 数 ∗ l o g ( 总 文 档 包 含 某 单 词 的 文 档 数 + 1 ) TF-IDF=TF*IDF=\frac{某单词数量}{单词总数}*log(\frac{总文档}{包含某单词的文档数+1})TF−IDF=TF∗IDF=单词总数某单词数量∗log(包含某单词的文档数+1总文档)
其中tf称为词频,idf为逆文档频率。
BM25B M 25 ( i ) = 词 i 的 数 量 总 词 数 ∗ ( k + 1 ) C C + k ( 1 − b + b ∣ d ∣ ∣ a v d l ∣ ) ∗ l o g ( 总 文 档 数 包 含 i 的 文 档 数 ) BM25(i)=\frac{词i的数量}{总词数}*\frac{(k+1)C}{C+k(1-b+b\frac{|d|}{|avdl|})}*log(\frac{总文档数}{包含i的文档数})BM25(i)=总词数词i的数量∗C+k(1−b+b∣avdl∣∣d∣)(k+1)C∗log(包含i的文档数总文档数)
C = t f = 词 i 的 数 量 总 词 数 , k > 0 , b ∈ [ 0 , 1 ] C=tf=\frac{词i的数量}{总词数},k>0, b \in [0,1]C=tf=总词数词i的数量,k>0,b∈[0,1], d dd为文档i ii的长度,a v d l avdlavdl是文档的平均长度
BM25和tfidf的计算结果很相似,唯一的区别在于中多了一项,这一项是用来对tf的结果进行的一种变换。
把1 − b + b d a v d l 1-b+b\frac{d}{avdl}1−b+bavdld中的b bb看成0,那么此时项的结果为( k + 1 ) t f k + t f \frac{(k+1)tf}{k+tf}k+tf(k+1)tf,通过设置一个k kk,就能够保证其最大值为1,达到限制t f tftf过大的目的。
即:
k kk不变的情况下,上式随着tf的增大而增大,上限为k + 1 k+1k+1,但是增加的程度会变小,如下图所示。
在一个句子中,某个词重要程度应该是随着词语的数量逐渐衰减的,所以中间项对词频进行了惩罚,随着次数的增加,影响程度的增加会越来越小。通过设置k kk值,能够保证其最大值为k + 1 k+1k+1,k kk往往取值1.2。
其变化如下图(无论k为多少,中间项的变化程度会随着次数的增加,越来越小):
1 − b + b d a v d l 1-b+b\frac{d}{avdl}1−b+bavdld的作用是用来对文本的长度进行归一化。
例如在考虑整个句子的tdidf的时候,如果句子的长度太短,那么计算的总的tdidf的值是要比长句子的tdidf的值要低的。所以可以考虑对句子的长度进行归一化处理。
可以看到,当句子的长度越短,1 − b + b d a v d l 1-b+b\frac{d}{avdl}1−b+bavdld的值是越小,作为分母的位置,会让整个第二项越大,从而达到提高短文本句子的BM25的值的效果。当b的值为0,可以禁用归一化,b bb往往取值0.75
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|