掌桥专利:专业的专利平台
掌桥专利
首页

一种海量文本实时重复文章检测方法

文献发布时间:2023-06-19 09:35:27


一种海量文本实时重复文章检测方法

技术领域

本发明涉及计算机网络技术领域,特别涉及一种海量文本实时重复文章检测方法。

背景技术

针对内容网站投稿量日益增大,网站存量文章已经达到几千万篇甚至更多。当一篇新文章提交过来,单靠编辑审核,很难判断用户提交的文章是否和历史投稿中有相似的,甚至抄袭的。万一这种抄袭文章被编辑发布出去,不仅仅对原作者造成了一种伤害,而且对网站的声誉也会造成一定的损失,进而会降低用户在网站的投稿意愿,最终形成一种恶性循环。

对于这种问题的处理方式,编辑现在一般采用的是,手动复制文章部分文字,到百度或者谷歌中进行搜索,查看文章重复情况。但是这种方式存在着效率低,准确率差的问题,比如很多热度不怎么高的文章或者新文章还有可能存在不会被搜索引擎所收录的问题。

公开号为CN107992470A的专利,公开了一种基于相似度的文本查重方法,其步骤包括:对待对比文本进行预处理;从文本数据库中筛选出与所述待对比文本的粗粒度相似度大于一相似候选集阈值的所有候选文本并组成相似候选集;以文章为单位,主要通过计算机两篇文章的海明距离来判读相似度,筛选出细粒度相似度超过一相似判定阈值的候选文本,确定其为所述待对比文本的相似文本,实现查重。

传统的simhash解决方案,准确率也可以保证,但是存在查询效率过低的问题。因为如果用户每次提交过来的新文章,都对网站现存的几千万篇文章去循环遍历计算simhash,那么至少也需要几个小时。不方便编辑实时对文章的重复情况进行查看,也就没法全面评估一篇文章的质量。要是真等几个小时结果出来之后,编辑再进行审核,那么就不能给用户一种及时的审核反馈,对用户的积极性也是一种打击。

发明内容

本发明实施例提供了一种海量文本实时重复文章检测方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本发明实施例,提供了一种海量文本实时重复文章检测方法,包括:

S1:在离线状态下,过滤掉已发表文章中的html标签,文章的视频和图片标签,标点符号,只留下纯文本;

S2:计算所述已发表文章的纯文本内容的n位二进制指纹;

S3:对所述n位二进制指纹进行切割,切割为m份二进制指纹;

S4:计算所述二进制指纹md5的值,当做一个redis key,并把所述n位二进制指纹分别放进m个数据集合中;

S5:在线状态下,对提交的文章做所述步骤S1、步骤S2、步骤S3,得到n位二进制指纹,并计算所述提交文章的md5的值;

S6:根据所述提交文章的md5的值,作为redis集合的key,将所述提交文章的n位二进制指纹与所述key对应集合中的发表文章的n位二进制指纹进行异或处理,并求得两篇文章n位二进制指纹的海明距离;

S7:重复执行所述步骤S6,所述海明距离越小说明两篇文章越相似。

优选地,计算所述n位二进制指纹的方法为,python第三方package simhash的Simhash方法。

优选地,所述n位二进制指纹,n=64。

优选地,所述m份二进制指纹,m≥4。

优选地,通过建立所述文章内容的指纹和所述文章id的关系,可以得到与提交文章最相似的是那篇文章。

优选地,根据所述海明距离从小到大排列,并抛弃掉海明距离大于3的历史文章的n位二进制。

本发明实施例提供的技术方案可以包括以下有益效果:

当用户提交文章之后,一分钟之内就可以检测出该文章和历史所有文章的重复率。准确性:Simhash算法本身对于文本重复率的检测准确率相对于其他算法,比如:Minhash算法,文章最长句相似算法等等。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种海量文本实时重复文章检测方法的流程图;

图2是根据一示例性实施例示出的离线步骤的逻辑流程图;

图3是根据一示例性实施例示出的在线步骤的逻辑流程图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

下面结合附图及实施例对本发明做进一步描述:

如图1所示的一种海量文本实时重复文章检测方法,包括,

如图2所示,S1:在离线状态下,过滤掉已发表文章中的html标签,文章的视频和图片标签,标点符号,只留下纯文本;

S2:应用python第三方package simhash的Simhash方法,计算所述已发表文章的纯文本内容的64位二进制指纹;

S3:对所述64位二进制指纹进行切割,切割为4份二进制指纹;

S4:计算所述二进制指纹md5的值,当做一个redis key,并把所述n位二进制指纹分别放进m个数据集合中,建立所述文章内容的指纹和所述文章id的关系;

如图3所示,S5:在线状态下,对提交的文章做所述步骤S1、步骤S2、步骤S3,得到n位二进制指纹,并计算所述提交文章的md5的值;

S6:根据所述提交文章的md5的值,作为redis集合的key,将所述提交文章的n位二进制指纹与所述key对应集合中的发表文章的n位二进制指纹进行异或处理,并求得两篇文章n位二进制指纹的海明距离;

S7:重复执行所述步骤S6,所述海明距离越小说明两篇文章越相似,得到与提交文章最相似的是那篇文章,根据所述海明距离从小到大排列,并抛弃掉海明距离大于3的历史文章的64位二进制。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

相关技术
  • 一种海量文本实时重复文章检测方法
  • 一种基于搜索引擎的海量离线文本实时推荐方法
技术分类

06120112221478