1. 程式人生 > >文字相似性檢測---詞語權重計算

文字相似性檢測---詞語權重計算

本文討論如何計算詞(有時候稱特徵向量)權重和向量空間模型及其應用。本文的“文件”是指查詢物件,它們可以使一條條單獨的記錄或者是一本書的各章,還可以是一個網頁,或者xml檔案等。

1 歸一化

    在討論詞權重和向量空間模型前需要先了解下歸一化的概念。歸一化(normailization)方法有兩種形式。第一種形式是把數變為(0,1)之間的小數,方便計算。第二種是把有量綱(量綱是指單位)表示式變為無量綱表示式,這樣歸一化後統一了單位,方便比較,而且歸一化後比較的數值才有意義。

2 詞權重表示TF-IDF

    詞頻-逆文件頻率(term frequency-inverse document frequency,TF-IDF) 的概念被公認為資訊檢索中最重要的發明。在搜尋、文獻分類和其他相關領域有廣泛的應用。

    在計算機中光有詞是不能計算的,需要把詞轉換為數字,這個數字能代表該詞對文件中的重要程度,這個數字就是詞的權重。權重的設定必須滿足下面兩個條件:

1)一個詞預測主題能力越強,權重就越大,反之,權重就越小。我們在網頁中看到“雲端計算”這個詞,或多或少地能瞭解網頁的主題。我們看到“應用”一次,對主題基本上還是一無所知。因此,“雲端計算“的權重就應該比”應用“大。

2) 應刪除詞(如的等停頓詞)的權重應該是零。

2.1 詞頻

    如果用詞項t在文件d中出現的次數來表示詞頻,那麼包含某些詞多的文件應該比包含它們少的文件相關。當然,這個辦法有一個明顯的漏洞,就是長的文件比短的文件佔便宜,因為長的文件總的來講包含的關鍵詞要多些。因此我們需要根據文件的長度,對關鍵詞的次數進行歸一化,也就是用關鍵詞的次數除以文件的總字數。我們把這個商稱為詞的頻率(term frequency,TF)

2.2逆文件頻率

    如果一個關鍵詞只在很少的文件中出現,我們通過它就容易鎖定搜尋目標,它的權重也就應該大。反之如果一個詞在大量文件中出現,我們看到它仍然不很清楚要找什麼內容,因此它應該小。概括地講,假定一個關鍵詞t在Dt個文件中出現過,那麼Dt越大,t的權重越小,反之亦然。在資訊檢索中,使用最多的權重是逆文件頻率(Inversedocument frequency 縮寫為IDF),它的公式為

IDF=log(D/Dt)

其中D是全部文件數。比如,我們假定中文文件數是D=10億,應刪除詞“的”在所有的文件中都出現,即 Dt=10億,那麼它的IDF=log(10億/10億)= log(1) = 0。假如專用詞“雲端計算”在兩百萬個文件中出現,即Dw=200萬,則它的權重IDF=log(500) =6.2。又假定通用詞“應用”,出現在五億個文件中,它的權重IDF= log(2)則只有 1。也就只說,在文件中找到一個“雲端計算”的比配相當於找到九個“應用”的匹配。

2.3 TF-IDF權重計算

對於每篇文件中的每個詞(一般是指關鍵字及特徵向量),可以將其TF和IDF組合在一起形成每個詞最終的權重,計算公式如下

TF-IDF=TF*IDF

TF-IDF按照如下的方式對文件d中的詞項t賦予權重:

(1)當t只在少數幾篇文件中多次出現時,權重取值最大(此時能夠對這些文件提供最強的區分能力);

(2)當t在一篇文件中出現次數很少,或者在很多文件中出現,權重取值次之(此時對最後的相關度計算作用不大);

(3)如果t在所有文件中都出現,那麼權重取值最小。

3 向量空間模型

    通過用TF-IDF表示詞的權重,就可以把文件看成是一個向量(vector),其中的每個分量都對應詞典中的一個詞,分量值為詞的權重值(可用TF-IDF計算,也有其他方法計算權重值)。當某詞在文件中沒有出現時,其對應的分量值為0。這種向量形式對於評分和排序十分重要。一系列文件在同一向量空間中的表示被稱為向量空間模型(vector space model,簡稱VSM),它是資訊檢索領域一系列相關處理的基礎,比如文件的評分、文件的分類及聚類。

    用向量空間模型,一組文件的集合可以看成向量空間中的多個向量,每個詞對應一個座標軸,文件在每個座標軸上的值是對應詞的權重Weight。那麼文件d對應的向量為


4 應用

4.1 文件相關性

(1)簡單的文件相關性計算,可以用文件中的每個詞的權重(TF-IDF)加權求和,即

  TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN

(2)用餘弦定理判斷文件相似度

    學過向量代數的人都知道,向量實際上是多維空間中有方向的線段。如果兩個向量的方向一致,即夾角接近零,那麼這兩個向量就相近。而要確定兩個向量方向是否一致,這就要用到餘弦定理計算向量的夾角了。可以用餘弦定理判定文件的相似度。
    餘弦定理對我們每個人都不陌生,它描述了三角形中任何一個夾角和三個邊的關係,換句話說,給定三角形的三條邊,我們可以用餘弦定理求出三角形各個角的角度。假定三角形的三條邊為 a, b 和 c,對應的三個角為 A, B 和 C,那麼角 A 的餘弦為

如果我們將三角形的兩邊 b 和 c 看成是兩個向量,那麼上述公式等價於

其中分母表示兩個向量 b 和 c 的長度,分子表示兩個向量的內積。

同樣在向量空間下,可以用餘弦定理對兩篇文件的相似度進行計算,如下圖


舉一個具體的例子(這個例子來自《數學之美》),假如文章 X 和文章 Y 對應向量分別是x1,x2,...,x64000 和y1,y2,...,y64000,那麼它們夾角的餘弦等於,