lucence 文档评分公式

    xiaoxiao2026-03-13  3

    1.简介

    分值计算方式为查询语句query中每个项term与文档doc的评分之和。公式表示见1-1。

    score(query,doc)=termqueryscore(term,doc)(1-1)

    2.term与doc的评分

    2.1 基于tf-idf

    score(t,d)=tf(t,d)idf(t)2boost(t,d)lengthNorm(t,d)coord(q,d)queryNorm(q)(2-1) 符号说明备注tterm/ddoc/qterm 所在query/tf(t,d)term在doc中的频率/idf(t) 1termdoc /boost(t,d)域和文档的加权在索引期间设置。可以用该方法对某个域或文档进行静态单独加权lengthNorm(t,d)域的归一化值域的归一化(normalization)值,更短的域获得更大的加权。该值在索引期间计算,并保存在索引norm中。coord(q,d)协调因子(Coordination factor)基于doc与query的term的交集的数量。该因子会对包含更多搜索项的文档进行类似AND 的加权。queryNorm(q)查询的归一化值每个term权重的平方和 此表格来源于《lucene实战(第二版)》,P82.tf*idf思想可见《tf*idf 用于文本分类中的特征提取》

    2.2 基于BM25

    score(t,d)=idf(t)(k1+1)tf(t,d)k1((1b)+bdlavgdl)+tf(t,d)(2-2) k1,b为调节因子,根据经验设置,一般取 k1=2,b=0.75,dl为文档长度,avgdl为所有文档的平均长度。
    最新回复(0)