1、評分公式

coord(q,d):
一個評分因子,基于有多少個查詢terms 在特定的文檔中被找到。通常一篇包含了越多的查詢terms 的文檔將比另一篇包含更少查詢terms 的文檔獲得更高的分數(shù)。這是一個搜索時的因子是在搜索的時候起作用,它在Similarity 對象的coord(q,d)函數(shù)中計算。
queryNorm(q):
一個修正因子,用來使不同查詢間的分數(shù)更可比較。這個因子不影響文檔的排名(因為搜索排好序的文檔會增加相同的因數(shù)),更確切地說只是為了嘗試使得不同查詢條件之間更可比較性。這因子是在搜索的時候起作用,由Similarity 對象計算。
缺省idff(t in d)算法實現(xiàn)在DefaultSimilarity 類中,公式如下:

tf(t in d):
與term 的出現(xiàn)次數(shù)有關系,定義為term t 在當前算分的文檔d中出現(xiàn)的次數(shù)。對一個給定的term,那些出現(xiàn)此term 的次數(shù)越多的文檔將獲得越高的分數(shù)。
缺省的tf(t in d)算法實現(xiàn)在DefaultSimilarity 類中,公式如下:

idf(t):
代表反轉(zhuǎn)文檔頻率。這個分數(shù)與反轉(zhuǎn)的docFreq(出現(xiàn)過term t 的文檔數(shù)目)有關系。這個分數(shù)的意義是越不常出現(xiàn)的term 將為最后的總分貢獻更多的分數(shù)。
缺省idff(t in d)算法實現(xiàn)在DefaultSimilarity 類中,公式:

t.getBoost() :
一個搜索時的代表查詢q中的term t 的boost 數(shù)值,具體指定在查詢的文本中,或者由應用程序調(diào)用setBoost()來指定。需要注意的是實際上沒有一個直接的API 來訪問一個多個term 的查詢中的一個term 的boost 值,更確切地說,多個terms在一個查詢里的表示形式是多個TermQuery 對象,所以查詢里的一個term 的boost 值的訪問是通過調(diào)用子查詢的getBoost()方法實現(xiàn)的。
norm(t,d):
取得一小部分boost 值和長度因子:
document boost:在添加文檔到索引之前通過調(diào)用doc.setBoost()來設置。
Field boost:在添加Field 到文檔之前通過調(diào)用field.setBoost()來設置。
lengthNorm(field):在文檔添加到索引的時候,根據(jù)文檔中該field 的tokens數(shù)目計算得出,所以更短的field 會貢獻更多的分數(shù)。lengthNorm 是在索引的時候起作用,由Similarity 類計算得出。
當一篇文檔被添加到索引的時候,所有上面計算出的因子將相乘起來(multiplied)。如果文檔擁有多個相同名字的fields(multiple fields with same name),所有這些fields 的boost 值也會被一起相乘起來(multiplied together):

然而norm 數(shù)值的結果在被存儲(stored)之前被編碼成(encoded as)一個單獨的字節(jié)。在檢索的時候,這個norm 字節(jié)值從索引目錄中讀取出來,并解碼回一個norm 浮點數(shù)值。這個編/解碼行為,會縮減索引的大小,這得自于精度損耗的代價。
2、TF-IDF算法
是一種用于資訊檢索與資訊探勘的常用加權技術。TF-IDF是一種統(tǒng)計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。
2.1、TF(Term Frequency)
是指某一個給定的詞語在該文件中出現(xiàn)的次數(shù)。在一份給定的文件里,詞頻(TF)指的是某一個給定的詞語在該文件中出現(xiàn)的頻率。這個數(shù)字通常會被歸一化(分子一般小于分母 區(qū)別于IDF),以防止它偏向長的文件(同一個詞語在長文件里可能會比短文件有更高的詞頻,而不管該詞語重要與否)。
TF計算公式:
詞頻(TF) = 詞t在文章d中出現(xiàn)的次數(shù);
標準化公式:
詞頻(TF) = 詞t在文章d中出現(xiàn)的次數(shù) / 文章d的總詞數(shù);
或:
詞頻(TF) = 詞t在文章d中出現(xiàn)的次數(shù) / 文章d中出現(xiàn)次數(shù)最多的詞的出現(xiàn)次數(shù);
2.2、IDF(Inverse Document Frequency)
是一個詞語普遍重要性的度量。如果包含詞條t的文檔越少, IDF越大,則說明詞條具有很好的類別區(qū)分能力。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對數(shù)得到。
IDF計算公式: 逆文檔頻率(IDF)= log(語料庫的文檔總數(shù) / (包含該詞的文檔數(shù)+1))
如果一個詞越常見,那么分母就越大,逆文檔頻率就越小越接近0。分母之所以要加1,是為了避免分母為0(即所有文檔都不包含該詞)。log表示對得到的值取對數(shù)。
IDF的主要思想是:如果包含詞條t的文檔越少,也就是n越小,IDF越大,則說明詞條t具有很好的類別區(qū)分能力。如果某一類文檔C中包含詞條t的文檔數(shù)為m,而其它類包含t的文檔總數(shù)為k,顯然所有包含t的文檔數(shù)n=m+k,當m大的時候,n也大,按照IDF公式得到的IDF的值會小,就說明該詞條t類別區(qū)分能力不強。(另一說:IDF反文檔頻率(Inverse Document Frequency)是指果包含詞條的文檔越少,IDF越大,則說明詞條具有很好的類別區(qū)分能力。)但是實際上,如果一個詞條在一個類的文檔中頻繁出現(xiàn),則說明該詞條能夠很好代表這個類的文本的特征,這樣的詞條應該給它們賦予較高的權重,并選來作為該類文本的特征詞以區(qū)別與其它類文檔,這就是IDF的不足之處。
2.3、TF-IDF
TFIDF的主要思想是:如果某個詞或短語在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。
TF-IDF計算公式: TF-IDF = 詞頻(TF)X 逆文檔頻率(IDF)
TF-IDF與一個詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個語言中的出現(xiàn)次數(shù)成反比。所以,自動提取關鍵詞的算法就很清楚了,就是計算出文檔的每個詞的TF-IDF值,然后按降序排列,取排在最前面的幾個詞。
3、向量空間模型(vector space model)
向量空間模型把用戶的查詢要求和數(shù)據(jù)庫文檔信息表示成由檢索項構成的向量空間中的點,通過計算向量之間的距離來判定文檔和查詢之間的相似程度。然后,根據(jù)相似程度排列查詢結果。向量空間模型的關鍵在于特征向量的選取和特征向量的權值計算兩個部分。
3.1、基本原理
對于任一文檔

,我們可以把它表示為如下t維向量的形式:

其中,向量分量wtj代表第i個標引詞ki在文檔dj中所具有的[權重],t為[系統(tǒng)]中標引詞的總數(shù)。在[布爾模型]中,wtj的取值范圍是{0,1};在向量空間模型中,由于采用“部分匹配”策略,wtj的取值范圍是一個連續(xù)的實數(shù)區(qū)間[0,1]。
在檢索的前處理中,一篇文檔中會標引出多個不同的標引詞,而這些標引詞對表達該篇文檔主題的[能力]往往是不同的。也就是說,每個標引詞[應該]具有不同的權值。如何計算文檔向量中每個標引詞的權值,不僅關系到文檔向量的形成,也關系到后續(xù)的檢索匹配結果。
標引詞權重的大小主要依賴其在不同環(huán)境中的出現(xiàn)頻率統(tǒng)計信息,相應的權重就分成局部權重和全局權重。
局部權重(Local Weight)ltj是按第i個標引詞在第j篇文檔中的出現(xiàn)頻率計算的權重。它以提高查全率為目的,對在文檔中頻繁出現(xiàn)的標引項給予較大的權重。
全局權重(Global Weight)gt則是按第i個標引詞在整個系統(tǒng)文檔集合中的分布確定的權重。它以提高查準率為目的,對在許多文檔中都出現(xiàn)的標引項給予較低的權重,而對僅在特定文檔中出現(xiàn)頻次較高的標引項給予較大的權重。計算全局權重的典型方法就是逆文檔頻率IDF(Inverse Document Frequency)加權法。
gi = log(N / ni)
其中,N為系統(tǒng)文檔總數(shù),ni為系統(tǒng)中含有標引詞ki的文檔數(shù)。
3.2、向量空間模型的分析
向量空間模型最早起源于文本信息檢索實踐,對揭示信息檢索的基本原理做出過重要貢獻。在VSM中,研究人員成功地將非結構化的文本信息表示成向量形式,為隨后的各種文本信息處理操作奠定了數(shù)學計算的基礎。向量空間模型在檢索處理中所具有的先進技術特征主要表現(xiàn)在以下幾個方面。
(1)對標引詞的權重進行了改進,其權重的計算可以通過對標引項出現(xiàn)頻率的統(tǒng)計方法自動完成,使問題的復雜性大為降低,從而改善了檢索效果。
(2)將文檔和查詢簡化為標引詞及其權重集合的向量表示,把對文檔內(nèi)容和查詢要求的處理簡化為向量空間中向量的運算。
(3)采用部分匹配策略,使得在算法層面上基于多值相關性的判斷處理得以實現(xiàn)。
(4)根據(jù)文檔和查詢之間的相似度對檢索結果進行排序,使對檢索結果數(shù)量的控制與調(diào)整具有相當?shù)膹椥耘c自由度,有效地提高了檢索效率。
當然,向量空間模型理論也存在著明顯的缺陷,具體包括以下幾個方面。
(1)從文檔中抽取出的各標引詞之間的關系做了相互獨立的基本假定,這會失掉大量的文本結構信息,如文檔句子中詞序的信息,因此降低了語義的準確性。
(2)相似度的計算鼉較大,當有新文檔加入時,必須重新計算標引詞的權重。
(3)在標引項權重的計算中,對不同語言單位構成的項都只考慮其統(tǒng)計信息,而僅以該信息來反映標引項的重要性,顯然缺乏全面性。
3.3、應用
