文章相似度检测工具(一种简单高效的算法)
每年六月,都是一个毕业季。每个大学生不仅要参加论文答辩,还要提交优质的论文。但什么样的论文才能被认为是优质的呢?最基本的一个要求就是查重率不能超过30%(这个每个学校可能要求不一样,有的是20%)。那么问题来了,我们的论文在知网下是怎么计算出查重率的呢?其实查重率最重要的是计算两篇文章的相似度。
文本相似度
文本相似度计算在信息检索、数据挖掘、机器翻译、文档复制检测等领域有着广泛应用。例如舆论控制,假设你开发了一个微博网站,并且已经把世界上骂人的句子都已经收录进了一个数据库,那么当一个用户发微博时会先跟骂人句子的数据库进行比较,如果符合里面的句子就不让用户发出去。
基本算法–余弦相似度
- 使用TF-IDF算法,找出两篇文章的关键词;
- 每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使用相对词频);
- 生成两篇文章各自的词频向量;
- 计算两个向量的余弦相似度,值越大就表示越相似。
对于TF-IDF算法,我在之前的文章介绍过,有需要的可以去翻阅。这篇文章主要详细讲述余弦相似度算法。
假设向量a、b的坐标分别为(x1,y1)、(x2,y2) 。则:
设向量 A = (A1,A2,…,An),B = (B1,B2,…,Bn) 。推广到多维,数学家已经帮我们证明了,所以你只要记住下面的公式:
简单来说可以写成下面的式子:
举一个具体例子,我们先从句子开始:
句子A:我喜欢看电视,不喜欢看电影。
句子B:我不喜欢看电视,也不喜欢看电影。
第一步:分词
句子A:我/喜欢/看/电视,不/喜欢/看/电影。
句子B:我/不/喜欢/看/电视,也/不/喜欢/看/电影。
第二步:列出所有的词
我,喜欢,看,电视,电影,不,也
第三步:计算词频
句子A:我 1,喜欢 2,看 2,电视 1,电影 1,不 1,也 0
句子B:我 1,喜欢 2,看 2,电视 1,电影 1,不 2,也 1
第四步:写出词频向量
句子A:[1, 2, 2, 1, 1, 1, 0]
句子B:[1, 2, 2, 1, 1, 2, 1]
第五步:计算余弦值
余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫”余弦相似性”。
简单来说上面计算出的值代表两个句子大概九成相似,越接近1就越相似。
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/193918.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除