ElasticSearch--相關度背後的理論

TF/IDF

詞頻(TF)

其實就是一個詞在一篇文章中出現的頻率在開平方,頻率越高,說明這個詞在這篇文章中的權重越高

IDF

idf(word) = 1+log(numDocs/(docFreq +1))
numdocs是所有文檔的數量,docFreq 是包含有word的文檔的數量。可以看出當docFreq越大,則IDF越小,例如像the這樣的詞,幾乎每篇文章裏都有,所以這樣的詞權重就很低

Field-length norm

可以想象,如果文檔的長度越小,那麼某個詞在這個文檔中的權重就越高。Field-length norm
的計算方法
norm(d) = 1/sqrt(numTerms)
在全文索引中Filed-length norm是很重要的,而其他類型的檢索可能不需要field-length norm。對於每個string field norms大約消耗一個字節的存儲容量,所以當我們不需要全文索引,僅僅是查找關鍵詞的時候,不要norms功能可以節省不少的存儲空間。

將上述參數合起來

上述的三個因素—詞頻(TF),逆向文件頻率(IDF)和filed-length norm, 實在在索引時間計算和保存的。這些被用來計算一個單詞在某個特定文檔中的權重。

向量空間模型

當然我們在索引文件的時候並不是單單用一個單詞,當我們用多個詞來搜索某個文件的時候怎麼辦呢?
這時候我使用向量空間模型。一個向量中的每一個數字是一個單詞在這個文檔中的權重(用TF/IDF計算的)。
首先先計算查詢字符串的對於每個詞的權重向量,然後再計算文檔的向量。然後再用餘弦定理計算兩個文檔向量的距離d,d越接近於1說明訪問字符串和這個文檔的相關度越高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章