TF-IDF 演算法

衡量字詞在一份文本內的重要程度之演算法

Posted by Young on 2022-11-15
Estimated Reading Time 5 Minutes
Words 1.4k In Total
Viewed Times

什麼是 TF-IDF?

tf-idf_ex1
開始之前有幾個關鍵字可以稍微記住,之後會很常提到,加權、逆頻率加權、逆向檔案頻率、詞頻、文本向量

TF-IDF(Term Frequency-Inverse Document Frequency)是一種文本特徵提取演算法,用於評估一個字詞在文檔集合中的重要性。

  • 「字詞頻率(Term Frequency,TF)」是指一個字詞在一篇文檔中的出現頻率。
  • 「逆文檔頻率(Inverse Document Frequency,IDF)」則是指一個字詞在文檔集合中的罕見程度。

根據這兩個指標,TF-IDF 演算法將字詞在文檔中的重要性定義為:$TF \times IDF$ 。這樣,一個字詞在一篇文檔中頻繁出現,但在整個文檔集合中罕見的字詞,其 TF-IDF 值將會較高。

TF-IDF 演算法常用於文本分類、關鍵字提取、搜尋引擎優化等領域,因為它能夠有效的捕捉文本的主題和結構信息。
簡而言之,TF-IDF 就是個能快速找出文章大意的公式

如何計算 TF-IDF?

計算一個字詞的 TF-IDF 值首先我們需要分別計算其 Term Frequency 和 Inverse Document Frequency。
Term Frequency (TF) 計算公式如下:

$$
tf_{i,j} = \frac{n_{i,j}}{\sum_{k}n_{k,j}}
$$

即為一個字詞在一篇文檔中的出現次數,除以該文檔中的總字詞數。
Inverse Document Frequency (IDF) 計算公式如下:

$$
idf_i = \log \frac{N}{df_i}
$$

即為以自然對數為底的文檔集合的總數,除以包含該字詞的文檔數。

最後,將兩者相乘得到字詞的 TF-IDF 值:

$$
tfidf_{i,j} = tf_{i,j} \times idf_i
$$

tfidf
這個值反映了該字詞在該文檔中的重要性,以及該字詞在整個文檔集合中的罕見程度。通常,TF-IDF 值越高,該字詞就越重要。
在文本分析中,我們可以通過對每篇文檔計算出它們所有字詞的 TF-IDF 值,再根據這些值對文檔進行排序、分類等操作。這樣可以捕捉出文檔的主題和結構信息,提高文本分析的準確性。

TF-IDF 的應用

  • 搜尋引擎優化 (SEO): 通過計算網頁的內容和關鍵字的 TF-IDF 值,搜索引擎可以確定網頁的相關性並給出更好的搜索結果。
  • 文本分類: 利用 TF-IDF 值可以確定文本的主題,通過分類將文本分成不同的類別,如垃圾郵件過濾、情感分析等。
  • 文檔相似度比較: 可以使用 TF-IDF 值計算文檔的相似度,以確定文檔是否重覆或是否屬於同一個類別。
  • 聚類分析: 通過計算每篇文檔的 TF-IDF 值,可以將文檔聚類在一起,以確定它們的相似性和差異。

TF-IDF 與其他文本特徵提取方法的區別

Bag of Words 是一種常見的文本特徵提取方法,通過統計每個單詞在文本中出現的頻率來構建一個單詞袋,從而將文本轉換為數字向量。然而,Bag of Words 方法忽略了單詞的語義和上下文信息,因此可能不夠準確。

N-Grams 是一種更加覆雜的文本特征提取方法,通過提取文本中連續的 n 個單詞(稱為 n-grams),並統計它們在文本中出現的頻率,來構建一個單詞袋。N-Grams 方法與 Bag of Words 相比,更加關注單詞之間的相對順序和上下文信息,因此可能更加準確。

相比之下,TF-IDF 方法在考慮單詞的頻率的同時,還考慮了單詞的逆文檔頻率,即該單詞在整個文檔集合中出現的頻率。這意味著,在整個文檔集合中出現頻率較高的單詞(如"the"、"a"等)具有較低的 TF-IDF 值,而該文檔中特有的單詞具有較高的 TF-IDF 值。因此,TF-IDF 方法可以在考慮單詞頻率的同時,更準確地識別出該文檔中關鍵的單詞。因此,TF-IDF 方法可以在搜索引擎優化、文本分類、關鍵字提取等方面具有更高的準確性和效率。

總的來說,TF-IDF 方法的優勢在於考慮了單詞的頻率和逆文檔頻率,從而更準確地識別出文本中的關鍵詞。這使得 TF-IDF 方法在搜索引擎優化、文本分類、關鍵字提取等方面具有很高的實際價值。

TF-IDF 的限制和改進

TF-IDF 的一個限制是停用詞問題。停用詞是文本中出現頻率很高但對文本內容沒有實際意義的單詞,如 “is”,“and” 等。由於這些單詞在每篇文檔中出現的頻率都很高,因此會影響 TF-IDF 值的準確性。

為了解決這個問題,可以使用去停用詞的方法,即在計算 TF-IDF 值時將停用詞剔除。另一種方法是使用其他文本特征提取方法,如 BM25 算法。

BM25 算法是一種改進的文本檢索算法,它在 TF-IDF 算法的基礎上進行了改進。它考慮了文檔長度、單詞頻率和逆文檔頻率等多種因素,從而更準確地識別出關鍵詞。在搜索引擎優化、文本分類、關鍵字提取等方面,BM25 算法的性能通常比 TF-IDF 算法更優秀。


若您覺得這篇文章對您有幫助,歡迎分享出去讓更多人看到⊂◉‿◉つ~


留言版