前言
說明:本文章使用的ES版本是:6.2.4
在上一篇文章Elasticsearch搜索過程詳解中,介紹了ES的搜索過程。
接下來我們具體的看一下ES搜索時,是如何計算文檔相關性得分並用於排序的。
TF-IDF
在介紹ES計算文檔得分之前,先來看一下TF-IDF
算法。
TF-IDF
(Term Frequency–Inverse Document Frequency)是一種用於信息檢索與文本挖掘的常用加權算法。它是一種統計方法,用以評估一字詞對於一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨着它在文件中出現的次數成正比增加,但同時會隨着它在語料庫中出現的頻率成反比下降。
TF-IDF算法原理
TF-IDF
實際上是兩個算法TF
和IDF
的乘積。
詞頻(Term Frequency,TF)
詞頻的所在對象是一個具體的文檔,是指一個文檔中出現某個單詞(Term)的頻率(Frequency)。這裏用的是頻率而不是次數,是爲了防止文檔內容過長從而導致某些單詞出現過多。爲了正確評價一個單詞在一個文檔中的重要程度,需要將出現次數歸一化,其算法如下:
tfi