文本相似度计算

来源:互联网 发布:鼠标性能测试软件 编辑:程序博客网 时间:2024/05/07 01:55

一、简介

文本相似度是进行文本聚类的基础,和传统的结构化数值数据的聚类方法相似,文本聚类是通过计算文本之间的“距离”来表示文本之间的相似度,并产生聚类。文本相似度的常用计算反法有余弦定理。但是文本数据和普通的数据不同,它是一种半结构化的数据,在进行聚类之前必须要对文本数据源进行处理,如分词、向量化表示等,其目的就是使用向量化的数值来表达这些半结构化的文本数据。使其适用于文本分析。

二、TF-IDF算法

在一份给定的文件里,词频(term frequency,TF)指的是某一个给定的词语在该文本中出现的次数(该次数一般会归一化处理,以防止它偏向长文本)。

在给定的文件里,词频

其中表示该词在文件中出现的次数,分母是文件中出现所有字词的总次数之和(即归一化处理)。

逆向文件频数(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再对商求对数。

其中

D文件的总数

包含词语的文件数目,如果该词语不存在语料库中,就会导致除数为0,所以可以加一个扰动

然后:

二、余弦定理

文本1中出现的字:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn

它们在文本1中出现的个数Z1n1,Z1n2,Z1n3……Z1nm

2中出现的字:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn

它们在文本2中出现的个数Z1n1,Z1n2,Z1n3……Z1nm

那么相似度为:


三、Jaccard Similarity

该方法简单,易实现,实际上就是两个集合的交集除以两个集合的并集,所得的就是两个集合的相似度,直观看就是下面的这个图

例如,有world和could两个文本,设k为2通过k-shingle拆分以后,分别变成了[wo,or,rl,ld]和[co,ou,ul,ld]那么他们的特征矩阵就是


通过特征矩阵,很容易看出来,两个文本的相似度是他们公共元素除以所有元素,也就是1/7,也可以把特征矩阵修改一下,列上面存储的是该集合中词语出现的个数,这样可靠性更高一些

0 0
原创粉丝点击