自動外鏈工具 在線排版工具 搜索引擎提交入口 wordpress主題推薦 批量打開網址工具 【老域名購買】 思享SEO導航 【網站合作】

TF-IDF是什么算法(轉)

1560
文章目錄
  1. TF-IDF原理
  2. TF表達式
  3. IDF表達式
  4. 在向量空間模型里的應用
  5. TF-IDF的理論依據及不足
  6. 如何利用TF-IDF算法來提高網頁關鍵詞權重示例

TF-IDF(term frequency–inverse document frequency)是一種用于資訊檢索與資訊探勘的常用加權技術。TF-IDF是一種統計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。TF-IDF加權的各種形式常被搜尋引擎應用,作為文件與用戶查詢之間相關程度的度量或評級。除了TF-IDF以外,因特網上的搜尋引擎還會使用基于連結分析的評級方法,以確定文件在搜尋結果中出現的順序。

tf-idf

TF-IDF原理

TF-IDF實際上是:TF * IDF。主要思想是:如果某個詞或短語在一篇文章中出現的頻率高(即TF高),并且在其他文章中很少出現(即IDF高),則認為此詞或者短語具有很好的類別區分能力,適合用來分類。

TF(Term Frequency,詞頻)表示一個給定詞語t在一篇給定文檔d中出現的頻率。TF越高,則詞語t對文檔d來說越重要,TF越低,則詞語t對文檔d來說越不重要。那是否可以以TF作為文本相似度評價標準呢?答案是不行的,舉個例子,常用的中文詞語如“我”,“了”,“是”等,在給定的一篇中文文檔中出現的頻率是很高的,但這些中文詞幾乎在每篇文檔中都具有非常高的詞頻,如果以TF作為文本相似度評價標準,那么幾乎每篇文檔都能被命中。

IDF(Inverse Document Frequency,逆向文件頻率)的主要思想是:如果包含詞語t的文檔越少,則IDF越大,說明詞語t在整個文檔集層面上具有很好的類別區分能力。IDF說明了什么問題呢?還是舉個例子,常用的中文詞語如“我”,“了”,“是”等在每篇文檔中幾乎具有非常高的詞頻,那么對于整個文檔集而言,這些詞都是不重要的。對于整個文檔集而言,評價詞語重要性的標準就是IDF。

通俗理解TF-IDF就是:TF刻畫了詞語t對某篇文檔的重要性,IDF刻畫了詞語t對整個文檔集的重要性。

TF表達式

對于在某一文檔 dj 里的詞語 ti 來說,ti 的詞頻可表示為:

ti 的詞頻

其中 ni,j 是詞語 ti 在文檔 dj 中的出現次數,分母則是在文件 dj 中所有詞語的出現次數之和。

IDF表達式

IDF是一個詞語普遍重要性的度量,即一個詞語對于整個語料庫的重要性的度量。某一特定詞語的IDF,可以由總文件數除以包含該詞語的文件數,再將得到的商取對數得到:

IDF表達式

其中 |D| 是語料庫中所有文檔總數,分母是包含詞語 ti 的所有文檔數。

在向量空間模型里的應用

TF-IDF權重計算方法經常會和余弦相似性(cosine similarity)一同使用于向量空間模型中,用以判斷兩份文件之間的相似性。

TF-IDF的理論依據及不足

TFIDF算法是建立在這樣一個假設之上的:對區別文檔最有意義的詞語應該是那些在文檔中出現頻率高,而在整個文檔集合的其他文檔中出現頻率少的詞語,所以如果特征空間坐標系取TF詞頻作為測度,就可以體現同類文本的特點。另外考慮到單詞區別不同類別的能力,TF-IDF法認為一個單詞出現的文本頻數越小,它區別不同類別文本的能力就越大。因此引入了逆文本頻度IDF的概念,以TF和IDF的乘積作為特征空間坐標系的取值測度,并用它完成對權值TF的調整,調整權值的目的在于突出重要單詞,抑制次要單詞。但是在本質上IDF是一種試圖抑制噪聲的加權,并且單純地認為文本頻率小的單詞就越重要,文本頻率大的單詞就越無用,顯然這并不是完全正確的。IDF的簡單結構并不能有效地反映單詞的重要程度和特征詞的分布情況,使其無法很好地完成對權值調整的功能,所以TF-IDF法的精度并不是很高。

此外,在TFIDF算法中并沒有體現出單詞的位置信息,對于Web文檔而言,權重的計算方法應該體現出HTML的結構特征。特征詞在不同的標記符中對文章內容的反映程度不同,其權重的計算方法也應不同。因此應該對于處于網頁不同位置的特征詞分別賦予不同的系數,然后乘以特征詞的詞頻,以提高文本表示的效果。

如何利用TF-IDF算法來提高網頁關鍵詞權重示例

一:有很多不同的數學公式可以用來計算TF-IDF。這邊的例子以上述的數學公式來計算。詞頻 (TF) 是一詞語出現的次數除以該文件的總詞語數。假如一篇文件的總詞語數是100個,而詞語“母牛”出現了3次,那么“母牛”一詞在該文件中的詞頻就是3/100=0.03。一個計算文件頻率 (DF) 的方法是測定有多少份文件出現過“母牛”一詞,然后除以文件集里包含的文件總數。所以,如果“母牛”一詞在1,000份文件出現過,而文件總數是10,000,000份的話,其逆向文件頻率就是 log(10,000,000 / 1,000)=4。最后的TF-IDF的分數為0.03 * 4=0.12。

二:根據關鍵字k1,k2,k3進行搜索結果的相關性就變成TF1*IDF1 + TF2*IDF2 + TF3*IDF3。比如document1的term總量為1000,k1,k2,k3在document1出現的次數是100,200,50。包含了 k1, k2, k3的docuement總量分別是 1000, 10000,5000。document set的總量為10000。 TF1 = 100/1000 = 0.1 TF2 = 200/1000 = 0.2 TF3 = 50/1000 = 0.05 IDF1 = log(10000/1000) = log(10) = 2.3 IDF2 = log(10000/100000) = log(1) = 0; IDF3 = log(10000/5000) = log(2) = 0.69 這樣關鍵字k1,k2,k3與docuement1的相關性= 0.1*2.3 + 0.2*0 + 0.05*0.69 = 0.2645 其中k1比k3的比重在document1要大,k2的比重是0.

三:在某個一共有一千詞的網頁中“原子能”、“的”和“應用”分別出現了 2 次、35 次 和 5 次,那么它們的詞頻就分別是 0.002、0.035 和 0.005。 我們將這三個數相加,其和 0.042 就是相應網頁和查詢“原子能的應用” 相關性的一個簡單的度量。概括地講,如果一個查詢包含關鍵詞 w1,w2,...,wN, 它們在一篇特定網頁中的詞頻分別是: TF1, TF2, ..., TFN。 (TF: term frequency)。 那么,這個查詢和該網頁的相關性就是:TF1 + TF2 + ... + TFN。

讀者可能已經發現了又一個漏洞。在上面的例子中,詞“的”站了總詞頻的 80% 以上,而它對確定網頁的主題幾乎沒有用。我們稱這種詞叫“應刪除詞”(Stopwords),也就是說在度量相關性是不應考慮它們的頻率。在漢語中,應刪除詞還有“是”、“和”、“中”、“地”、“得”等等幾十個。忽略這些應刪除詞后,上述網頁的相似度就變成了0.007,其中“原子能”貢獻了 0.002,“應用”貢獻了 0.005。細心的讀者可能還會發現另一個小的漏洞。在漢語中,“應用”是個很通用的詞,而“原子能”是個很專業的詞,后者在相關性排名中比前者重要。因此我們需要給漢語中的每一個詞給一個權重,這個權重的設定必須滿足下面兩個條件:

1. 一個詞預測主題能力越強,權重就越大,反之,權重就越小。我們在網頁中看到“原子能”這個詞,或多或少地能了解網頁的主題。我們看到“應用”一次,對主題基本上還是一無所知。因此,“原子能“的權重就應該比應用大。

2. 應刪除詞的權重應該是零。

我們很容易發現,如果一個關鍵詞只在很少的網頁中出現,我們通過它就容易鎖定搜索目標,它的權重也就應該大。反之如果一個詞在大量網頁中出現,我們看到它仍然不很清楚要找什么內容,因此它應該小。概括地講,假定一個關鍵詞 w 在 Dw 個網頁中出現過,那么 Dw 越大,w的權重越小,反之亦然。在信息檢索中,使用最多的權重是“逆文本頻率指數” (Inverse document frequency 縮寫為IDF),它的公式為log(D/Dw)其中D是全部網頁數。比如,我們假定中文網頁數是D=10億,應刪除詞“的”在所有的網頁中都出現,即Dw=10億,那么它的IDF=log(10億/10億)= log (1) = 0。假如專用詞“原子能”在兩百萬個網頁中出現,即Dw=200萬,則它的權重IDF=log(500) =6.2。又假定通用詞“應用”,出現在五億個網頁中,它的權重IDF = log(2)則只有 0.7。也就只說,在網頁中找到一個“原子能”的比配相當于找到九個“應用”的匹配。利用 IDF,上述相關性計算個公式就由詞頻的簡單求和變成了加權求和,即 TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN。在上面的例子中,該網頁和“原子能的應用”的相關性為 0.0161,其中“原子能”貢獻了 0.0126,而“應用”只貢獻了0.0035。這個比例和我們的直覺比較一致了。

 

來源:本文由思享SEO博客原創撰寫,歡迎分享本文,轉載請保留出處和鏈接!
seo培訓評論廣告

搶沙發

昵稱*

郵箱*

網址

七乐彩选号技巧