TF IDF 文字的一種向量表示

2021-10-05 16:36:20 字數 3180 閱讀 2166

tf-idf是term frequency-inverse document frequency的簡稱。她是一種非常常見的用於將文字轉化為有意義的數字表示的演算法。這個技術被廣泛的應用與nlp的各個方面。本文將會介紹怎樣計算和應用tf-idf。

為了將機器學習演算法或統計技術應用到任何形式的文字上,應當將文字轉化為數字或向量形式。這種數字表示應當能夠描繪出本文的顯著特徵。有很多技術都可以做到這一點,比如,出現次數(occurrence),詞頻(term-frequency),tf-idf,詞共現矩陣(word co-occurrence matrix),word2vec和glove。

由於tf-idf是乙個基於occurence的文字數位化表達,讓我們先來看看之前的基於occurence的方法以及tf-idf怎樣優於他們。一種最簡單的方法就是用乙個詞在整個語料**現的次數來表達它。

我們假設,乙個詞的值更高意味著這個詞在給定文字中的重要性越高。這是很正確的想法,但是如果語料中的文字有不同的大小呢?這樣一來,大文字中的詞自然會比小文字中的詞出現次數更多。因此,乙個更好的表示就是基於文字的大小對詞的出現次數進行標準化,這個表示被稱作詞頻(term-frequency)。

數學上,乙個詞的詞頻的定義如下:

t f(

w)=d

oc.c

ount

(w)/

tota

lwor

dsin

do

ctf(w) = doc.count(w)/total\,words\,in\,doc

tf(w)=

doc.

coun

t(w)

/tot

alwo

rdsi

ndoc

當計算詞頻時,每個詞都是同樣重要的,並且有機會獲得它的向量表示。但是,一些詞在所有的文字都很常見,以至於這些詞對確定文字的意義沒有什麼什麼作用。比如「the」,「a」,「in」,「of」等等,這些詞會抑制更有意義的詞的權重。因此,為了減輕這個影響,詞頻被乙個稱為逆文字頻率的因子所(inverse document frequency)折減。

i df

(w)=

log(

tota

lnum

bero

fdoc

umen

tsnu

mber

ofdo

cume

ntsc

onta

inin

gwor

dw

)idf(w) = log(\frac)

idf(w)

=log

(num

bero

fdoc

umen

tsco

ntai

ning

word

wtot

alnu

mber

ofdo

cume

nts​

)因此,我們得到乙個新的詞向量表示。如果乙個詞在特定的文字中經常出現,但是在其他的文字**現次數很少,這個詞會有乙個很大的向量表示值。如果乙個詞在幾乎所有的文字都有出現,那這個詞的idf將會趨近於0。tf-idf是詞頻和逆文字詞頻的乘積。

t f-

idf(

w)=t

f(w)

∗idf

(w

)tf \text- idf(w) = tf(w)*idf(w)

tf-idf

(w)=

tf(w

)∗id

f(w)

文字中越重要的詞的tf-idf詞越高,反之亦然。

讓我們看乙個包含5個語料的句子

this car got the excellence award

good car gives good mileage

this car is very expensive

this company is financially good

the company is growing with very high production

tf(

′car

′,d1

)=16

,tf('car',d_1)=\frac,

tf(′ca

r′,d

1​)=

61​,

t f(

′car

′,d2

)=15

,tf('car',d_2)=\frac,

tf(′ca

r′,d

2​)=

51​,

t f(

′car

′,d3

)=15

,tf('car',d_3)=\frac,

tf(′ca

r′,d

3​)=

51​,

t f(

′car

′,d4

)=0,

tf('car',d_4)=0,

tf(′ca

r′,d

4​)=

0,t f(

′car

′,d5

)=

0.tf('car',d_5)=0.

tf(′ca

r′,d

5​)=

0.i df

(′ca

r′)=

log(

53).

idf('car')=log(\frac).

idf(′c

ar′)

=log

(35​

).前三個句子討論的是車,後兩個句子討論的是公司。第一類句子中,更有意義的是車的屬性。同樣地,第二類句子中,公司的金融和產品屬性是更有用的特徵。其它的字將會有更低的分數。

文字分類:tf-idf是一種基礎的特徵向量用來訓練各種不同的分類器。

主題模型:對於自動給文字打標籤來說,一種方式就是我們訓練乙個模型通過tf-idf來計算每個文字的向量,並且設定乙個閾值,分數高於閾值的詞可以用來**新的文字的主題。相應地,tf-idf特徵可以作為lda,llda等模型的輸入,來幫助獲得更好的效能和準確度。

資訊抽取: 通過tf-idf可以得到某個詞在文字中的重要性來補充文字挖掘和搜尋演算法。這些重要的詞和索引越接近說明搜尋的結果越好

過濾停用詞

文字向量表示及TFIDF詞彙權值

文字相似計算是進行文字聚類的基礎,和傳統結構化數值資料的聚類方法類似,文字聚類是通過計算文字之間 距離 來表示文字之間的相似度並產生聚類。文字相似度的常用計算方法 有餘弦定理和jaccard係數。但是文字資料與普通的數值資料或類屬資料不同,文字資料是一種半結構化資料,在進行文字挖掘之前必須要對文字資...

文字向量表示及TFIDF詞彙權值

文字相似計算是進行文字聚類的基礎,和傳統結構化數值資料的聚類方法類似,文字聚類是通過計算文字之間 距離 來表示文字之間的相似度並產生聚類。文字相似度的常用計算方法有餘弦定理和jaccard係數。但是文字資料與普通的數值資料或類屬資料不同,文字資料是一種半結構化資料,在進行文字挖掘之前必須要對文字資料...

字的向量表示

得到乙個字的向量表示,能夠保留字之間共現次數相關的資訊。先得到乙個語料庫的詞庫,然後計算乙個字左邊視窗內和其共同出現的次數的數量,值與距離相反。每個字會對映到乙個整數index,這個index就對映到向量的index。比如 these 對映到index 10,則在 are 這個字的向量表示裡vec ...