tf-idf(term frequency–inverse document frequency)是一種統計方法,用來衡量字詞對於文字的重要程度。字詞的重要性隨著它在當前文字**現的頻率成正比,隨著它在語料庫中其他文字**現的頻率成反比,因此td-idf也經常被用來提取文字的特徵。
本文主要講解什麼是tf-idf以及tf-idf提取詞向量的實現過程。
tf * idf=\frac *log\fractf顧名思義就是詞頻,即$$
tf=表示某詞在乙個文字**現的頻率,一般而言,某詞在文字**現的頻率越高,那麼可以認為該詞對於文字的重要程度比較高(當然,類似於啊/了/的之類的停用詞不算,本次討論的詞中假設已經去除了停用詞),比如在本篇文章中反覆提到tf,那麼可以直觀的認可tf對於本文的重要性。但是…但是…請考慮如下場景:某詞wi
在文字d
i中出現
的次數文
本di中
出現的詞
數tf =\frac
tf=文字d
i**
現的詞數
某詞wi
在文字
di中
出現的次
數
有三個文字d1、
d2、d
3d_1、d_2、d_3
d1、d2
、d3
構成乙個語料庫d
dd,需要提取每乙個文字的特徵,假設
w1、按照tf的理論:w2經常
在d1中
出現
w1、w2經常在d_1**現
w1、w2經
常在d1
**現
w 1、
w3經常
在d2中
出現
w1、w3經常在d_2**現
w1、w3經
常在d2
**現
w 3、
w4經常
在d3中
出現
w3、w4經常在d_3**現
w3、w4經
常在d3
**現
w1、那麼問題來了 w2只w2對於
d1比較
重要
w1、w2對於d_1比較重要
w1、w2對
於d1
比較重要
w 1、
w3對於
d2比較
重要
w1、w3對於d_2比較重要
w1、w3對
於d2
比較重要
w 3、
w4對於
d3比較
重要
w3、w4對於d_3比較重要
w3、w4對
於d3
比較重要
對d1比
較重要,
也就是w
2具有唯
一性,可
以較好的
作為d1
的特徵,
w2只對d_1比較重要,也就是w_2具有唯一性,可以較好的作為d_1的特徵,
w2只對d1
比較重
要,也就
是w2
具有唯一
性,可以
較好的作
為d1
的特徵,
而 w2
對d1和
d2都比
較重要,
都可以作
為d1和
d2的特
徵,即沒
有體現其
特別之處
而w_2對d_1和d_2都比較重要,都可以作為d_1和d_2的特徵,即沒有體現其特別之處
而w2對d
1和d
2都比
較重要,
都可以作
為d1
和d2
的特徵,
即沒有體
現其特別
之處,那這樣w2w2
w2還能作為特徵詞嗎?能!那如何處理這種腳踏兩隻船的情況呢?權重!沒毛病,就是權重,也就是下文的idf。
idf((inverse document frequency),叫做逆文件頻率,用來衡量詞在語料庫中的常見程度。通俗的來講,就是衡量詞在語料庫中的權重,比如上文提到腳踏兩隻船的傢伙,權重就可以少一點,更為甚者,就更少一點,反之,如果一夫一妻的,作為嘉獎,給予最大權重,算是滿分。下面亮出公式:
idf=log
語料庫的
所有文件
數包含某
詞wi的
文件數+
1idf=log\frac
idf=lo
g包含某
詞wi
的文件數
+1語料
庫的所有
文件數
如果乙個詞在本文**現,在其他文中也出現,那麼它的權重就會隨著其他文**現的次數增加而降低
做乙個平滑處理,防止包含某詞的文件數為0,數學中分母為0是不允許的
關於這個問題idf的提出者沒有給出理論的解釋,有點小尷尬。從資訊理論的角度解釋,這裡有篇文章可以參考以tf-idf方式提取詞向量
from sklearn.feature_extraction.text import tfidfvectorizer
corpus =
['我們 去 唱歌'
,'我們 去 爬山'
,'小名 喜歡 打球'
]tfidf_vector = tfidfvectorizer(
)x = tfidf_vector.fit_transform(corpus)
print
(x.toarray())
'''[[0.79596054 0. 0. 0.60534851 0. 0. ]
[0. 0. 0. 0.60534851 0. 0.79596054]
[0. 0.57735027 0.57735027 0. 0.57735027 0. ]]
'''
NLP之tfidf作詞向量
from sklearn.feature extraction.text import tfidfvectorizer def cutword con1 jieba.cut 今天很殘酷,明天更殘酷,後天很美好,但絕對大部分是死在明天晚上,所以每個人不要放棄今天。con2 jieba.cut 我們看到...
TF IDF的簡單理解
1 tf idf簡介 tf term frequency 詞頻,指的是給定乙個詞在該文件 現的次數 idf inverse document frequency 逆文件頻率 可以簡單的理解成 乙個詞語在一篇文章 現的次數越多,同時在其他的所有文件 現的次數越少,越能夠代表該文章 2 tf idf計算...
生動理解TF IDF演算法
tf idf有兩層意思,一層是 詞頻 term frequency,縮寫為tf 另一層是 逆文件頻率 inverse document frequency,縮寫為idf 假設我們現在有一片長文叫做 量化系統架構設計 詞頻高在文章中往往是停用詞,的 是 了 等,這些在文件中最常見但對結果毫無幫助 需要...