宣告:只是對向量空間模型的介紹(或者叫推廣),並沒有理論創新工作。
本人在之前的《
向量空間模型
(vsm)
在文件相似度計算上的簡單介紹
》和《向量空間模型文件相似度計算實現(c#)
》兩篇文章中分別介紹了簡單
svm模型及其實現。
本人使用簡單詞頻(即詞在當前文件中出現的次數)資訊,實現了乙個樸素版本的向量空間模型,效果尚可,但還是有很多可改進之處。
直接使用詞的個數在比較詞數很多和詞數很少的文件時存在著問題。例如文件
i中含有
10000
個詞,而詞
a出現了
10次;文件
ii中含有
100個詞,而
a出現了
5次。這樣在相似度計算時,文件i中
a對最後結果的影響比文件
ii中的
a要大。這顯然是不合理的,因為
a只點文件i的
0.1%
而卻佔文件ii的
5%。為了解決這類問題,我們引入詞頻(
tf)和反詞頻(
idf)兩個概念。
其中tf = f/m
,其中f
表示當前詞在當前文件中出現的次數,而
m表示當前文件中出現次數最多的詞的次數。這樣
tf值就在0和
1之間。這樣做可以減少文件中詞的頻率不合理分布所引起的誤差。
idf =
log2 (n/nj
) + 1
,其中n
表示在整個語料中文件的總數,而
nj表示含有當前詞的文件數。這樣做可以減少在語料範圍內詞頻分布不均勻造成的相似度誤差。
最後,將這兩項相乘得到
t = tf * idf
,用這個量替代《
向量空間模型
(vsm)
在文件相似度計算上的簡單介紹
》中的簡單詞頻,就可以得到實際應用中常用的向量空間模型了。
改進向量空間模型
宣告 只是對向量空間模型的介紹 或者叫推廣 並沒有理論創新工作。本人在之前的 向量空間模型 vsm 在文件相似度計算上的簡單介紹 和 向量空間模型文件相似度計算實現 c 兩篇文章中分別介紹了簡單 svm模型及其實現。本人使用簡單詞頻 即詞在當前文件中出現的次數 資訊,實現了乙個樸素版本的向量空間模型...
向量空間模型
向量空間模型 vsm vector space model 是最常用的相似度計算模型,在自然語言處理中有著廣泛的應用,這裡簡單介紹一下其在進行文件間相似度計算時的原理。假設共有十個詞 w1,w2,w10,而共有三篇文章,d1,d2和d3。統計所得的詞頻表 杜撰的,為了便於演示用法 如下 w1 w2 ...
向量空間模型
tft d,意為詞項t在文件d中出現的次數。這種忽略詞項在文件中的次序關係,將文件看作詞項的集合的模型,稱為詞袋模型 bag of words model 使用詞項頻率作為權重有乙個嚴重缺陷,它無區別地對每乙個詞項計算權重,而事實上,文件中兩個詞頻相同的詞極有可能具有不一樣的重要性 亦即權重 例如,...