网络文本服务中敏感词过滤的方法技术

技术编号:6880730 阅读:590 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及网络信息过滤技术领域,提供了一种网络文本服务中敏感词过滤的方法。通过独立的线程将敏感词库以嵌套哈希表的方式加载到内存中,通过哈希表的逐级比对使得敏感词过滤速度仅与消息文本长度有关,大大提高了过滤效率,保证了网络服务的性能;此外,由于采用独立的线程进行控制,可选择性地对敏感词库进行更新并实时应用到网络文本服务中,从而进一步地提高了服务性能。

【技术实现步骤摘要】

本专利技术涉及网络信息过滤
,特别是涉及一种。
技术介绍
随着互联网的飞速发展,基于文本的网络服务已经深入到人们生活的各个方面。 由于网络文本服务具有内容丰富、互动性强、实时性强的优势,已取代邮件、短信或电话, 成为人们日常沟通中(尤其是陌生人群中)最主要的交流方式。如即时通讯anstant Messaging,简称IM)、论坛、电子邮件、博客、微博等网络服务作为一种便捷的沟通方式已经渗透到人们工作和生活的各个领域,甚至发展出了相应的网络社区,也成为移动互联网的一项重要业务。但是网络文本服务在给人们带来无障碍交流便利的同时,不可避免地也会散播一些未经证实的消息或不良内容,很多情况下均会出现违反国家法律法规并损害公众利益的言行,为了维护国家法律和公民权益,越来越多的网络文本服务中集成了敏感词过滤功能。常见的敏感词过滤功能通常是采用字典方式,简单地对服务中的文本消息进行关键词匹配,需要反复地提取词语并逐词比对。这种反复执行的敏感词查找操作会严重降低网络服务的性能,影响用户的使用速度;此外,一旦词语提取不当,也会错误屏蔽掉用户信息,降低用户通讯质量。为使得用户的网络服务不因敏感词过滤而降低速度和质量,保护合法用户的正当权益,在信息过滤的同时不影响到绝大多数用户的正常使用,准确有效的敏感词过滤显得尤为重要。
技术实现思路
(一)要解决的技术问题针对现有技术的缺点,本专利技术为了解决现有技术中的敏感词过滤方式会降低网络服务性能的问题,提供了一种,将敏感词库以嵌套哈希表的方式加载到内存中,通过哈希表的逐级比对判断是否出现敏感词,使得敏感词过滤速度仅与消息文本长度有关,大大提高了过滤效率,保证了网络服务的性能。( 二 )技术方案为解决上述技术问题,本专利技术具体采用如下技术方案进行一种,该方法包括步骤Si,将敏感词写入数据库中;S2,在网络文本服务中开辟一个新的线程读取数据库中的敏感词;S3,把敏感词数据以嵌套哈希表的方式载入内存中;S4,所述线程将网络文本服务接收到的用户文本消息与内存中敏感词的嵌套哈希表逐级比较,判断所述文本消息中是否出现了敏感词;若出现敏感词则执行步骤S5,否则跳至步骤S6 ;S5,对包含敏感词的所述文本消息进行处理后结束;S6,正常发送所述文本消息后结束。优选地,步骤Sl中,在数据库中更新敏感词时,记录敏感词更新时间、生效时间、 操作方式以及此次数据库操作时间。优选地,步骤S2中,所述线程根据各敏感词的第一个字建立第一级哈希表。优选地,步骤S3中,以所述第一级哈希为首表,依次读取各敏感词的各个字建立各级哈希表,同时建立各级哈希表之间的连接。优选地,步骤S5中,所述处理具体为当所述文本消息中出现敏感词时,用特殊字符取代敏感词后进行转发、或者抛弃含有敏感词的文本消息并返回发送者一个提示。优选地,步骤S2中,更新敏感词后所述线程再次读取数据库时,只读取所述数据库操作时间大于最后一次读取数据库时间且敏感词生效时间小于当前时间的敏感词,把新增加的敏感词重新插入哈希表中。优选地,所述最后一次读取数据库时间记录在哈希表头中。优选地,所述线程每经过一预定的时间后就再次读取数据库。优选地,数据库更新的同时通知所述线程再次读取数据库。优选地,所述操作方式包括追加、删除或修正。(三)有益效果本专利技术的方法将敏感词库以嵌套哈希表的方式加载到内存中,通过哈希表的逐级比对使得敏感词过滤速度仅与消息文本长度有关,大大提高了过滤效率,保证了网络服务的性能;此外,由于采用独立的线程进行控制,可选择性地对敏感词库进行更新并实时应用到网络文本服务中,从而进一步地提高了服务性能。附图说明图1为本专利技术中敏感词过滤的方法流程图。 具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如即时通讯(IM)服务等的网络文本服务为网络用户提供了实时高效的信息交互能力,其实时性和交互能力对用户来说是最重要的性能。然而,现有的敏感词查找方式通常会造成各种网络服务速度的降低,同时一旦更新敏感词库需要重新启动相应的网络服务, 严重影响了用户的使用。本专利技术提供了一种,有效地提高了敏感词过滤效率,同时可支持敏感词库的实时更新。首先参见图1,在本专利技术的方法中,首先将敏感词写入数据库中;随后在网络文本服务中开辟一个新的线程读取数据库中的敏感词;再把敏感词数据以嵌套哈希表的方式载入内存中;然后,所述线程将网络文本服务接收到的用户文本消息与内存中敏感词的嵌套哈希表逐级比较,判断所述文本消息中是否出现了敏感词;若出现敏感词则对包含敏感词的所述文本消息进行处理后结束方法;否则正常发送所述文本消息后结束方法。具体地,本专利技术的方法各步骤可进一步采用如下方式实现1、管理员在数据库中录入或更新敏感词,记录敏感词更新时间、生效时间、操作方式(追加、删除、修正)以及此次数据库操作时间。2、网络文本服务中新建一个独立的线程,读取数据库,建立第一级哈希表,第一级哈希表哈希的关键字是敏感词的第一个字,如果敏感词的第一个字有重复的,也只做成一个哈希表,同时记录该表被几个词共用。3、把敏感词库以哈希嵌套哈希的方式加载到内存。以第一级哈希为首表,读取敏感词的第二个字,建立第二级哈希表,重复的字同样只用一个表并记录重复的次数;同样第三个字建立第三级哈希表,依次类推直至最长敏感词的最后一个字。如果敏感词的最大长度为n,则哈希表最多会有η级结构,横向的η级是敏感词的最大长度,原则上没有限制,但实际应用中一个敏感词的长度一般不会超过64个字符,可以根据实际情况动态配置横向η 的大小。同时每一级哈希表中最多包括m项内容,代表当前生效的敏感词中在当前位置可能出现的字总体数量(重复字的不包含在内),该数量一般会控制在千万级别以内。建立各级哈希表之间的连接。4、敏感词的比对。当服务端收到用户发出的文本消息时,首先把文本与第一级哈希词比较,如果没找到则移至下一个文本字继续在第一级哈希中寻找;如果找到了则在第二级哈希中寻找下一个文本字,以此类推直至找出文本中的全部敏感词。因为哈希的复杂度为0(1),所以本专利技术方法的复杂度最大为len(text);只与输入的文本长度有关。5、对于文本中出现的敏感词需要根据实际需求做出处理,实际情况中可用特殊字符取代敏感词而不影响后续内容的转发,或者抛弃含有该敏感词的文本并返回发送者一个提示。游戏程序可采用前一种方式,对即时聊天、有影响力的论坛等可采用后一种方式。6、若文本中未出现敏感词则正常发送其内容。经过上述处理后本次方法结束,线程等待再次收到文本消息后的再次处理,或等待合适的时机进行敏感词的更新。更进一步地,本专利技术还可以在不影响网络服务的情况下实时更新敏感词库,具体地,采用如下方式实现在hash表头中记录最后一次读取数据库(读取敏感词加载到内存哈希表)的时间,经过规定时间线程再次读取数据库中的敏感词时,只需读取数据库操作时间大于最后一次读取数据库时间且敏感词生效时间小于当前时间的敏感词即可,这样就可以只读有变化的敏感词,从而提高服务的性能。采用本专利技术的方本文档来自技高网...

【技术保护点】
1.一种网络文本服务中敏感词过滤的方法,其特征在于,所述方法包括步骤:S1,将敏感词写入数据库中;S2,在网络文本服务中开辟一个新的线程读取数据库中的敏感词;S3,把敏感词数据以嵌套哈希表的方式载入内存中;S4,所述线程将网络文本服务接收到的用户文本消息与内存中敏感词的嵌套哈希表逐级比较,判断所述文本消息中是否出现了敏感词;若出现敏感词则执行步骤S5,否则跳至步骤S6;S5,对包含敏感词的所述文本消息进行处理后结束;S6,正常发送所述文本消息后结束。

【技术特征摘要】

【专利技术属性】
技术研发人员:张宁
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:11

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

1