觸屏版
全國服務(wù)熱線:0571-87205688
登錄
注冊
客戶中心
關(guān)注云客
最近我在給公司的編輯和優(yōu)化人員培訓(xùn)時,在講到文章關(guān)鍵詞的密度和布局設(shè)置的時候,有個SEOer提問: 搜索引擎是如何判斷并提取文章關(guān)鍵詞? ,關(guān)于這個問題,雖然我并不確定百度是用什么技術(shù)提取關(guān)鍵詞的,但是卻知道一種利用TF-IDF與余弦相似性來自動提取關(guān)鍵詞的技術(shù),簡單的來說就是針對一篇很長的文章,要想只用計算機提取它的關(guān)鍵詞(Automatic Keyphrase extraction),在完全不加以人工干預(yù)的情況下,利用什么樣的技術(shù)原理才能正確做到呢?
搜索引擎自動提取文章關(guān)鍵詞原理
一、什么是TF-IDF?
TF-IDF(term frequency inverse document frequency)是一種用于資訊檢索與資訊探勘的常用加權(quán)技術(shù)。TF-IDF是一種統(tǒng)計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。TF-IDF加權(quán)的各種形式常被搜索引擎應(yīng)用,作為文件與用戶查詢之間相關(guān)程度的度量或評級。除了TF-IDF以外,因特網(wǎng)上的搜索引擎還會使用基于鏈接分析的評級方法,以確定文件在搜尋結(jié)果中出現(xiàn)的順序。
TF-IDF的原理
在一份給定的文件里,詞頻 (term frequency, TF) 指的是某一個給定的詞語在該文件中出現(xiàn)的次數(shù)。這個數(shù)字通常會被歸一化,以防止它偏向長的文件。(同一個詞語在長文件里可能會比短文件有更高的詞頻,而不管該詞語重要與否。)
逆向文件頻率 (inverse document frequency, IDF) 是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對數(shù)得到。
某一特定文件內(nèi)的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產(chǎn)生出高權(quán)重的TF-IDF。因此,TF-IDF傾向于保留文檔中較為特別的詞語,過濾常用詞。
二、搜索引擎自動提取文章關(guān)鍵詞的原理
關(guān)于這個問題涉及到數(shù)據(jù)挖掘、文本處理、信息檢索等很多計算機前沿領(lǐng)域,但是出乎意料的是,有一個非常簡單的經(jīng)典算法,可以給出令人相當(dāng)滿意的結(jié)果。它簡單到都不需要高等數(shù)學(xué),普通人只用10分鐘就可以理解,這就是我今天要在博客上想要介紹的TF-IDF算法。
首先以一個實例開始給大家講起。假定現(xiàn)在有一篇長文《中國的蜜蜂養(yǎng)殖》,我們準(zhǔn)備用計算機提取它的關(guān)鍵詞。
一個容易想到的思路,就是找到出現(xiàn)次數(shù)最多的詞。如果某個詞很重要,它應(yīng)該在這篇文章中多次出現(xiàn)。于是,我們進行 詞頻 (Term Frequency,縮寫為TF)統(tǒng)計。
結(jié)果你肯定猜到了,出現(xiàn)次數(shù)最多的詞是---- 的 、 是 、 在 ----這一類最常用的詞。它們叫做 停用詞 (stop words),表示對找到結(jié)果毫無幫助、必須過濾掉的詞。
假設(shè)我們把它們都過濾掉了,只考慮剩下的有實際意義的詞。這樣我們可能又會遇到了另一個問題,我們可能發(fā)現(xiàn) 中國 、 蜜蜂 、 養(yǎng)殖 這三個詞的出現(xiàn)次數(shù)一樣多。
這是不是意味著,作為關(guān)鍵詞,它們的重要性是一樣的?
顯然不是這樣。因為 中國 是很常見的詞,相對而言, 蜜蜂 和 養(yǎng)殖 不那么常見。如果這三個詞在一篇文章的出現(xiàn)次數(shù)一樣多,有理由認(rèn)為, 蜜蜂 和 養(yǎng)殖 的重要程度要大于 中國 ,也就是說,在關(guān)鍵詞排序上面, 蜜蜂 和 養(yǎng)殖 應(yīng)該排在 中國 的前面。
所以,我們需要一個重要性調(diào)整系數(shù),衡量一個詞是不是常見詞。如果某個詞比較少見,但是它在這篇文章中多次出現(xiàn),那么覺得它很可能就反映了這篇文章的特性,也正是我們所需要的關(guān)鍵詞。
用統(tǒng)計學(xué)語言表達(dá),就是在詞頻的基礎(chǔ)上,要對每個詞分配一個 重要性 權(quán)重。最常見的詞( 的 、 是 、 在 )給予最小的權(quán)重,較常見的詞( 中國 )給予較小的權(quán)重,較少見的詞( 蜜蜂 、 養(yǎng)殖 )給予較大的權(quán)重。這個權(quán)重叫做 逆文檔頻率 (Inverse Document Frequency,縮寫為IDF),它的大小與一個詞的常見程度成反比。
知道了 詞頻 (TF)和 逆文檔頻率 (IDF)以后,將這兩個值相乘,就得到了一個詞的TF-IDF值。某個詞對文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的幾個詞,就是這篇文章的關(guān)鍵詞。
下面再詳細(xì)的給大家介紹一下這個算法的細(xì)節(jié):
第1步:計算詞頻
考慮到文章有長短之分,為了便于不同文章的比較,進行 詞頻 標(biāo)準(zhǔn)化。
或者
第2步:計算逆文檔頻率
這時,需要一個語料庫(corpus),用來模擬語言的使用環(huán)境。
如果一個詞越常見,那么分母就越大,逆文檔頻率就越小越接近0。分母之所以要加1,是為了避免分母為0(即所有文檔都不包含該詞)。log表示對得到的值取對數(shù)。
第3步:計算TF-IDF
從上面的公式我們可以看到,TF-IDF與一個詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個語言中的出現(xiàn)次數(shù)成反比。所以,自動提取關(guān)鍵詞的算法就很清楚了,就是計算出文檔的每個詞的TF-IDF值,然后按降序排列,取排在最前面的幾個詞。
在此還是以《中國的蜜蜂養(yǎng)殖》為例,假定該文長度為1000個詞, 中國 、 蜜蜂 、 養(yǎng)殖 各出現(xiàn)20次,則這三個詞的 詞頻 (TF)都為0.02。然后,通過搜索引擎搜索這個詞發(fā)現(xiàn),包含 的 字的網(wǎng)頁共有250億張,假定這就是中文網(wǎng)頁總數(shù)。包含 中國 的網(wǎng)頁共有62.3億張,包含 蜜蜂 的網(wǎng)頁為0.484億張,包含 養(yǎng)殖 的網(wǎng)頁為0.973億張。則它們的逆文檔頻率(IDF)和TF-IDF如下:
從上表可見, 蜜蜂 的TF-IDF值最高, 養(yǎng)殖 其次, 中國 最低。(如果還計算 的 字的TF-IDF,那將是一個極其接近0的值。)所以,如果只選擇一個詞, 蜜蜂 就是這篇文章的關(guān)鍵詞。
評論(0人參與,0條評論)
發(fā)布評論
最新評論