用TF-IDF算法提取關鍵詞

用TF-IDF算法提取關鍵詞

假設現在有一篇很長的文章,要從中提取出它的關鍵字,完全不人工干預,那么怎么做到呢?又有如如何判斷兩篇文章的相似性的這類問題,這是在數據挖掘,信息檢索中經常遇到的問題,然而TF-IDF算法就可以解決。這兩天因為要用到這個算法,就先學習了解一下。

TF-IDF概述

在接觸一個新算法時,首先當然是先去了解這個算法的本質,在此,我們先引用百度百科上的解釋:TF-IDF(term frequency–inverse document frequency)是一種用于信息檢索與數據挖掘的常用加權技術。用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,并且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類,也就可以作為上文中所提到的關鍵字。

這樣我們大概就對這個算法有了一些了解,至少知道了它是通過加權來判定字詞對于文章的重要性的,那么算法是如何實現的呢?下來我們一步步進行學習:

詞頻(TF)和逆文檔頻率IDF

首先,就算法的命名說起,當然你會好奇這里的TF是什么,IDF是什么。現在回到之前我們提到的問題,要在一篇很長的文章中尋找關鍵字(詞),就一般的理解,如果一個詞對于文章而言很關鍵的話那出現的次數就比較多,于是我們就采用“詞頻”(Term Freqency)進行統計,這里的詞頻就是TF。

那么你肯定會說像“的”、“是”、“了”這類詞的出現次數應該是最多的了,它們叫做停用詞,對找到結果完全毫無幫助,是我們必須要過濾掉的詞,

假設我們現在過濾掉了所有的那些詞,那么又會遇到一個問題,假定我們現在要在一個關于聚類的文章中找尋關鍵字。我們可能發現“聚類”和“算法”的出現次數一樣多,那么它們的重要性就是一樣的么?答案當然是否定的,相對于“聚類”而言,“算法”更為常見,出現次數同樣多,我們就有理由認為“聚類”的重要程度要大于“算法”。也可以這樣理解,如果某個詞比較少見,但是它在這篇文章中多次出現,那它很可能就能反映本篇文章的特性,也就可以作為我們所要尋找的關鍵詞。

聯系到層次分析法這類算法的思想,可以賦予每個詞特定的權重,像那類最常見的詞賦予很小的權重,相應的較少見的詞賦予較大的權重,這個權重在這里叫做“逆文檔頻率”(Inverse Doucument Frequency,縮寫為IDF),它的大小與一個詞的常見程度成反比。而TF-IDF值就是將詞頻TF和逆文檔頻率IDF相乘,值越大,該詞對文章的重要性越高。

步驟

(1)計算詞頻

詞頻 = 某個詞在文章中出現的總次數

當然為了消除不同文章大小之間的差異,便于不同文章之間的比較,我們在此標準化詞頻:

詞頻 = 某個詞在文章中出現的總次數/文章的總詞數

或者:詞頻 = 某個詞在文章中出現的總次數/文章中出現次數最多的詞的個數

(2)計算逆文檔頻率

在此,首先需要一個語料庫來模擬語言的使用環境。

逆文檔頻率(IDF) = log(詞料庫的文檔總數/包含該詞的文檔數+1)

為了避免分母為0,所以在分母上加1.

(3)計算TF-IDF值

基于之前的分析了解,有:TF-IDF值 = TF * IDF。

在此有:TF-IDF值與該詞的出現頻率成正比,與在整個語料庫中的出現次數成反比,符合之前的分析。

(4)求出關鍵字

計算出文章中每個詞的TF-IDF值之后,進行排序,選取其中值最高的幾個作為關鍵字。

(5)計算文章的相似性

計算出每篇文章的關鍵詞,從中各選取相同個數的關鍵詞,合并成一個集合,計算每篇文章對于這個集合中的詞的詞頻,生成兩篇文章各自的詞頻向量,進而通過歐氏距離或余弦距離求出兩個向量的余弦相似度,值越大就表示越相似。

優缺點

1.優點是算法的容易理解,便于實現。

2.缺點:IDF的簡單結構并不能有效地反映單詞的重要程度和特征詞的分布情況,使其無法很好的完成對權值的調整功能,所以在一定程度上該算法的精度并不是很高。除此之外,算法也沒喲體現位置信息,對于出現在文章不同位置的詞語都是一視同仁的,而我們知道,在文章首尾的詞語勢必重要性要相對高點。據此,我們可以或許也可以將處于文章不同位置的詞語賦予不同的權重。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容