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

1.Lucene的Score计算公式:

coord(q,d): 文档d中,q中命中的项数除以查询q的项总数

queryNorm(q): 只在不同query比较时影响score的normalizing因素

tf(t in d):单文本词汇频率,t在文档d中出现的次数除以d中所有的项总数的平方根

idf(t):逆文本频率指数,log(numDocs/docFreq+1)+1.0

If the document has multiple fields with the same name, all their boosts are multiplied together

比如:

doc: 1,000,000

q: term1 term2 term3

doc1: 200terms, 2个t1,1个t2,0个t3

t1: 在100个doc中出现

t2: 在50个doc中出现

t3: 在200个doc中出现

2/200 * (sqrt(2/200)*(1+log(1000000/(100+1))/

要点:

查询词在一个 Document 中的位置并不重要。

如果一个 Document 中含有该查询词的次数越多,该得分越高。

一个命中document中,如果除了该查询词之外,其他的词越多,该得分越少。

不足:

查询精确度不好。

没有体现网页的重要性。

Lucene的得分算法, 不适合网页搜索。

2.网上流传的针对Web的改进的算法:

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)/N + d(PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

–         PR(A) 页面A的PageRank

–         PR(Ti) 超链接到页面A的Ti页面的PageRank

–         C(Ti) 页面Ti的链向其它页面的超链接数

–         d 阻尼系数(0,1之间)

–         N 所有网页的总数

计算Pagerank的步骤如下:

1)所有网页的Pagerank得分值都赋初始值

2)遍历网页数据库。对于每一个页面,通过查找链接数据库,得到当前页面所有的链出页面。再将当前页面的Pagerank得分值平分给每个链出的页面。

3)重复步骤2,迭代多次,直至收敛。

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

hitNum是网页点击数

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

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


http://hi.baidu.com/lewutian推荐文章:
1. lucene结果集的分页处理(百度 分页 方式)终于调试通过了。
2. lucene学习笔记二. 1.9版本升级的问题.
3. lucene的demo环境搭建 windows
4. Lucene-2.2.0 源代码阅读学习(17)
5. Lucene(Nutch)距离商业文本搜索引擎还有多远?(转载)
6. Lucene作为一个全文检索引擎所具有的优点[转]
7. Lucene.NET过滤
8. Apache Lucene - 演示程序的基本概念
9. Lucene提供的条件判断查询
10. lucene的搜索
11. 比较lucene各种英文分析器Analyzer
12. 使用lucene自带的Highlighter 语法高亮显示
13. Lucene 结果排序
14. Lucene--Directory解析
15. Lucene.NET分布搜索
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值