最初仅仅考虑到两篇文本的对比,只使用了余弦相似度定理进行简单的计算。后来考虑到这种实现的局限性(不能随意对比任意文档),因此使用python爬虫爬取网上一些文章作为(模拟)自己的对比库。用户可以上传一片word文档和库里面的文档进行对比查重,显示结果为一个小数,值越小重复度越低。
主要使用到的python库:selenium、BeautifulSoup、request,另外需使用time库,在每次爬取一篇之后等待页面刷新。还需考虑当前文章是否显示完全,比如有些页面需要用户点击继续阅读才能显示的内容;可以根据标签id获取到元素之后使用action.click自动点击。将获取到的文章存到指定路径。
其次,使用Java实现分词,然后再使用余弦相似度定理计算相似度。分词我主要使用的是IK-Analyzer。下面是需要导入的依赖:
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
因为是使用的IDEA写的Java代码,导入依赖比较方便。