因為工作中需要用到計算詞語權重,進而作詞與選擇,思考了一下tf/idf。
首先還是簡單介紹一下tf/idf。
這個概念最開始用於資訊檢索。tf表示term frequency,通常是指詞頻;idf表示inversed document frequency,是文件頻率的倒數。計算方式如下:通常是對於一篇文件,統計某個詞出現的次數,並用文件中的總詞數作歸一化,計算出的tf在(0,1)之間。同時,統計這個詞在整個文件集合中出現在哪些文件當中,記錄下這些文件的個數,用總文件數做歸一化,作為df。直觀上,某個詞對於某個類別越重要,則他在這個類別的tf越高;對於df,如果df越大,表明他在各個文件中都有出現,那麼他對目標文件的重要性越低。總之,某個詞的重要程度與tf成正比,與df成反比,也就是與idf成正比。當然,idf計算之前還要取log值。這一點,在吳軍的《數學之美》中解釋,tf/idf的物理意義來自於資訊理論,是在某個特定情況下,是詞語分布與文件分布的kl距離。關於這個資訊理論的解釋,我在網上搜了好久,沒有見到簡潔的推導;自己想了想,也沒有太想明白。關於tf/idf的詳細介紹請參考維基百科。
tf/idf表徵了詞語和文件之間的關係,將它用於資訊檢索是很直觀的事情。不過,我遇到的問題不實資訊檢索。如果是文字分類,用tf/idf選擇某個類別的文字的特徵詞,如何?
與上面的問題相比,文字分類問題更複雜一些,因為除了詞語、文件這兩個原有的維度,又多了乙個文件類別的維度。在文字分類的特徵選擇過程中,計算tf/idf,首先要面臨的問題是,如何定義idf?即如何定義idf中的d,即「文件」這一概念。有不同種選擇。我們先老老實實地沿用資訊檢索中的概念,文件就是一篇文章。那麼接下來的問題是,在多大的範圍內計算df?對於某個類別,用tf/idf來選擇這個類別相關的特徵詞,tf的計算範圍當然是僅限於這個類別中了,即統計這個類別的文章裡面,特徵詞出現的次數。那df呢?可以是全域性統計,也可以是在這個類別當中統計。如果是後者,似乎感覺怪怪的——即便是df很低,那只能說這個詞在這個類別中出現的也不均勻,也不能說明它的重要啊。如果是全域性統計,也存在類似的問題,就是不論df是大是小,都和當前的類別無關。tf/idf本來就是計算詞語和文件的關係的,關類別鳥事?!
怎麼辦呢?
一種方法,很直觀,把傳統tf/idf中的「文件」的概念替換為「類別」的概念。df就表示當前特徵詞語在哪些類別中(而不是哪些文件中)出現了。tf自然是特徵詞在類別中出現的次數了。這樣,沿用傳統的公式,也就可以計算了。不過這樣也不見得就好。通常來講類別數目不多,特徵詞很容易就在所有類別中都出現過,這樣計算出來的idf值是0,詞語沒有任何區分能力。而這個詞明明是在當前類別中出現了很多次,在其他類別中雖然也出現了,但是出現的次數很少——總之一句話,這個詞對當前類別是有區分能力的。還有問題,就是某個詞語的df可能很大,不過這些df都是出現在同乙個類別當中,這時候這個詞語正式表徵這個類別的特徵詞,但是計算出來的tf/idf值可能很小,無法作為特徵詞被選中。
又怎麼辦呢?
問題的根源在於,傳統tf/idf是定義「詞語——文件」兩個維度的關係的,並且兩個維度中不同詞語和不同文件的資料都很多(統計起來也有區分力);而現在,擴充套件到了「詞語——文件——類別」三個維度關係,並且類別的數目遠小於其他兩個維度的數目。上網上找了一下,這個問題在學術界,尤其是文字分類任務中,也有被發現,解決方法是擴充tf/idf的計算方式。擴充的思路就是加入詞語和類別之間的分布資訊;擴充的手法就五花八門,有很複雜的。不過個人喜歡乙個簡單的擴充:
原始idf計算:
idf (term) = log ( n / n_term )
其中n是文件集合中文件的數目,n_term是包含詞語term的文件數目。
改進的idf計算:
idf (term) = log ( n * m / n_term )
其中m是當前類別中包含詞語term的文件數——這個要與最終計算的詞語對該類別的權重成正比。
就想到這裡了,寫下來,備忘;也不知道說明白問題沒有?!
思考 tf idf之於文字分類
因為工作中需要用到計算詞語權重,進而作詞與選擇,思考了一下tf idf。首先還是簡單介紹一下tf idf。這個概念最開始用於資訊檢索。tf表示term frequency,通常是指詞頻 idf表示inversed document frequency,是文件頻率的倒數。計算方式如下 通常是對於一篇文...
文字分類任務中tf idf的理解
維基百科給的定義式 tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。tf idf加權的各種形式常被搜尋引擎應用,作為檔案與使用者查詢之間相關程度的度量或評級。...
文字分析之TF IDF
1 定義 tf idf term frequency inverse document frequency 是一種用於資訊檢索與資訊探勘的常用加權技術。tf idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同...