《信息检索导论》第七章总结
一、打分排序的特性
?
其實對于打分排序來說,我們最終只需要確定文檔的相對順序即可,因此我們可以簡化打分的算法,只需要保持相對順序不變即可;
?
二、快速排序及打分方法
?
我們前面的打分排序方法都需要計算查詢及每篇文檔的余弦相似度,然后需要取出打分最高的前K篇文檔,這樣做的復雜度是很高的;其實如果有一個算法能夠近似求出前K篇文檔但是復雜度少很多(不需要計算所有文檔的得分),則我們通常會采用后一種算法;
通用方法:預先找到文檔子集A(遠小于初始文檔集),包含了大多數的候選文檔,并在A中計算得分最高的前K篇文檔;以下方法都是基于這個規則計算的;
1.索引去除技術
(1)只考慮term的idf超過閾值的posting;因為低idf的term通常是stop words,posting非常長,所以不計算這些將使復雜度大大降低,因此不必考慮;
這里會出現超過閾值的doc沒超過K篇,則需要使用層次型索引解決;
層次型索引:將倒排記錄表進行分層,比如tf超過20的在第一層,tf超過10的在第二層,當需要查找前K篇文檔時,只需要先在第一層查找,如果沒取夠K篇,則到第二層查找;
因此層次型索引是解決可能返回文檔少于K篇的方法;
(2)只考慮包含多個查詢詞項的文檔;
?
2.勝利表法
?
勝利表(champion list):對于詞項t,預先取出posting的tf值最高的r篇文檔,此序列稱為勝利表;
給定一個查詢Q,我們只需要求Q中的每個詞項的勝利表的并集,此并集就是通用方法所說的文檔子集A,并在A中計算余弦相似度;
?
3.靜態得分排序法Static quality Score
?
每篇文檔都有一個與查詢無關的靜態得分g(d),倒排索引中的posting按照g(d)進行降序排列;
而最后的得分是Score(q,d)=g(d)+v(q)v(d);
在第二十一章所說的PageRank是一個靜態質量得分,是一個基于網頁鏈接分析的打分;
?
4.分層搜索排序
?
對于詞項t,維持兩個表:高端表(tf值最高的m篇文檔)和低端表(其余文檔),都以g(d)排序;
取出打分最高的K篇文檔方法:先計算高端表的得分,如果已經在高端表已經能夠取出K篇得分最高的文檔,則結束;否則,其余的在低端表中取;
?
5.cluster pruning
?
leader:在N篇文檔中找到(根號N)篇文檔作為leader;
follower:每個leader都有(根號N)個follower,表示與leader距離較近;
查詢方法:給定查詢Q,先與每個leader計算余弦相似度,找到最近的leader,文檔子集A為此leader+leader對應的follower;
?
三、其他考慮因素
?
1.查詢詞項鄰近性
我們希望查詢詞在文檔中都靠的很近,這樣才能夠使得文檔和查詢更相關;
最小窗口大小:the quality of mercy is not stained ,如果查詢為:stained quality;則最小窗口大小為6(quality of mercy is not?strained);
軟合取:文檔不必包含全部的查詢詞項,只需要包含大部分的查詢詞項即可;
因此有可能需要將鄰近性也加入權重中;
?
四、搜索引擎組成
?
?
indexer用于生成各式各樣的索引,比如參數化索引、域索引、K-gram索引、分層索引;
?
向量空間模型和布爾檢索模型有所不同,布爾模型只考慮詞項在文檔中是否存在,而不考慮出現了幾次,也沒有權重;
?
轉載于:https://www.cnblogs.com/xiazdong/archive/2012/01/07/3058353.html
總結
以上是生活随笔為你收集整理的《信息检索导论》第七章总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Could not find a ver
- 下一篇: php 费率计算_如何计算您的小时费率