发明内容
为解决上述问题,本发明的目的在于提供一种文本反垃圾的方法,快速有效过滤文本垃圾。
本发明解决其问题所采用的技术方案是:
一种文本反垃圾的方法,包括当服务器接收到用户发送端发送的文本时,判断该用户发送端是否为信任用户,若为信任用户,则直接将该文本发送至用户接收端,否则,则将该用户发送端发送的文本转换为对应的文本信息指纹与标准垃圾库中存储的文本信息指纹进行对比,以判断该文本是否为垃圾文本,若为垃圾文本,则屏蔽过滤,否则,将该文本发送至对应的用户接收端。
进一步,采用simhash算法将用户发送端发送的文本转换为对应的文本信息指纹。
进一步,所述方法还包括:
所述用户接收端在接收到文本后,若其举报该文本,则根据筛选规则判断该文本是否为可信文本,当其为不可信文本时,则通过simhash算法将该不可信文本转换为对应的文本信息指纹并存储至标准垃圾库,以循环更新标准垃圾库。
进一步,所述筛选规则包括关键词、举报者等级、被举报者等级、该文本被举报次数以及该举报者被举报次数。
进一步,所述simhash算法具体包括:
提前采用大量的样本,计算hash落在每一位上的概率;
对于需要转换的文本,每一次投影仅在它投影到的位上加1,在投影过程结束时,计算每一位上的投影次数与该文本总投影次数的比值,大于采用样本提前计算的对应位概率时则置为1,否则置为0。
进一步,所述将用户发送端发送的文本转换为对应的文本信息指纹与标准垃圾库中存储的文本信息指纹进行对比时,若两者之间的汉明距离小于规定的阈值时,则判定该文本为垃圾文本。
进一步,所述用户接收端设置有白名单,所述服务器接收到用户发送端发送的文本时,判断该发送端是否在用户接收端所设置的白名单当中,若在,则判断该用户发送端是否为信任用户。
本发明的有益效果是:
本发明采用一种文本反垃圾的方法,形成信息指纹的时间和空间复杂度都是常数级,速度更快;整个反垃圾过程是一个用户参与举报的迭代循环自制过程,不需要人工干预,充分降低成本;信息指纹具有一定的模糊抗干扰性,可解决垃圾广告制造者改变部分关键词逃避检测的分词方法缺陷。
具体实施方式
参照图1所示,本发明提供了一种文本反垃圾的方法,包括当服务器接收到用户发送端发送的文本时,判断该用户发送端是否为信任用户,若为信任用户,则直接将该文本发送至用户接收端,否则,则将该用户发送端发送的文本转换为对应的文本信息指纹与标准垃圾库中存储的文本信息指纹进行对比,以判断该文本是否为垃圾文本,若为垃圾文本,则屏蔽过滤,否则,将该文本发送至对应的用户接收端。
当服务端接收到用户发送端向接收端发送的文本时,需要判断该用户是否为信任用户并后续决定是否进行对应的文本过滤,以提高用户之间的通信体验。本发明在所述用户接收端设置有白名单,所述服务器接收到用户发送端发送的文本时,判断该发送端是否在用户接收端所设置的白名单当中,若在,则判断该用户发送端是否为信任用户。
若为信任用户,则可以直接将文本发送至用户接收端。若非信用用户,则需要判断发送的文本是否为垃圾文本,若为垃圾文本,则需要屏蔽过滤。本发明主要是针对游戏过程中的即时聊天,因此,方便快捷是首要目的,为减小计算量,提高即时通信的体验质量,本发明采用将用户发送端发送的文本转换为对应的文本信息指纹与标准垃圾库中存储的文本信息指纹进行对比,以判断该文本是否为垃圾文本。
本发明采用simhash算法将用户发送端发送的文本转换为对应的文本信息指纹。
所述用户接收端在接收到文本后,有可能举报该文本,也可能不举报该文本,若其举报该文本,则根据筛选规则判断该文本是否为不可信文本,当其为不可信文本时,则通过simhash算法将该可信文本转换为对应的文本信息指纹并存储至标准垃圾库,以循环更新标准垃圾库。服务端接收到用户举报的文本时,必须预防有人恶意乱举报,否则可能造成严重后果。因此,必须对文本进行筛选,以判断该用户所举报的内容确实是可信(垃圾)文本,然后才能进行后续的处理。因此,本发明首先通过筛选规则进行判断(是否恶意举报等),当其为可信文本时,则进行后续处理,否则,直接丢弃。为方便筛选,所述筛选规则包括关键词、举报者等级、被举报者等级、该文本被举报次数以及该举报者被举报次数。
信息指纹的形成过程实际上是一个simhash形成的过程,为将文本与标准垃圾库中存储的文本信息指纹进行对比,必须采用simhash算法将该文本转换为对应的文本信息指纹后再将其与标准垃圾库中存储的文本信息指纹进行对比。所述将对应文本转换为对应的文本信息指纹后与标准垃圾库中存储的文本信息指纹进行对比时,若两者之间的汉明距离小于规定的阈值时,则判定该文本为垃圾文本并进行过滤。
标准垃圾库中事先可以包含有可用于对比的标准垃圾文本,这些文本均是以文本信息指纹的方式进行存储。但标准垃圾库并不可能存储所有的标准垃圾文本,因此,需要对标准垃圾库中存储的标准垃圾文本实时更新,正基于此,本发明在所述用户接收端在接收到文本后,若其举报该文本,则根据筛选规则判断该文本是否为可信文本,当其为可信文本时,则通过simhash算法将该可信文本转换为对应的文本信息指纹并存储至标准垃圾库,以循环更新标准垃圾库。
传统的simhash方式,每一次投影时,会对指纹的每一位都做一次加或者减的过程。以256位信息指纹为例,假如投影N次,需要做256*N次计算。而由于即时聊天的复杂性要求,本发明将这个过程进行如下简化:
提前采用大量的样本,计算hash落在每一位上的概率(这里实际上是频率,以AVG代表);
实际使用时,对于需要转换的文本,每一次投影仅在它投影到的位上加1,在投影过程结束时,计算每一位上的投影次数与该文本总投影次数的比值,大于AVG中的对应位概率时则置为1,否则置为0。
以长度为5的为例,于nilsimsa的传统算法不同,本发明不再做窗口平移全组合,仅仅选择长度为5范围内的新组合,形成特征参与投影过程。其使hash次数减少一半以上,同时又保持了所有组合的特征,大大提高了算法效率。
参照图2所示,其为一个文本字符串形成指定宽度为5、指纹长度为256bit的信息指纹的生成过程,其中,round n实质上是以n为基准,与前面最远的4个字符组合的一轮投影过程。在反垃圾领域,改变关键词(包括使用同音字、通假字、偏旁部首组合等)是垃圾制造者用来逃避分词和反垃圾机制的最常用手段,而从图2所形成信息指纹的过程中可以看到,改变部分关键词,对最后的结果影响十分有限,这种模糊适应性对改变部分关键词的垃圾信息仍然有效。
信息指纹具有simhash的局部敏感性。例如,以如下fp代表各文本信息指纹:
the cat sat on the mat àfp1=00110010110000000011110001111110
the cat sat on a mat àfp2=00110010100000000011100001111000
we all scream for ice cream àfp3=00111010101101010110101110011000
则两两之间的汉明距离为(fp1,fp2)=4,(fp1,fp3)=16以及(fp2,fp3))=12。显然,前两句之间更为相似。本发明的垃圾判断过程是一个文本信息指纹之间计算汉明距离的过程。对于一个文本信息指纹,计算它与标准垃圾库中的文本信息指纹两两间的汉明距离,当汉明距离小于一定阈值时,认为它们足够相似,即为垃圾。
有时,用户发送端发送的文本并非垃圾文本,因此,如果再进行过滤,则增加了服务器的处理负担,而且延迟了用户发送端与用户接收端之间的交流,为此,用户接收端可以设置有白名单(白名单的设置即相当于在该白名单内部的人之间可以直接通信),如好友名单,自定义白名单。对于白名单用户发来的信息,可直接放过;否则进入标准垃圾库进行判断。因此,本发明所述服务器接收到用户发送端发送的文本时,判断该发送端是否在用户接收端所设置的白名单当中,若在,则直接将用户发送端发送的文本发送至用户接收端。
本发明可及时有效屏蔽垃圾聊天信息,提高用户体验。本发明利用循环迭代的自动化策略,大大节省了人工封号等操作的成本,同时有效提高了反应效率,能更快地屏蔽新的垃圾信息。信息指纹在存储、传输和比较上都更方便简单,适用于对算法复杂度要求较高的应用场景;比起传统反垃圾技术的分词和贝叶斯方法,信息指纹不再以关键词的形式判断文本特征,而是以一串0或1二进制值记录,这种hash是不可逆的,在安全和保密性上更高;同时信息指纹具备一定程度的模糊抗干扰性,在垃圾制造者改变部分关键词的情况下仍然有效。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。