文字相似計算是進行文字聚類的基礎,和傳統結構化數值資料的聚類方法類似,文字聚類是通過計算文字之間"距離
"來表示文字之間的相似度並產生聚類。文字相似度的常用計算方法
有餘弦定理和jaccard係數。但是文字資料與普通的數值資料或類屬資料不同,文字資料是一種半結構化資料,在進行文字挖掘之前必須要對文字資料來源進行處理,如分詞、向量化表示等,其目的就是使用量化的數值來表達這些半結構化的文字資料。使其適用於分析計算。
(token)
來表示的多維向量。
可表示為:d(t1,t2,…,tn),d表示被處理的文件,tn
表示在dd1,d2,…,dm
。經分詞後,這些文件的向量表示就變為:dm(t1,t2,…,tn),m表示文件個數、n
d1 (a, b, c, c, s, d, a, b, t, s, s, s, t, w, w)
d2(c, s, s, t, w, w, a, b, s, b)
在了解了文件的向量表示以後再來看看
tfidf
加權統計方法()
。tfidf
tfidf是由兩部分組成,一部分是tf(token frequency),表示乙個詞在文件中出現的次數,即詞頻。另一部分是idf(inverse document frequency),表示某個詞出現在多少個文字中(或者解釋為有多少個文字包含了這個詞),即逆向文件頻率,通常由公式idft=log((1+|d|)/|dt|),其中|d|表示文件總數,|dt|t的文件數量。tfidf
的值就是由這兩部分相乘得到的,還要指出的是
tfidf
不是指某乙個特定的公式,而是表示了一系列基於基本
tfidf
方法變形(分別對
tf
和
idf
這兩部分進行處理)的公式的集合
,而
tfidftd=tftd*ln(idft)(t
d中的詞頻乘以
t的逆向文件頻率的自然對數
)是被多數系統證明是最有效的乙個公式。現在來看看上面那個例子中給出的資料,由例子給出的資料可得到詞頻矩陣如下: d1
d2 a
2 1b 2
2 c2 1
d 10 s
4 3t 2
1 w2 2
d1中出現了
100次,在
d2中出現了
100次,僅從詞頻看來這個詞在這兩個文件中的重要性相同,然而再考慮另乙個因素,就是d1
1000
,而
d2100000
,所以從總體上看,這個詞在
d1和
d2中的重要性是不同的。
因此就需要對詞頻做正規化處理。
,將上面的詞頻矩陣進行正規化處理後,結果如下表:
d1 d2
a 0.08
0.04 b
0.08
0.08 c
0.08
0.04 d
0.04
0.00 s
0.16
0.12 t
0.08
0.04 w
0.08
0.08
=25
idf的值
。如下表所示: ln
a0.4 b
0.4 c
0.4 d
1.1 s
0.4 t
0.4 w
0.4
最後將正規化後的詞頻與
idf值相乘
,結果如下:
d1 d2
a 0.032
0.016 b
0.032
0.032 c
0.032
0.016 d
0.044
0.000 s
0.064
0.048 t
0.032
0.016 w
0.032
0.032
在得到tfidf
權值以後就可以利用這些資料利用餘弦定理或jaccard係數來計算文字之間的相似度以實現文字聚類等標準的文字挖掘演算法了。
參考:http://www.cnblogs.com/smartbizsoft/archive/2009/05/14/1457161.html
文字向量表示及TFIDF詞彙權值
文字相似計算是進行文字聚類的基礎,和傳統結構化數值資料的聚類方法類似,文字聚類是通過計算文字之間 距離 來表示文字之間的相似度並產生聚類。文字相似度的常用計算方法有餘弦定理和jaccard係數。但是文字資料與普通的數值資料或類屬資料不同,文字資料是一種半結構化資料,在進行文字挖掘之前必須要對文字資料...
TF IDF 文字的一種向量表示
tf idf是term frequency inverse document frequency的簡稱。她是一種非常常見的用於將文字轉化為有意義的數字表示的演算法。這個技術被廣泛的應用與nlp的各個方面。本文將會介紹怎樣計算和應用tf idf。為了將機器學習演算法或統計技術應用到任何形式的文字上,應...
6 2 用詞向量表示文字(分布式表示)
import jieba import gensim from gensim.models.doc2vec import doc2vec,labeledsentence taggededdocument gensim.models.doc2vec.taggeddocument tag list cu...