国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Lucene TF-IDF 相關性算分公式(轉)

2019-11-14 23:41:19
字體:
來源:轉載
供稿:網友
Lucene TF-IDF 相關性算分公式(轉)

Lucene在進行關鍵詞查詢的時候,默認用TF-IDF算法來計算關鍵詞和文檔的相關性,用這個數據排序

TF:詞頻,IDF:逆向文檔頻率,TF-IDF是一種統計方法,或者被稱為向量空間模型,名字聽起來很復雜,但是它其實只包含了兩個簡單規則

  1. 某個詞或短語在一篇文章中出現的次數越多,越相關
  2. 整個文檔集合中包含某個詞的文檔數量越少,這個詞越重要

所以一個term的TF-IDF相關性等于 TF * IDF

這兩個規則非常簡單,這就是TF-IDF的核心規則,第二個的規則其實有缺陷的,他單純地認為文本頻率小的單詞就越重要,文本頻率大的單詞就越無用,顯然這并不是完全正確的。并不能有效地反映單詞的重要程度和特征詞的分布情況,比如說搜索web文檔的時候,處于HTML不同結構的特征詞中對文章內容的反映程度不同,應該有不同的權重

TF-IDF的優點是算法簡單,運算速度很快

Lucene為了提高可編程行,在上述規則做了一些擴充,就是加入一些編程接口,對不同的查詢做了權重歸一化處理,但是核心公式還是TF * IDF

Lucene算法公式如下

score(q,d) = coord(q,d) · queryNorm(q) · ∑ ( tf(t in d) · idf(t)2 · t.getBoost() · norm(t,d) )

  • tf(t in d ), = frequency½
  • idf(t)= 1 +log(文檔總數/(包含t的文檔數+1))
  • coord(q,d)評分因子,。越多的查詢項在一個文檔中,說明些文檔的匹配程序越高,比如說,查詢"A B C",那么同時包含A/B/C3個詞的文檔 是3分,只包含A/B的文檔是2分,coord可以在query中關掉的
  • queryNorm(q)查詢的標準查詢,使不同查詢之間可以比較
  • t.getBoost() 和 norm(t,d) 都是提供的可編程接口,可以調整 field/文檔/query項 的權重

各種編程插口顯得很麻煩,可以不使用,所以我們可以把Lucence的算分公式進行簡化

score(q,d) = coord(q,d) · ∑ ( tf(t in d) · idf(t)2 )

結論
  1. TF-IDF 算法是以 term為基礎的,term就是最小的分詞單元,這說明分詞算法對基于統計的ranking無比重要,如果你對中文用單字切分,那么就會損失所有的語義相關性,這個時候 搜索只是當做一種高效的全文匹配方法
  2. 按照規則1某個詞或短語在一篇文章中出現的次數越多,越相關一定要去除掉stop Word,因為這些詞出現的頻率太高了,也就是TF的值很大,會嚴重干擾算分結果
  3. TF和IDF在生成索引的時候,就會計算出來: TF會和DocID保存在一起(docIDs的一部分),而IDF= 總文檔數 / 當前term擁有的docIDs 長度

本文地址:http://lutaf.com/210.htm魯塔弗原創文章,歡迎轉載,請附帶原文鏈接


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冕宁县| 桦川县| 东乡县| 九龙坡区| 万山特区| 浦北县| 于都县| 卓尼县| 中西区| 栾城县| 即墨市| 淮阳县| 沁源县| 阿尔山市| 盘山县| 鄂温| 滨州市| 隆化县| 东方市| 英山县| 修文县| 交城县| 正阳县| 剑河县| 扎兰屯市| 五常市| 安图县| 井陉县| 子洲县| 宕昌县| 晴隆县| 新闻| 扬州市| 昌黎县| 宁武县| 永嘉县| 岳阳县| 和龙市| 岚皋县| 于都县| 定远县|