TF-IDF算法原理及其使用詳解


拜讀了兩篇大作,受益匪淺,感謝!
這孩子誰懂哈 https://blog.csdn.net/zhaomengszu/article/details/81452907
elly https://zhuanlan.zhihu.com/p/94446764

如何准確抓住一篇文章內容的關鍵詞

TF-IDF(Term Frequency-inverse Document Frequency)是一種針對 關鍵詞的統計分析方法
用於評估一個詞一個文件集 或者 一個語料庫重要程度

一個詞的重要程度跟它在文章中出現的次數成 正比

跟它在語料庫出現的次數成 反比

這種計算方式能有效避免常用詞對關鍵詞的影響,提高了關鍵詞與文章之間的相關性。

重點:算法理解

計算詞頻TF

考慮到文章有長短之分,為了便於不同文章的比較,進行"詞頻"標准化。

或者

計算逆文檔頻率IDF

需要一個語料庫(corpus),用來模擬語言的使用環境。

如果一個詞越常見,那么分母就越大,逆文檔頻率就越小越接近0。分母之所以要加1,是為了避免分母為0(即所有文檔都不包含該詞)。log表示對得到的值取對數。

計算TF-IDF

TF-IDF與一個詞在文檔中的出現次數成正比,與該詞在整個語言中的出現次數成反比。所以,自動提取關鍵詞的算法就很清楚了,就是計算出文檔的每個詞的TF-IDF值,然后按降序排列,取排在最前面的幾個詞。

給個例子:例子來自

以《中國的蜜蜂養殖》為例,假定該文長度為1000個詞,"中國"、"蜜蜂"、"養殖"各出現20次,則這三個詞的"詞頻"(TF)都為0.02。然后,搜索Google發現,包含"的"字的網頁共有250億張,假定這就是中文網頁總數。包含"中國"的網頁共有62.3億張,包含"蜜蜂"的網頁為0.484億張,包含"養殖"的網頁為0.973億張。則它們的逆文檔頻率(IDF)和TF-IDF如下:

從上表可見,"蜜蜂"的TF-IDF值最高,"養殖"其次,"中國"最低。(如果還計算"的"字的TF-IDF,那將是一個極其接近0的值。)所以,如果只選擇一個詞,"蜜蜂"就是這篇文章的關鍵詞。

除了自動提取關鍵詞,TF-IDF算法還可以用於許多別的地方。比如,信息檢索時,對於每個文檔,都可以分別計算一組搜索詞("中國"、"蜜蜂"、"養殖")的TF-IDF,將它們相加,就可以得到整個文檔的TF-IDF。這個值最高的文檔就是與搜索詞最相關的文檔。

TF-IDF算法的優點是簡單快速,結果比較符合實際情況。缺點是,單純以"詞頻"衡量一個詞的重要性,不夠全面,有時重要的詞可能出現次數並不多。而且,這種算法無法體現詞的位置信息,出現位置靠前的詞與出現位置靠后的詞,都被視為重要性相同,這是不正確的。(一種解決方法是,對全文的第一段和每一段的第一句話,給予較大的權重。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM