使用统计学检测相似文章

引言

今天重温经典著作《黑客与画家》,书中防止垃圾邮件的一种方法一章中介绍了作者识别垃圾邮件的方法不是通过直觉上的特征识别,而是转向使用统计学方法(贝叶斯判断)的过程。我突然意识到和两个月之前解决一个需求的方案有异曲同工之处。

需求

团队编辑人员的工作是收集网上最新的资讯录入到公司的平台上,小编们发现各平台发布的资讯有可能会重复(换了个标题或改了些内容)。由于每天要录入的文章很多且每个小编都负责各版块,经常会录入重复的文章。

思路

我当时脑洞大开地想到可以统计每篇文章中词频出现最多的top100单词,然后比较每篇文章top100的词的重复个数来检测是否是相似的文章。

分词

对录入db的每篇文章去噪后使用SCWS中文分词引擎先分好词,统计每个单词出现的次数,排好序,将出现次数最多的top100(测试发现100个已经足够用了)单词入库。

相似度检测

对新录的文章先分词,得到top100词,然后和db的每篇文章的top100词比较(db取数据可能有瓶颈,可以考虑用缓存),计算(可以使用多线程)重复词出现的比例换算出相应的相似度(%)。功能上线两个月,除了可爱的小编偶尔撒撒娇抱怨下速度,其它妥妥的,给自己点个赞。

启发

发散自己的思维,构建自己的知识体系,扩充知识面。