TF IDF模型和文字相似度的計算

2021-06-05 15:01:18 字數 1758 閱讀 7889

tf-idf(term frequency–inverse document frequency)是一種用於資訊檢索與文字挖掘的常用加權技術。tf-idf是一種統計方法,用以評估一字詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度。字詞的重要性隨著它在檔案中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。tf-idf加權的各種形式常被搜尋引擎應用,作為檔案與使用者查詢之間相關程度的度量或評級。除了tf-idf以外,網際網路上的搜尋引擎還會使用基 於鏈結分析的評級方法,以確定檔案在搜尋結果中出現的順序。

在乙份給定的檔案裡,詞頻(term frequency,tf)指的是某乙個給定的詞語在該檔案中出現的次數。這個數字通常會被正規化,以防止它偏向長的檔案。(同乙個詞語在長檔案裡可能會 比短檔案有更高的詞頻,而不管該詞語重要與否。)對於在某一特定檔案裡的詞語t

i來說,它的重要性可表示為:

以上式子中n

i,j是該詞在檔案d

j中的出現次數,而分 母則是在檔案d

j中所有字詞的出現次數 之和。

逆向檔案頻率(inverse document frequency,idf)是乙個詞語普遍重要性的度量。某一特定詞語的idf,可以由總檔案數目除以包含該詞語之檔案的數目,再將得到的商取對數得到:

然後某一特定檔案內的高詞語頻率,以及該詞語在整個檔案集合中的低檔案頻率,可以產生出高權重的tf-idf。因此,tf-idf傾向於過濾掉常見的詞 語,保留重要的詞語。

***************==文字相似性度量********************===

方法一:向量空間模型

在向量空間模型中,文字泛指各種機器可讀的記錄。用d(document)表示,特徵項(term,用t表示)是指出現在文件d中且能夠代表該文件內容的 基本語言單位,主要是由詞或者短語構成,文字可以用特徵項集表示為d(t1,t2,…,tn),其中tk是特徵項,1<=k<=n。例如一篇 文件中有a、b、c、d四個特徵項,那麼這篇文件就可以表示為d(a,b,c,d)。對含有n個特徵項的文字而言,通常會給每個特徵項賦予一定的權重表示 其重要程度。即d=d(t1,w1;t2,w2;…,tn,wn),簡記為d=d(w1,w2,…,wn),我們把它叫做文字d的向量表示。其中wk是 tk的權重,1<=k<=n。在上面那個例子中,假設a、b、c、d的權重分別為30,20,20,10,那麼該文字的向量表示為 d(30,20,20,10)。在向量空間模型中,兩個文字d1和d2之間的內容相關度sim(d1,d2)常用向量之間夾角的余弦值表示,公式為:

其 中,w1k、w2k分別表示文字d1和d2第k個特徵項的權值,1<=k<=n。

在自動歸類中,我們可以利用類似的方法來計算待歸類 文件和某類目的相關度。例如文字d1的特徵項為a,b,c,d,權值分別為30,20,20,10,類目c1的特徵項為a,c,d,e,權值分別為 40,30,20,10,則d1的向量表示為d1(30,20,20,10,0),c1的向量表示為c1(40,0,30,20,10),則根據上式計算 出來的文字d1與類目c1相關度是0.86

方法二:字串相似度

對於象字串計算相似度的演算法有很多,常用的有最大公共字串,編輯距離等。

編輯距離就是用來計算從原串(s)轉換到目標串(t)所需要的最少的插入,刪除和替換的數目,在nlp中應用比較廣泛,如一些評測方法中就用到了 (wer,mwer等),同時也常用來計算你對原文本所作的改動數。編輯距離的演算法是首先由**科學家levenshtein提出的,故又叫 levenshtein distance。

NLP 使用TF IDF模型計算文字相似度

所用資料集 chnsenticorp htl all.csv 語料庫即存放稀疏向量的列表。要注意的是,搜尋文字text與被檢索的文件共用乙個特徵詞詞典。主要使用gensim庫完成了分詞 tf idf模型訓練 文字相似度計算。過程如下 分詞 建立特徵詞典 建立語料庫 用tf idf模型處理語料庫 計算...

文字相似度計算之tf idf

最基本的文字相似度計算是在向量空間模型 vsm 下,以文件中的詞作為特徵進行計算 先來說一下vsm 思想很簡單 d1 w1 w2 w5 d2 w2 w2 w3 w4 d3 w3 w3 w1 w2 那我現在整個文件集中就有5個詞,由於每篇文件的詞數不同,為了計算他們之間的相似度,我們首先要把他們轉換為...

利用tf idf計算文字相似度

關於使用tf idf進行文字相似度的計算,個人覺得這兩篇文章講解的很好 大家可以去看一看。我在這裡說一些自己在學習文字相似度的計算的過程中的一些感悟,以及一些自己的理解。如有不當之處,請予指正。首先應該明確,文字相似度計算就是將兩個個體的特徵向量化,然後通過余弦公式計算兩者之間的相似性即可。當然除了...