TF-IDF 算法

問題分析

有一篇很長的文章梳星,用計算機提取它的關(guān)鍵詞(Automatic Keyphrase extraction),完全不加以人工干預滚朵,請問怎樣才能正確做到冤灾?

智能問答系統(tǒng)是將積累的無序語料信息,進行有序和科學的整理辕近,并建立基于知識的分類模型韵吨;這些分類模型可以指導新增加的語料咨詢和服務(wù)信息,節(jié)約人力資源移宅,提高信息處理的自動性归粉,降低網(wǎng)站運行成本÷┓澹基于對網(wǎng)站多年積累的關(guān)于政府和企業(yè)的基本情況常見問題及其解答糠悼,整理為規(guī)范的問答庫形式,以支撐各種形式問題的智能問答浅乔。方便了用戶倔喂,提高了辦事效率,提升了企業(yè)形象靖苇。

TF-IDF 算法

詞頻

如何衡量詞語的重要性

  • 如果某個詞很重要席噩,它應該在這篇文章中多次出現(xiàn),于是顾复,我們可以進行詞頻(Term Frequencty班挖,TF)統(tǒng)計
  • 停用詞:毫無幫助、必須過濾掉的詞芯砸。比如“的”萧芙、“是”、“在”等假丧;

詞頻相同的詞語一樣重要嗎双揪?

"智能問答"、"企業(yè)"包帚、"問答庫"這三個詞的出現(xiàn)次數(shù)一樣多渔期。這是不是意味著,作為關(guān)鍵詞,它們的重要性是一樣的疯趟?

“企業(yè)”是很常見的詞拘哨,相對而言“智能問答”和“問答庫”不那么常見。如果這三個詞在一篇文章的出現(xiàn)次數(shù)一樣多信峻,我們有理由可以認為倦青,“智能問答”和“問答庫”的重要程度要大于“企業(yè)”,也就是說盹舞,在關(guān)鍵詞排序方面产镐,“智能問答“和”問答庫“應該排在”企業(yè)“前面。

逆文檔頻率

需要一個重要性調(diào)整系數(shù)踢步,衡量一個詞是不是常見詞癣亚。如果某個詞比較少見,但是它在這篇文章中多次出現(xiàn)获印,那么它很可能就反映了這篇文章的特性述雾,正是我們所需要的關(guān)鍵詞。

用統(tǒng)計學語言表達蓬豁,就是在詞頻的基礎(chǔ)上绰咽,要對每個詞分配一個"重要性"權(quán)重。

  • 最常見的詞("的"地粪、"是"取募、"在")給予最小的權(quán)重
  • 較常見的詞("中國")給予較小的權(quán)重,
  • 較少見的詞("蜜蜂"蟆技、"養(yǎng)殖")給予較大的權(quán)重玩敏。

這個權(quán)重叫做"逆文檔頻率"(Inverse Document Frequency,縮寫為IDF)质礼,它的大小與一個詞的常見程度成反比旺聚。

TF-IDF

知道了"詞頻"(TF)和"逆文檔頻率"(IDF)以后,將這兩個值相乘眶蕉,就得到了一個詞的TF-IDF值砰粹。某個詞對文章的重要性越高,它的TF-IDF值就越大造挽。所以碱璃,排在最前面的幾個詞,就是這篇文章的關(guān)鍵詞饭入。

算法細節(jié)

1嵌器、計算詞頻

  • 詞頻(TF)=某個詞在文章中出現(xiàn)的次數(shù)
  • 詞頻(TF)= 某個詞在文章中出現(xiàn)的次數(shù)/文章的總詞數(shù) (考慮到文章有長短之分,為了便于不同文章的比較谐丢,進行"詞頻"標準化爽航。)
  • 詞頻(TF)= 某個詞在文章中出現(xiàn)的次數(shù)/該文出現(xiàn)次數(shù)最多的詞出現(xiàn)的次數(shù)

2蚓让、計算逆文檔頻率

需要一個語料庫(corpus),用來模擬語言的使用環(huán)境讥珍。
逆文檔頻率(IDF)= log(語料庫的文檔總數(shù)/包含該詞的文檔數(shù)+1)
如果一個詞越常見历极,那么分母就越大,逆文檔頻率就越小越接近0串述。分母之所以要加1执解,是為了避免分母為0(即所有文檔都不包含該詞)寞肖。log表示對得到的值取對數(shù)纲酗。

3、計算 TF-IDF

TF-IDF=詞頻(TF)*逆文檔頻率(IDF)

TF-IDF與一個詞在文檔中的出現(xiàn)次數(shù)成正比新蟆,與該詞在整個語言中的出現(xiàn)次數(shù)成反比觅赊。所以,自動提取關(guān)鍵詞的算法就很清楚了琼稻,就是計算出文檔的每個詞的TF-IDF值吮螺,然后按降序排列,取排在最前面的幾個詞帕翻。

自動提取關(guān)鍵詞鸠补,TF-IDF算法還可以用于許多別的地方。比如嘀掸,信息檢索時紫岩,對于每個文檔,都可以分別計算一組搜索詞("中國"睬塌、"蜜蜂"泉蝌、"養(yǎng)殖")的TF-IDF,將它們相加揩晴,就可以得到整個文檔的TF-IDF勋陪。這個值最高的文檔就是與搜索詞最相關(guān)的文檔。

TF-IDF 優(yōu)缺點

  • TF-IDF算法的優(yōu)點是簡單快速硫兰,結(jié)果比較符合實際情況诅愚。
  • 缺點是,單純以"詞頻"衡量一個詞的重要性劫映,不夠全面违孝,有時重要的詞可能出現(xiàn)次數(shù)并不多。而且苏研,這種算法無法體現(xiàn)詞的位置信息等浊,出現(xiàn)位置靠前的詞與出現(xiàn)位置靠后的詞,都被視為重要性相同摹蘑,這是不正確的筹燕。(一種解決方法是,對全文的第一段和每一段的第一句話,給予較大的權(quán)重撒踪。)

找出相似文章

希望找到與原文章相似的其他文章过咬,為了找出相似的文章,需要用到"余弦相似性"(cosine similiarity)制妄。下面掸绞,我舉一個例子來說明,什么是"余弦相似性"耕捞。

案列分析

句子A:我喜歡吃蘋果衔掸,不喜歡吃香蕉
句子B:我不喜歡吃蘋果,也不喜歡吃香蕉
請問怎樣才能計算上面兩句話的相似程度俺抽?

基本思路是:如果這兩句話的用詞越相似敞映,它們的內(nèi)容就應該越相似。因此磷斧,可以從詞頻入手振愿,計算它們的相似程度。

1弛饭、分詞

句子A:我/喜歡/吃/蘋果冕末,不/喜歡/吃/香蕉
句子B:我/不/喜歡/吃/蘋果,也/不/喜歡/吃/香蕉

2侣颂、列出所有的詞

我档桃,喜歡,吃横蜒,蘋果胳蛮,香蕉,不丛晌,也仅炊。

3、計算詞頻

句子A: 我 1澎蛛,喜歡 2抚垄,吃 2,蘋果 1谋逻,香蕉 1呆馁,不 1,也 0
句子B:我 1毁兆,喜歡 2浙滤,吃 2,蘋果 1气堕,香蕉 1纺腊,不 2畔咧,也 1

4、寫出詞頻向量

句子A:[1,2,2,1,1,1,0]
句子B:[1,2,2,1,1,2,1]

問題就變成了如何計算這兩個向量的相似程度揖膜。
我們可以把它們想象成空間中的兩條線段誓沸,都是從原點([0, 0, ...])出發(fā),指向不同的方向壹粟。兩條線段之間形成一個夾角拜隧,如果夾角為0度,意味著方向相同趁仙、線段重合洪添;如果夾角為90度,意味著形成直角幸撕,方向完全不相似薇组;如果夾角為180度,意味著方向正好相反坐儿。因此,我們可以通過夾角的大小宋光,來判斷向量的相似程度貌矿。夾角越小,就代表越相似罪佳。
以二維空間為例逛漫,上圖的a和b是兩個向量,我們要計算它們的夾角θ赘艳。余弦定理告訴我們酌毡,可以用下面的公式求得:

coso=a_2+b_2-c_2/2ab
假定a向量是[x1, y1],b向量是[x2, y2]蕾管,那么可以將余弦定理改寫成下面的形式:

coso=x_1x_2+y_1+y_2/sqrt()
余弦值越接近1枷踏,就表明夾角越接近0度,也就是兩個向量越相似掰曾,這就叫"余弦相似性"旭蠕。所以,上面的句子A和句子B是很相似的旷坦,事實上它們的夾角大約為20.3度掏熬。

由此,我們就得到了"找出相似文章"的一種算法:

  • 使用TF-IDF算法秒梅,找出兩篇文章的關(guān)鍵詞旗芬;
  • 每篇文章各取出若干個關(guān)鍵詞(比如20個),合并成一個集合捆蜀,計算每篇文章對于這個集合中的詞的詞頻(為了避免文章長度的差異疮丛,可以使用相對詞頻)辆琅;
  • 生成兩篇文章各自的詞頻向量;
  • 計算兩個向量的余弦相似度这刷,值越大就表示越相似婉烟。

自動摘要

如果能從3000字的文章,提煉出150字的摘要暇屋,就可以為讀者節(jié)省大量閱讀時間似袁。由人完成的摘要叫"人工摘要",由機器完成的就叫"自動摘要"咐刨。

文章的信息都包含在句子中昙衅,有些句子包含的信息多,有些句子包含的信息少定鸟。"自動摘要"就是要找出那些包含信息最多的句子而涉。

句子的信息量用"關(guān)鍵詞"來衡量。如果包含的關(guān)鍵詞越多联予,就說明這個句子越重要啼县。Luhn提出用"簇"(cluster)表示關(guān)鍵詞的聚集。所謂"簇"就是包含多個關(guān)鍵詞的句子片段沸久。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末季眷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子卷胯,更是在濱河造成了極大的恐慌子刮,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窑睁,死亡現(xiàn)場離奇詭異挺峡,居然都是意外死亡,警方通過查閱死者的電腦和手機担钮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門橱赠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人裳朋,你說我怎么就攤上這事病线。” “怎么了鲤嫡?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵送挑,是天一觀的道長。 經(jīng)常有香客問我暖眼,道長惕耕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任诫肠,我火速辦了婚禮司澎,結(jié)果婚禮上欺缘,老公的妹妹穿的比我還像新娘。我一直安慰自己挤安,他們只是感情好谚殊,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛤铜,像睡著了一般嫩絮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上围肥,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天剿干,我揣著相機與錄音,去河邊找鬼穆刻。 笑死置尔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的氢伟。 我是一名探鬼主播榜轿,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腐芍!你這毒婦竟也來了差导?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤猪勇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后颠蕴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泣刹,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年犀被,在試婚紗的時候發(fā)現(xiàn)自己被綠了椅您。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡寡键,死狀恐怖掀泳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情西轩,我是刑警寧澤员舵,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站藕畔,受9級特大地震影響马僻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜注服,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一韭邓、第九天 我趴在偏房一處隱蔽的房頂上張望措近。 院中可真熱鬧,春花似錦女淑、人聲如沸瞭郑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屈张。三九已至,卻和暖如春苇本,著一層夾襖步出監(jiān)牢的瞬間袜茧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工瓣窄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留笛厦,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓俺夕,卻偏偏與公主長得像裳凸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子劝贸,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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