改進向量空間模型

2021-04-26 12:16:47 字數 984 閱讀 3893

宣告:只是對向量空間模型的介紹(或者叫推廣),並沒有理論創新工作。

本人在之前的《

向量空間模型

(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 使用詞項頻率作為權重有乙個嚴重缺陷,它無區別地對每乙個詞項計算權重,而事實上,文件中兩個詞頻相同的詞極有可能具有不一樣的重要性 亦即權重 例如,...