信息检索——向量空间模型(Vector Space Model)

TF:

tf 即 term frequency, 表示一个 term t 出现在 document d 中的次数,这是文档中一个很重要的概念。出现次数更多意味着重要程度越高,但是需要注意的是,相关度的提高并不是和次数的提高成同比的。因此通常tf需要做如下的处理

w1= log10(tf+1)

这样做就是要弱化次数对于相关度的影响


DF/IDF:

df 即 document frequency,表示一个 term 在整个文档集中出现的频率。与 tf 相反,一个 term 的重要程度是随着它在语料库中出现的频率成反比的。比如 and,or 等词在几乎所有文档中都出现,那么这些词的意义就很弱,而一些专业词汇只在几篇文档中出现过,显然意义更加重要。idf 就是 df 取倒数,这里只是为了表示方便。

同样,为了弱化频率的效果,我们也做如下处理

w2= log10(N/df) 其中N为文档总数,df是文档term在所有文档集合中出现的次数。


有了上面的tfidf作为权重,我们可以很简单的计算所有词的权重,然后用一个N维的向量来表示一个文档,同样用N维的向量来表示query,query中如果没有对应的term,则该维权重为0。

于是,利用我们的数据知识,我们可以知道,在同样的空间中,如果两个向量的夹角越小,说明两个向量越相似,反之两个向量越无关。因此使用cosine定理,我们可以很简单地得到向量之间的相似度



Worked example. We now consider the query best car insurance on a fictitious collection with $N=1{,}000{,}000$ documents where the document frequencies of auto, best, car and insurance are respectively 5000, 50000, 10000 and 1000.

term query document product
  tf df idf $\mbox{w}_{t,q}$ tf wf $\mbox{w}_{t,d}$  
auto 0 5000 2.3
math.log(1000000/5000, 10)
0
0 * 2.3
1 1 0.41 0
best 1 50000 1.3
math.log(1000000/50000, 10)
1.3
1 * 1.3
0 0 0 0
car 1 10000 2.0 2.0
1 * 2.0
1 1 0.41 0.82
insurance 1 1000 3.0 3.0
1 * 3.0
2 2 0.82 2.46

ref: http://nlp.stanford.edu/IR-book/html/htmledition/queries-as-vectors-1.html



你可能感兴趣的:(信息检索——向量空间模型(Vector Space Model))