文本相似度算法

来源:互联网 发布:mac怎么安装jdk 编辑:程序博客网 时间:2024/05/01 14:15
文本相似度算法

1.信息检索中的重要发明TF-IDF
1.1 TF
      Term frequency即关键词词频,是指一篇文章中关键词出现的频率,比如在一篇M个词的文章中有N个该关键词,则
clip_image002(公式1.1-1)为该关键词在这篇文章中的词频。
1.2 IDF
    Inverse document frequency指逆向文本频率,是用于衡量关键词权重的指数,由公式

clip_image004(公式1.2-1)

计算而得,其中D为文章总数,Dw为关键词出现过的文章数。


2.基于空间向量的余弦算法

  算法步骤: 预处理→文本特征项选择→加权→生成向量空间模型后计算余弦。

3.改进算法

3.1隐形语义引标

隐性语义标引(LSI)利用矩阵理论中的“奇异值分解(SVD)”技术,将词频矩阵转化为奇异矩阵:首先从全部的文档集中生成一个文档矩阵,该矩阵的每个分量为整数值,代表某个特定的文档矩阵出现在某个特定文档中次数。然后将该矩阵进行奇异值分解,较小的奇异值被剔除。结果奇异向量以及奇异值矩阵用于将文档向量和查询向量映射到一个子空间中,在该空间中,来自文档矩阵的语义关系被保留。最后,可以通过标准化的内积计算来计算向量之间的夹角余弦相似度,进而根据计算结果比较文本间的相似度。LSI引入的唯一变化就是剔除小的奇异值,因为与小的奇异值相关联的特征实际上在计算相似度时并不相关,将它们包括进来将降低相关性判断的精确度。保留下来的特征是那些对文档向量在m维空间中的位置大有影响的特征。剔除小的奇异值将文档特征空间变为文档概念空间。概念向量之问使用内积的夹角余弦相似度计算比原来基于原文本向量的相似度计算更可靠,这也是使用LSI方法的主要原因所在。LSI的缺点在于它的效果依赖于上下文信息,过于稀疏的语料不能很好的体现其潜在的语义。

3.2基于语义相似度的文本相似度算法

用向量空间模型(VSM)来表示文本在该领域内普遍受到认可,是因为其在知识表示方法上的巨大优势。在该模型中,文本内容被形式化为多维空间中的一个点,通过向量的形式给出,把对文本内容的处理简化为向量空间中向量的运算,使问题的复杂性大为降低。但是它很大的不足之处在于只考虑了词在上下文中的统计特性,假定关键词之间线性无关,而没有考虑词本身的语义信息,因此具有一定的局限性。

结合语义相似度计算后的算法流程如下所示:

clip_image014

图3.2-1基于向量空间的语义相似度算法流程图

其中,语义相关度计算获得相似度矩阵的方向有两个:基于知网HowNet或者基于WordNet。


4.其它算法涉及的相似度衡量方式

4.1基于拼音相似度的汉语模糊搜索算法

不同于传统的以关键词匹配为核心的匹配技术,这里提出基于拼音相似度的编辑距离来衡量汉字字符串之间的相似度。

论文提出三种编辑距离:基于汉字的编辑距离、基于拼音的编辑距离,以及基于拼音改良的编辑距离。

4.2最长公共子序列

(1)将两个字符串分别以行和列组成矩阵。

(2)计算每个节点行列字符是否相同,如相同则为1。

(3)通过找出值为1的最长对角线即可得到最长公共子串。

为进一步提升该算法,我们可以将字符相同节点的值加上左上角(d[i-1,j-1])的值,这样即可获得最大公共子串的长度。如此一来只需以行号和最大值为条件即可截取最大子串。

4.3最小编辑距离算法

(1)狭义编辑距离

设A、B为两个字符串,狭义的编辑距离定义为把A转换成B需要的最少删除(删除A中一个字符)、插入(在A中插入一个字符)和替换(把A中的某个字符替换成另一个字符)的次数,用ED(A,B)来表示。直观来说,两个串互相转换需要经过的步骤越多,差异越大。

(2)步骤

1.对两部分文本进行处理,将所有的非文本字符替换为分段标记“#”

2.较长文本作为基准文本,遍历分段之后的短文本,发现长文本包含短文本子句后在长本文中移除,未发现匹配的字句累加长度。

3.比较剩余文本长度与两段文本长度和,其比值为不匹配比率。

5.总结

衡量文本相似度的几种手段:

(1)最长公共子串(基于词条空间)

(2)最长公共子序列(基于权值空间、词条空间)

(3)最少编辑距离法(基于词条空间)

(4)汉明距离(基于权值空间)

(5)余弦值(基于权值空间)

6.参考来源:

1.《大数据—互联网大规模数据挖掘与分布式处理》

2. http://www.cnblogs.com/liangxiaxu/archive/2012/05/05/2484972.html

    
原创粉丝点击