地 址:上海市楊浦66號 電 話(huà):19942425257 網(wǎng)址:www.hunqingrc.com 郵 箱:[email protected]
搜索引擎自動(dòng)提取關(guān)鍵詞技術(shù)《TF-I??DF與余弦相似性的搜索術(shù)應用》這個(gè)標題看上去好像很復雜,其實(shí)我要談的引擎余ヾ(′?`)?弦應用是一個(gè)很簡(jiǎn)單的問(wèn)題。有一??篇很長(cháng)的自動(dòng)文章,我要用計算機提(ti)取它的關(guān)鍵關(guān)鍵詞(Automatic Keyphrase extraction),完全不加以人工干預,詞技請問(wèn)怎樣才能正確做到?相似性
這個(gè)問(wèn)題(╯°□°)╯︵ ┻━┻涉及到數(shu)據挖掘、文本處理、搜索術(shù)信息檢索等很多計算機前沿領(lǐng)域,引擎余弦應用但是自動(dòng)出乎意料的是,有一個(gè)非常簡(jiǎn)單的關(guān)鍵經(jīng)典算法,可以給出令人相當滿(mǎn)意的詞技結果。它簡(jiǎn)單到都不需要高等數學(xué),相似性普通人只用10分鐘就可以理解,搜索術(shù)這就是引擎余弦應用我今天想要介紹的T??F-I??DF(′?_?`)算法。
讓我們從一個(gè)實(shí)例開(kāi)始講起。自動(dòng)假定現在有一(′▽?zhuān)?篇長(cháng)文《中國的蜜蜂養殖》,我們準備用計算機提取它的關(guān)鍵詞。
一個(gè)容易想到的思路,就是找到出現次數最多的詞。如果某個(gè)詞很重要,它應該在這篇文章中多??次出現。于是,我們進(jìn)行"詞頻ヾ(′?`)?"(Term Frequency,縮寫(xiě)為T(mén)F)統(╯°□°)╯︵ ┻━┻計。
結果你肯定猜到了,出現次數最多的詞是----"的"、"是"、"在"----這一類(lèi)最常用的詞。它們叫做"停用詞"(stop words),表示對找到結果(guo)毫無(wú)幫助、必須過(guò)濾掉的詞。
假設我們把它們都過(guò)濾掉了??,只考慮剩下的有實(shí)際意義的詞。這樣(yang)又會(huì )遇到了另一個(gè)問(wèn)題,我們可能發(fā)現"中國"、"蜜蜂"、"養殖"這三個(gè)詞的出(°o°)現次數一樣多。這??是不是意味著(zhù),作為關(guān)鍵詞,它們(?????)的重要性是一樣(′?_?`)的?
顯然不是這樣。因為"中國"是很常見(jiàn)的詞,相對而言,"蜜蜂"和"養殖"不那么常見(jiàn)。如果這三個(gè)詞在一(′;ω;`)篇文章的出現次數一樣多,有理由認為,"蜜蜂"和"養殖"的重要程度要大于"中國",也就是說(shuō)(shuo),在關(guān)鍵詞排序上面,"蜜蜂"和"養殖"應該排在"中國"的前面。
所以,我們需要一個(gè)重要性調整系數,衡量一個(gè)詞是不是常見(jiàn)詞。如果某個(gè)詞比較少見(jiàn),但是它在這篇文章中多次出現,那么它很可能就反映了這篇文章的特性,正是我們所需要的關(guān)鍵詞。
用統計學(xué)語(yǔ)言表達,就是在詞頻的基礎上,要對每個(gè)詞分配一個(gè)"重要性"權重。最常見(jiàn)的詞("的"、(′▽?zhuān)?"是"、"在")給予最小的權重,較常見(jiàn)的詞("中國")給予較小的權重,較少見(jiàn)的詞("蜜蜂"、"養殖")給予較大的權重。這個(gè)權重叫做"逆文檔頻率"(Inversヽ(′?`)ノe Document Frequency,縮寫(xiě)為IDF),它的大小與一個(gè)詞的常見(jiàn)程度成反比。
知道了"詞頻"(TF)和"逆文檔頻率"(IDF)以后,將這兩個(gè)值相乘,就得到了ヾ(?■_■)ノ一個(gè)詞的TF-IDF值。某個(gè)詞對文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的幾個(gè)詞,就是這篇文章的關(guān)鍵詞。
下面就是這??個(gè)算法的細節。
第一步??,計算詞頻。
考慮到文章有長(cháng)短之分,為了便于不同文章的比較,進(jìn)行"詞頻"標準化。
或者
如果一個(gè)詞越常見(jiàn),那么分(fen)母就越大,逆文檔頻率就越小越接近0。分母之所(???)以要加(jia)1,是為了避免分母為0(即所有文檔都不包含該詞)。log表示對得到的值取對數??。
第三步,計算TF-IDF。
可以看到,TF-IDF與一個(gè)詞在文檔中的出現次數成正比,與該詞在整個(gè)語(yǔ)言中的出現次數成反比。所以(yi),自動(dòng)提取關(guān)鍵詞的算法就很清楚了,就是計算出文檔的每個(gè)詞的TF-IDF值,然后按降序排列,取(qu)排在最前面的幾個(gè)詞。
還是以《中國的蜜蜂養殖》為例,假定該文長(cháng)度為1000個(gè)詞,"中國"、"蜜蜂"、"養殖"各出現20次??,則這三個(gè)詞的"詞頻"(TF)都為0.02。然后,搜索Google發(fā)現,包含"的"字的網(wǎng)頁(yè)共(gong)有250億張,假定這就是中文網(wǎng)頁(yè)總數。包含"中國"的網(wǎng)頁(yè)共有62.??3億張,包含"蜜蜂"的網(wǎng)頁(yè)??為0.484億張,包含"養殖"的網(wǎng)頁(yè)為0.973億張。則它們的逆文檔頻率(IDF)和TF-IDF??如下:
除了自動(dòng)提取關(guān)鍵詞,TF-IDF算法還可以用于??許多別的地方。比如,信息檢索時(shí)(shi),對于每個(gè)文檔,都可以分(fen)別計算一組搜索詞("中國"、"蜜蜂"、"養殖")的TF-IDF,將它們相加,就可以得(de)到整個(gè)文檔的TF-IDF。這個(gè)值最高的文檔就是與搜索詞最相關(guān)的文檔。
TF-IDF算法的優(yōu)點(diǎn)是簡(jiǎn)單快速,結果比較符合實(shí)際情況。缺點(diǎn)是,單純以"詞頻"衡量一個(gè)詞的重要性,不夠全面,有時(shí)重要的詞可能出現次數并不多。(?_?;)而且,這種算法無(wú)法體現詞的位置信息,出現位置靠前的詞與出現位置靠后的詞,都被視為重要性相同,這是不正確的。(一種解決(′?`*)方法是,對全文的第一段和每一段的第一句話(huà),(???)給予較大的??(de)權重。)
文章來(lái)源:公眾號SEO實(shí)戰營(yíng)(ID:ilot(╯°□°)╯tecn),原文鏈接:https://mp.??wヽ(′▽?zhuān)?ノeixin.qq.com/s/jKNsaEUXseubcSoPehHWwQ