向量空间模型(VSM)计算文本相似度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向量空间模型(VSM)计算文本相似度相关的知识,希望对你有一定的参考价值。

1.定义

向量空间模型是一个把文本表示为标引项(Index Term)向量的代数模型,原型系统SMART*。

向量空间模型的定义很简单,文档d,查询q都用向量来表示。

技术分享

查询和文档都可转化成term及其权重组成的向量表示,都可以看成空间中的点。向量之间通过距离计算得到查询和每个文档的相似度。

我们在向量空间模型中假设term是相互独立互不影响的

2.模型构建

VSM向量空间模型构建的关键在于三点:

1.标引项term的选择

2.权重计算(Term Weighting):即计算每篇文档中每个term的权重

3.查询和文档的相似度计算(Similarity Computation)

上面说的比较难以理解,接下来我们将通过一个例子来介绍如何构建向量空间模型,并通过向量空间模型计算文本相似度。

2.1 标引项(Index Term)

标引项

(1)表示成多个term的集合

(2)通常用词来表示,但是也可以用其他语言单位来表示

(3)词(key words)可以看成term的一种

例如:

文档d1 : 我喜欢打dota,也喜欢玩LoL。

文档d2 : 我爱吃水果,也喜欢拍照。

这里我们仅仅只使用分词结果来作为标引项,

d1分词 :我,喜欢,打,dota,也,LoL

d2分词 : 我,爱,吃,水果,也,喜欢,拍照

将分词结果作为标引项:

我,喜欢,打,dota,也,LoL,爱,吃,水果,拍照

关于标引项的选取远远不止分词这么简单,这里为了介绍VSM只是简单化,我会在另外的博客讨论标引项的选择。

2.2 权重

不同标引项作用是不同的,通过权重加以区分,通常使用TF*IDF来来计算权重,在这里就不在多说了,而是简单的用词频来计算权重。

文档d 1: (<我,2>,<喜欢,2>,<打,1>,< dota,1>,< 也,1>,<玩,1>,< LoL,1>,<爱,0>,<吃,0>,<水果,0>,<拍照,0>)

文档d 2:(<我,1>,<喜欢,1>,<打,0>,< dota,0>,< 也,1>,< 玩,0>,< LoL,0>,<爱,1>,<吃,1>,<水果,1>,<拍照,1>)

2.3 构建向量空间模型

我们称之为 文档-标引项矩阵(Doc-Term Matrix)

矩阵Am*n可以看做m篇文档和n个标引项组成,每一列代表一篇文档,每行表示每个标引项。

技术分享

有查询q :我喜欢打球  --->      (<我,1>,<喜欢,1>,<打,1>,< dota,0>,< 也,0>,<玩,0>,< LoL,0>,<爱,0>,<吃,0>,<水果,0>,<拍照,0>,<球,1>)

文档d 1: (<我,2>,<喜欢,2>,<打,1>,< dota,1>,< 也,1>,<玩,1>,< LoL,1>,<爱,0>,<吃,0>,<水果,0>,<拍照,0>,<球,0>)

文档d 2:(<我,1>,<喜欢,1>,<打,0>,< dota,0>,< 也,1>,< 玩,0>,< LoL,0>,<爱,1>,<吃,1>,<水果,1>,<拍照,1>,<球,0>)

技术分享

 

相似度计算:

技术分享

技术分享

余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越趋近于0,他们的方向更加一致。相应的相似度也越高, 这就叫"余弦相似性"。

文档d1与q更为相似。

相似度这个概念用的很广,匹配,推荐,聚类都会用到。

以上是关于向量空间模型(VSM)计算文本相似度的主要内容,如果未能解决你的问题,请参考以下文章

Solr相似性算法

文本挖掘——文本特征TFIDF权重计算及文本向量空间VSM表示

如何度量两个词之间的语义相似度

中文短句相似度匹配方法?

潜在语义分析(LSA)

余弦计算相似度理解以及计算