Lucene基本相关度算法与网上流传的针对web的改进算法

藏书人摘要:理解这些算法,对于你做优化排名是有好处的.分享一下.1公式为:score_d = sum_t(tf_q * idf_t / norm_q * tf_d * idf_t / norm_dt_t)score_d: Document(d) 的得分sum_t: Term(t) 的总和tf_q: 查询中 t 的频度的平方根tf_q: d 中 t 的频度的平方根idf_t: log(numDo...
理解这些算法,对于你做优化排名是有好处的.分享一下.
1公式为:
score_d = sum_t(tf_q * idf_t / norm_q * tf_d * idf_t / norm_dt_t)
score_d: Document(d) 的得分
sum_t: Term(t) 的总和
tf_q: 查询中 t 的频度的平方根
tf_q: d 中 t 的频度的平方根
idf_t: log(numDocs/docFreq_t + 1) + 1.0
numDocs: 索引中Document的数量
docFreq_t: 包含t的Document的数量
norm_q: sqrt(sum_t((tf_q*idf_t)^2))
norm_d_t: 在与 t 相同域的 d 中 tokens 数量的平方根
基础排序算法的不足
要点:
    查询词在一个 Document 中的位置并不重要。
    如果一个 Document 中含有该查询词的次数越多,该得分越高。
    一个命中document中,如果除了该查询词之外,其他的词越多,该得分越少。

不足:
    查询精确度不好。
    没有体现网页的重要性
    Lucene的得分算法, 不适合网页搜索。
    google的pagerank算法主要是根据link
改进的算法:
    Score_d = k1 * OldScore + k2 * PrScore + k3 * ReScore + k4 * homePageScore
    Score_d: 记录d的得分。
    OldScore: 由基础排序算法计算出的记录d的得分。
    PrScore: 记录d的PageRank的得分。
    ReScore: 记录d的二次检索的加分, ReScore = rescore + (hitNum - 1) * increment
    homePageScore: 主页的加分
    K1, K2, K3, K4为权重系数
    PR(A) = (1 - d) + d(PR(1) / C(1) + ... + PR(n)/C(n))
    PageRank, 二次检索, 以及主页加分的调整确实优化了查询精确度。

 

在结果中检索又称为二次检索。 是在当前检索结果内进行的检索,主要作用是进一步精选文献。当检索结果太多,想从中精选出一部分时,可使用二次检索。


hitNum是网页点击数


increment是该单词每多出现一次所增加的“分数”


另外,对于网页,term属于某些标签内应该也加以权重,如加黑的,图片上方或者下方的,title内的,标题元素等,对于普通文档,term包含在标题,摘要内的,或文档开头的也应有加分。
可以通过setBoost完成


下一篇:搜索引擎三大定律 摘要:是百度李彦宏讲的搜索引擎三大定律,在所讲的内容中,我们从第一和第二定律,我们可以发现一些搜索引擎的最基本的东西。第一定律 相关性定律  情报检索、信息检索或全文检索的相关性都是基于词频统计的。当用户输入检索词时,搜索引擎去找那些检索
相关文章:
  • GOOGLE搜索引擎蜘蛛的等级
  • 搜索引擎的分类
  • 搜索引擎对用户点选hit的处理
  • 搜索引擎三大定律
  • 优化的本质
  • 贝叶斯网络技术