一种Simhash算法的海量文档反作弊技术方法技术

技术编号:17196041 阅读:24 留言:0更新日期:2018-02-03 22:46
本发明专利技术公开了以互联网重复文档反作弊需求为背景,开发设计出Simhash的海量文档反作弊技术,以Simhash算法为文档判重的核心算法为基础对该算法获取文档特征的过程进行改进,将单词意义作为衡量单词权重的一个考量因素;针对64位文档Simhash签名,提供用户维度、全文维度和黑库维度的文档判重服务,并可基于全文和段落两种粒度进行文档相似性比较。

【技术实现步骤摘要】
一种Simhash算法的海量文档反作弊技术方法
本专利技术涉及互联网
,是一种Simhash算法技术。
技术介绍
在这个信息爆炸的时代,网络上的重复文档越来越多,据统计,互联网上的重复网页约占30%-45%;对网络上的文档进行相似度判断,并根据判定结果做相应的处理,例如小子收录、删除等,成为互联网技术发展的一个重要分支,在互联网中,大量相似文档是很常见的现象,大量重复文档小仅会降低产品质量,且对用户小友好,如何避免大量重复或相近文档出现是我们而对的一个难题。
技术实现思路
Simhash算法山Google的Charikar提出,是将一篇文档转化为n位的签名,通过比较签名的相似度来计算原文档的相似度;签名越相近,则文档越相似;因此,整个过程小会涉及到原文档文本内容的两两比较,就无需存储这些海量的文档内容,因此该算法可以推广到数以百亿的文档比较范围;另外算法简单易行,容易理解,但要达到理想的效果还需结介具体的需求处理;Simhash算法是当前主流的近似文本检测算法。Simhash算法的海量文档反作弊技术的设计-高速检索技术设计:将每个64位的签名分为四个部分,若两签名的海明距离小于3,通过抽屉原理可知,则必定有一个部分是相等,因此,可将64位的签名平分为4个部分,每部分16位,将16位的二进制作为key,将含有该16位key的签名作为value存储在redis中;对于一个待比较的签名,均分为4个部分,每个部分作为key在redis中拉取value,再从被拉取出的value中计算海明距离,这种方法能大大缩小海明距离计算的范围。Simhash算法的海量文档反作弊技术的设计-文档特征权值计算:Simhash算法,以文档中出现的单词作为文档的特征,单词的频率作为每个特征的权重;单词的频率,虽然是衡量文档特征的一个重要指标,但是仅仅以频率作为权重,还是会丢失一定量的信息(例如,对于语句,“夏天热”,切分后的结果为,单词“夏天”,频率1,单词“热”,频率1;虽然两个单词的频率均为1,但此句话的核心是夏天,其代表着该句话更多的特征,因此,应该给子该词更大的权重;即从词性的角度来说,名词表征着文档更多的特征;因此,可以将词性作为衡量单词权重的一个因素;规定在词性方而,名词权重最高,动词次之,形容词再次之,其余最低);将词性作为衡量单词权重的一个因素,能够更全而地表征文档的特征,这样所获得的Simhash签名值也更介理,进而提高判断文档相似的准确率。Simhash算法的海量文档反作弊技术的设计-Simhash签名计算技术,文档反作弊技术中文档的Simhash签名计算是其核心过程;本节介绍Simhash签名计算的过程:1、计算总体流程-Simhash签名主要分为如下几步:1)如果请求的参数自接传递的是离散化的文档特征,自接执行第三步;如果请求参数是文档内容,执行第二步;2)获得离散化后的文档特征;3)根据Simhash算法,计算文档签名;2、获取文档特征:Simhash算法以离散化后的文档特征作为基础,计算文档的签名;提取的文档特征,越能表征原文档的内容的含义,生成的签名就越有意义;传统的Simhash以文档中出现的单词和单词频率作为文档特征,会丢失一部分信息,本系统中将单词的词性也作为表征文档特征的一个因素;同时为了提高计算的准确率,本系统中还会对计算过程做一些基本的处理,例如文档预处理等,本系统中,获取文档特征的主要步骤如下:1)对文档进行预处理(可选);2)对预处理后的文档进行分词;3)去停用词(可选);4)统计单词频率,获取单词词性;5)根据Simhash算法所述,计算单词权重;经过以上5步,我们就可以从给定的文档内容,得到离散化后的文档特征,为计算文档Simhash值提供依据;3、其中的第一步,对文档进行预处理是可选的,即各个实例再发送请求的时候,可以根据自身的需求决定,是否需要对文档进行预处理,主要对文档内容按序做如下处理:1)去html标签;2)全角转半角;3)英文字母大写转小写;4)繁体转简体;5)去空格;对文档进行预处理的目标是,尽量剔除文档中一些无关特征或者无意义特征对文档的影响,如果某个实例使用系统服务时,认为文档预处理会丢失文档重要特征,可在请求中配置textnorm参数值,表明此请求小需做预处理;每个实例也可以自己对文档进行预处理后,再向系统发送请求。基于全文的Simhash判重实现:基于全文的Simhash判重,是指文档判重的粒度为整个文档,即根据整个文档的内容生成Simhash签名,然后根据计算Simhash签名的海明距离判断文档的相似性;该种方式,首先,基于文档全文计算出文档的Simhash值,并计算出与待检测文档海明距离为4以内的文档最后,根据请求参数,决定是否需要重新设置被匹配文档的失效时间。基于段落的Simhash判重实现:对文档做基于全文的Simhash判重,其粒度较大,很容易被作弊者绕过,如在原文前后加上一段,或中间串一段文本,都会导致海明距离变大;在计算精度要求比较高的场介,需要更细粒度的签名计算,例如基于段落的签名计算;基于段落的Simhash判重,其与基于全文Simhash判重的小同点是,需要对待处理文档进行分段,然后对每段求Simhash签名。Simhash算法的海量文档反作弊技术的测试结果及分析:1、首先对Simhash判重的准确率进行测试,为了验证Simhash文档相似度计算效果,抽样取了103对文本,计算出文本的64位签名,并比较每对签名的海明距离;2、横坐标为文档ID,206篇文档,103对,纵坐标为每对文档的海明距离;图中海明距离可分三层,第一层为0-4,第二层为5一19,第三层为19以上,通过文档内容分析可得:1)文本全部相同或长文本中I一几个字节相异,这种文本的海明距离一般在4以下;2)样本中有部分文本,内容差异很大,这类文本海明距离比较大;3、样本中有两类文本海明距离一般处于5一19这层,一种为文本部分相同,如文本山两段组成,前一段相同,后一段小同;一种为短文本,十几个汉字,但有一两个相异,接下来对系统的请求量与耗时的关系进行测试,维持系统中存储的数据,1000w个文档小变,小断提高系统每秒的请求数,比较每个请求的耗时时间。请求量耗时关系有如下变化趋势:1)请求频率在2000次/s时,耗时稳定在10ms以内,此时请求数不是系统服务的瓶颈;2)请求频率在6000此/s时,耗时稳定在20ms左右,此时请求数不是服务的瓶颈;3)请求频率超过6000次/s后,耗时显著增长,说明此时请求数成为影响服务的瓶颈;从理论上分析,文档失效时间设置的越长,其在存储系统中存储的时间就越长,存储空间变大,影响查询效率,因此对请求耗时有影响;这也是系统设置对冷热数据进行处理的原因。结合目前在文档反作弊方而的需求,开发了Simhash的海量文档反作弊技术,通过改进的Simhash算法可对外部请求做出实时响应;研究包括新实例注册,实例数据导入,相似文档查找;文档判重可基于用户、全文、黑库维度的判重策略;在粒度上,支持全文和段落粒度的Simhash判重;支持冷热数据的处理;文档反作弊技术建立在海量数据基础上,目前每个实例可以支持2亿文档的规模;另一方而,通过对冷热数据的处理策略,本文档来自技高网...

【技术保护点】
一种Simhash算法的海量文档反作弊技术方法,其特征在于:结合目前在文档反作弊方面的需求,开发设计出Simhash的海量反作弊技术, 经过测试,程序运行稳定,对大规模数据有很高的处理效率,能满足多个实例使用服务,能处理海量文档的需求。

【技术特征摘要】
1.一种Simhash算法的海量文档反作弊技术方法,其特征在于:结合目前在文档反作弊方面的需求,开发设计出Simhash的海量反作弊技术,经过测试,程序运行稳定,对大规模数据有很高的处理效率,能满足多个实例使用服务,能处理海量文档的需求。2.根据权利要求1所述的方法,其特征在于,Simhash算法的海...

【专利技术属性】
技术研发人员:余漫游
申请(专利权)人:长沙有干货网络技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1