TF IDF演算法詳解

2021-10-02 22:28:52 字數 1131 閱讀 1047

最近在做一些nlp的研究,由於也是第一次做這個東西,其實還是發現很多有意思的東西。

首先我們來了解一下什麼是tf-idf?

其實這個是兩個詞的組合,可以拆分為tf和idf。

tf(term frequency,縮寫為tf)也就是詞頻啦,即乙個詞在文**現的次數,統計出來就是詞頻tf,顯而易見,乙個詞在文章**現很多次,那麼這個詞肯定有著很大的作用,但是我們自己實踐的話,肯定會看到你統計出來的tf 大都是一些這樣的詞:『的』,『是』這樣的詞,這樣的詞顯然對我們的分析和統計沒有什麼幫助,反而有的時候會干擾我們的統計,當然我們需要把這些沒有用的詞給去掉,現在有很多可以去除這些詞的方法,比如使用一些停用詞的語料庫等。

用統計學語言表達,就是在詞頻的基礎上,要對每個詞分配乙個"重要性"權重。最常見的詞("的"、"是"、"在")給予最小的權重,較常見的詞("中國")給予較小的權重,較少見的詞("蜜蜂"、"養殖")給予較大的權重。這個權重叫做"逆文件頻率"(inverse document frequency,縮寫為idf),它的大小與乙個詞的常見程度成反比。

給出具體的公式:

1.計算詞頻tf

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

或者2.計算逆文件頻率idf

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

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

3.計算tf-idf

給個例子:例子來自

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

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

TF IDF及其演算法

概念 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會...

TF IDF及其演算法

概念 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會...

TF IDF及其演算法

tf idf及其演算法 概念 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的...