Lucene基础排序算法改进

原创 2005年05月01日 15:10:00
Lucene基础排序算法:

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的得分算法, 不适合网页搜索。

改进的算法:
    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, 二次检索, 以及主页加分的调整确实优化了查询精确度。

单片机

前两天我在机房管理的会议上讲了关于单片机的一些知识,分享给大家 声明一下,我是物理学专业的但是我们专业没有学习过单片机这门课,讲课内容是临时在网上查询的资料 一、单片机 什么是...

深入了解Lucene之三 排序算法.doc

  • 2008年12月11日 12:57
  • 163KB
  • 下载

将BM25 用作lucene排序算法的实现步骤

BM25算法的介绍:http://en.wikipedia.org/wiki/Okapi_BM25 BM25算法一直是被用作代替lucene的TFIDF的评分公式的。 首先给出BM25的相关度计算...

基础排序算法

  • 2017年08月09日 20:34
  • 16KB
  • 下载

Java基础复习笔记11基本排序算法

  • 2011年05月08日 22:00
  • 234KB
  • 下载

第15周||排序算法的基础应用及其验证(1)

用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法: (...

9.数据结构与算法基础-排序算法

  • 2012年03月04日 22:00
  • 28.3MB
  • 下载

数据结构基础 排序算法(一) 概念篇

这里对笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介...

改进的堆排序算法

  • 2013年11月04日 14:55
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lucene基础排序算法改进
举报原因:
原因补充:

(最多只允许输入30个字)