TF-IDF:傳統IR的有關排序技術

  那一年,菊花還只是菊花,2B仍然考試時涂卡運用的石墨筆,黃瓜只有菜蔬的功能,信息檢索技術(Information Retrieval)還只是簡單的運用在書庫、資料庫等處。

  也正是在那一年,信息檢索的有關排序技術很風靡的是TF-IDF。

  也許這時候你會非常想問,啥是TF-IDF?嗯,不捉急,在找尋這個問題的解答之前,先來看一個問題。

  在一堆卷帙裡邊,你想找尋和OOXX正題有關的資料(不要想歪),你用啥子標准來分辨斷定這堆卷帙裡邊的A比B更合乎你的正題呢?

  深刻思考一分鍾。

  你也許會說,看一下子這些個卷帙的姓名,看看哪一些書名裡邊粉和水發酵制成的食品含我要找的正題的有關信息,而後再在餘下的這局部卷帙中概觀一下子內部實質意義,看看哪一個更合乎我想要的。

  想法美好。

  人是這樣想的,信息檢索系統總得這樣乾能力給出我們最想要的最後結果,不過一個問題又顯露了出來——手續看不懂書契沒有辦法分辨斷定。

  來,再給你一分鍾時間,想想怎麼幫手續解決這一問題。

  嗯,你發覺了,你想查問的正題中所裡面含有的辭匯跟這堆卷帙中的某個子集內部實質意義中的辭匯是有交集的。

  對,用上次在搜索引擎網站原理簡介的文章中我們談到的基於辭典的分詞技術,來找尋交集。

  先來給定一個辭典,它是N個詞的聚齊。

  ∑={t1,t2,,tn}

  而對於你搜索的條件q和這堆卷帙中的某一本d,則可以依據seo這個辭典表達為:

  q={q1,q2,,qn}

  d={d1,d2,,dn}

  那裡面q1為t1這個辭匯在你的搜索條件q中顯露出來的回數,q2為t2這個辭匯在搜索條件q中顯露出來的回數,順次類推。假如qn為零,則表達第n個詞在q中沒有顯露出來。

  設定w1=d1/∑dn,則w1即為辭匯t1在d中顯露出來的頻率,這時候d即可表達為:

  d=,wi(i=1,2,3,,n)即為詞的出現次數(term frequency)。

  對於一點品質頎長的信息(卷帙、文獻等),詞的出現次數是一個美好的,可以經過手續語言成功實現的,表現辭匯在文檔中所佔權重的形式。

  嗯?疑問出來了,一點詞譬如我們、大家等這種辭匯也肯定會在多篇文章中顯露出來,不過用此來權衡的話顯然上頭下的論斷是不了立的啊。

  道喜你想到達這一步,此種辭匯對於文檔內部實質意義的鑒別來說,真的木有太大的意義。

  來,找特點標志,去掉這種辭匯的影響。

  啊,這些個辭匯會在多個文章中同時顯露出來。

  用ki(i=1,2,3,,n)來表達ti這個辭匯在卷帙的聚齊D中所牽涉到的卷帙回數,M表達卷帙D的體積,則ki/M的值即可以解釋明白一點問題,我們定義這個值為ti的文檔頻率(document frequency)。

  顯然,文檔頻率越高,這個詞的權重就應當越低。

  為了易於計算,常用的會是與文檔頻率成反比的一個量,我們稱之為倒置文檔頻率(inverse document frequency),定義為:

  IDFi=lg(M/ki)

  這麼以來,wi就成為了(哥從網上找了一個公式)

  


  給定某種權重的定量預設,求文檔和查問的有關性就成為了求d和q矢量的某種距離,最常用的是餘弦(cos)距離(這句話不猶豫不懂,絕對復制來的)。

  


  固然說上頭的這個算法有理論上看起來比較垃圾(不思索問題文章的意思,將文章看成詞的聚齊),不過如實踐下來看,其價值仍然獲得了存在廣泛的許可(特別是對於上面所說的提到的圖書檢索來說)。

  當然,對於到現在為止web上這些魚龍混合摻雜的網頁,僅只有賴td-idf是不夠的(很容易導致一大堆網站關鍵詞堆砌的網頁取得好的名次),這也推成了基於鏈接關系等一系列算法的誕生。

  原文地址: