TF-IDF算法

http://www.ruanyifeng.com/blog/2013/03/tf-idf.html

假定現(xiàn)在有一篇長(zhǎng)文《中國(guó)的蜜蜂養(yǎng)殖》,我們準(zhǔn)備用計(jì)算機(jī)提取它的關(guān)鍵詞趾痘。

一個(gè)容易想到的思路帽撑,就是找到出現(xiàn)次數(shù)最多的詞离咐。如果某個(gè)詞很重要浑吟,它應(yīng)該在這篇文章中多次出現(xiàn)旱幼。于是查描,我們進(jìn)行"詞頻"(Term Frequency,縮寫(xiě)為T(mén)F)統(tǒng)計(jì)柏卤。

結(jié)果你肯定猜到了冬三,出現(xiàn)次數(shù)最多的詞是----"的"、"是"缘缚、"在"----這一類(lèi)最常用的詞勾笆。它們叫做"停用詞"(stop words),表示對(duì)找到結(jié)果毫無(wú)幫助桥滨、必須過(guò)濾掉的詞窝爪。

假設(shè)我們把它們都過(guò)濾掉了,只考慮剩下的有實(shí)際意義的詞齐媒。這樣又會(huì)遇到了另一個(gè)問(wèn)題蒲每,我們可能發(fā)現(xiàn)"中國(guó)"、"蜜蜂"喻括、"養(yǎng)殖"這三個(gè)詞的出現(xiàn)次數(shù)一樣多邀杏。這是不是意味著,作為關(guān)鍵詞唬血,它們的重要性是一樣的望蜡?

顯然不是這樣。因?yàn)?中國(guó)"是很常見(jiàn)的詞拷恨,相對(duì)而言泣特,"蜜蜂"和"養(yǎng)殖"不那么常見(jiàn)。如果這三個(gè)詞在一篇文章的出現(xiàn)次數(shù)一樣多挑随,有理由認(rèn)為状您,"蜜蜂"和"養(yǎng)殖"的重要程度要大于"中國(guó)"勒叠,也就是說(shuō),在關(guān)鍵詞排序上面膏孟,"蜜蜂"和"養(yǎng)殖"應(yīng)該排在"中國(guó)"的前面眯分。
所以,我們需要一個(gè)重要性調(diào)整系數(shù)柒桑,衡量一個(gè)詞是不是常見(jiàn)詞弊决。如果某個(gè)詞比較少見(jiàn),但是它在這篇文章中多次出現(xiàn)魁淳,那么它很可能就反映了這篇文章的特性飘诗,正是我們所需要的關(guān)鍵詞。

用統(tǒng)計(jì)學(xué)語(yǔ)言表達(dá)界逛,就是在詞頻的基礎(chǔ)上昆稿,要對(duì)每個(gè)詞分配一個(gè)"重要性"權(quán)重。最常見(jiàn)的詞("的"息拜、"是"溉潭、"在")給予最小的權(quán)重,較常見(jiàn)的詞("中國(guó)")給予較小的權(quán)重少欺,較少見(jiàn)的詞("蜜蜂"喳瓣、"養(yǎng)殖")給予較大的權(quán)重。這個(gè)權(quán)重叫做"逆文檔頻率"(Inverse Document Frequency赞别,縮寫(xiě)為IDF)畏陕,它的大小與一個(gè)詞的常見(jiàn)程度成反比。

知道了"詞頻"(TF)和"逆文檔頻率"(IDF)以后仿滔,將這兩個(gè)值相乘蹭秋,就得到了一個(gè)詞的TF-IDF值。某個(gè)詞對(duì)文章的重要性越高堤撵,它的TF-IDF值就越大仁讨。所以,排在最前面的幾個(gè)詞实昨,就是這篇文章的關(guān)鍵詞洞豁。

第一步,計(jì)算詞頻

或者

第二步荒给,計(jì)算逆文檔頻率

這時(shí)丈挟,需要一個(gè)語(yǔ)料庫(kù)(corpus),用來(lái)模擬語(yǔ)言的使用環(huán)境志电。



如果一個(gè)詞越常見(jiàn)曙咽,那么分母就越大,逆文檔頻率就越小越接近0挑辆。分母之所以要加1例朱,是為了避免分母為0(即所有文檔都不包含該詞)孝情。log表示對(duì)得到的值取對(duì)數(shù)。

第三步洒嗤,計(jì)算TF-IDF


可以看到箫荡,TF-IDF與一個(gè)詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個(gè)語(yǔ)言中的出現(xiàn)次數(shù)成反比渔隶。所以羔挡,自動(dòng)提取關(guān)鍵詞的算法就很清楚了,就是計(jì)算出文檔的每個(gè)詞的TF-IDF值间唉,然后按降序排列绞灼,取排在最前面的幾個(gè)詞。

還是以《中國(guó)的蜜蜂養(yǎng)殖》為例呈野,假定該文長(zhǎng)度為1000個(gè)詞低矮,"中國(guó)"、"蜜蜂"际跪、"養(yǎng)殖"各出現(xiàn)20次商佛,則這三個(gè)詞的"詞頻"(TF)都為0.02喉钢。然后姆打,搜索Google發(fā)現(xiàn),包含"的"字的網(wǎng)頁(yè)共有250億張肠虽,假定這就是中文網(wǎng)頁(yè)總數(shù)幔戏。包含"中國(guó)"的網(wǎng)頁(yè)共有62.3億張,包含"蜜蜂"的網(wǎng)頁(yè)為0.484億張税课,包含"養(yǎng)殖"的網(wǎng)頁(yè)為0.973億張闲延。則它們的逆文檔頻率(IDF)和TF-IDF如下:



從上表可見(jiàn),"蜜蜂"的TF-IDF值最高韩玩,"養(yǎng)殖"其次垒玲,"中國(guó)"最低。(如果還計(jì)算"的"字的TF-IDF找颓,那將是一個(gè)極其接近0的值合愈。)所以,如果只選擇一個(gè)詞击狮,"蜜蜂"就是這篇文章的關(guān)鍵詞佛析。
除了自動(dòng)提取關(guān)鍵詞,TF-IDF算法還可以用于許多別的地方彪蓬。比如寸莫,信息檢索時(shí),對(duì)于每個(gè)文檔档冬,都可以分別計(jì)算一組搜索詞("中國(guó)"膘茎、"蜜蜂"桃纯、"養(yǎng)殖")的TF-IDF,將它們相加辽狈,就可以得到整個(gè)文檔的TF-IDF慈参。這個(gè)值最高的文檔就是與搜索詞最相關(guān)的文檔。
TF-IDF算法的優(yōu)點(diǎn)是簡(jiǎn)單快速刮萌,結(jié)果比較符合實(shí)際情況驮配。缺點(diǎn)是,單純以"詞頻"衡量一個(gè)詞的重要性着茸,不夠全面壮锻,有時(shí)重要的詞可能出現(xiàn)次數(shù)并不多。而且涮阔,這種算法無(wú)法體現(xiàn)詞的位置信息猜绣,出現(xiàn)位置靠前的詞與出現(xiàn)位置靠后的詞,都被視為重要性相同敬特,這是不正確的掰邢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伟阔,隨后出現(xiàn)的幾起案子辣之,更是在濱河造成了極大的恐慌,老刑警劉巖皱炉,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怀估,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡合搅,警方通過(guò)查閱死者的電腦和手機(jī)多搀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)灾部,“玉大人康铭,你說(shuō)我怎么就攤上這事《乃瑁” “怎么了从藤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)春弥。 經(jīng)常有香客問(wèn)我呛哟,道長(zhǎng),這世上最難降的妖魔是什么匿沛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任扫责,我火速辦了婚禮,結(jié)果婚禮上逃呼,老公的妹妹穿的比我還像新娘鳖孤。我一直安慰自己者娱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布苏揣。 她就那樣靜靜地躺著黄鳍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪平匈。 梳的紋絲不亂的頭發(fā)上框沟,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音增炭,去河邊找鬼忍燥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛隙姿,可吹牛的內(nèi)容都是我干的梅垄。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼输玷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼队丝!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起欲鹏,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤机久,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后貌虾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吞加,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡裙犹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年尽狠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叶圃。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袄膏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掺冠,到底是詐尸還是另有隱情沉馆,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布德崭,位于F島的核電站斥黑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏眉厨。R本人自食惡果不足惜锌奴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憾股。 院中可真熱鬧鹿蜀,春花似錦箕慧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至往枣,卻和暖如春伐庭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背分冈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工似忧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丈秩。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓盯捌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蘑秽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子饺著,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 用TF-IDF算法提取關(guān)鍵詞 假設(shè)現(xiàn)在有一篇很長(zhǎng)的文章,要從中提取出它的關(guān)鍵字肠牲,完全不人工干預(yù)幼衰,那么怎么做到呢?又...
    Shira0905閱讀 3,653評(píng)論 0 5
  • 想要提取一篇文章的 關(guān)鍵詞 缀雳,最直接的思維方式就是出現(xiàn)的越頻繁的詞就意味著越重要渡嚣,但停用詞需要除外。一篇文章中出現(xiàn)...
    南極有條沙丁魚(yú)閱讀 3,347評(píng)論 0 5
  • TF-IDF原理簡(jiǎn)介 TF-IDF計(jì)算公式如下: 開(kāi)發(fā)環(huán)境 系統(tǒng): macOS Sierra肥印; 開(kāi)發(fā)軟件: PyC...
    _hahaha閱讀 4,976評(píng)論 2 0
  • 這次課程识椰,是一次往期知識(shí)的回顧,也是青少年課程的示范課深碱。 麗芳老師給小朋友上課的時(shí)候語(yǔ)氣的變化腹鹉,知識(shí)講授方式的變化...
    SukieGUO閱讀 169評(píng)論 1 2
  • 今日勵(lì)語(yǔ): 當(dāng)個(gè)人的才華還撐不起自己的野心時(shí),就應(yīng)該靜下心來(lái)學(xué)習(xí)敷硅;當(dāng)個(gè)人的能力還駕馭不了你自己的目標(biāo)時(shí)功咒,就應(yīng)該沉下...
    七彩熏衣草閱讀 385評(píng)論 0 0