一种敏感词匹配方法及系统的制作方法

文档序号:6521329阅读:205来源:国知局
一种敏感词匹配方法及系统的制作方法
【专利摘要】本发明实施例公开了一种敏感词匹配方法及系统,用于快速匹配敏感词,提高执行效率。本发明实施例先从文字信息中读取第i个字,当第i个字为首字或第i-1个字未在词典树查找到匹配的关键字时,将从词典树的根节点开始查找与第i个字匹配的关键字;当第i-1个字在词典树查找到匹配的关键字,将在第i-1个字所在节点的子节点查找匹配的关键字,如果在子节点没有找到匹配的关键字,再从词典树的根节点开始查找与第i个字匹配的关键字。在根据上述查找方式查找到与第i个字匹配的关键字之后,判断从词典树根节点到第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则替换掉文字信息中匹配的敏感词,若否,则继续查找下一个字。
【专利说明】—种敏感词匹配方法及系统【技术领域】
[0001]本发明涉及互联网【技术领域】,具体涉及一种敏感词匹配方法及系统。
【背景技术】
[0002]微博是微型博客的简称,是新兴起的一类开放互联网社交服务,而敏感词过滤是微博需要解决的问题之一。目前在微博中敏感词的匹配主要将用户发送的内容动态生成正则表达式,然后在敏感词库中查找或替换敏感词。如果敏感词库比较大的时候正则表达式会非常长,执行效率会非常低,且无法处理关键字中混杂特殊字符的方式,也不能统计命中热度。

【发明内容】

[0003]针对上述缺陷,本发明实施例提供了一种敏感词匹配方法及系统,
[0004]本发明第一方面提供一种敏感词匹配方法,包括:
[0005]读取用户发送的文字信息的第i个字,所述i为大于0或小于等于所述文字信息长度的正整数,其中,首次读取所述文字信息的首字,之后,每次读取所述文字信息的下一个字;
[0006]当所述第i个字为首字或所述第i-1个字未在词典树查找到匹配的关键字时,则从所述词典树的根节点开始查找与所述第i个字匹配的关键字;
[0007]当所述第1-1个字在所述词典树查找到匹配的关键字时,在所述第i-1个字所在节点的子节点查找与所述第i个字匹配的关键字,如果在所述第i-1个字所在节点的子节点查找不到匹配的关键字,再从所述词典树的根节点开始查找所述第i个字;
[0008]在查找到与所述第i个字匹配的关键字时,根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的所述敏感词。
[0009]—个实施例中,所述词典树的节点属性isEnd为true或false ;进而所述根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,具体包括:当所述第i个字所在节点属性isEnd为true时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为敏感词;当所述第i个字所在节点属性isEnd为false时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为非敏感词。
[0010]一个实施例中,计算所述文字信息中敏感词被命中的命中热度和个数;其中,所述词典树中属性isEnd为true的节点还设置有权重,所述权重用于表示从所述词典树根节点到该节点对应的关键字组成的敏感词的相对重要程度,进而所述计算所述文字信息中敏感词被命中的命中热度和个数,包括:对所述文字信息中被命中的敏感词的权重求和得到命中热度,并计算敏感词被命中的个数。
[0011]一个实施例中,所述替换文字信息中匹配的所述敏感词,包括:用预设特殊符号替换所述文字信息中匹配的所述敏感词;在所述文字信息被逐个查找和替换匹配的敏感词之后,所述方法还包括:输出用预设特殊符号替换敏感词的文字信息。
[0012]一个实施例中,当有新敏感词时,在所述词典树增加所述新敏感词,并为所述新敏感词的每个关键字设置节点属性isEnd和为节点属性isEnd为true的节点设置权重。
[0013]一个实施例中,当发现所述词典树有冗余分支时,删除所述冗余分支。
[0014]本发明第二方面提供一种敏感词匹配系统,包括:
[0015]读取模块,用于读取用户发送的文字信息的第i个字,所述i为大于0或小于等于所述文字信息长度的正整数,其中,首次读取所述文字信息的首字,之后,每次读取所述文字信息的下一个字;
[0016]匹配模块,用于当所述第i个字为首字或所述第1-1个字未在词典树查找到匹配的关键字时,则从所述词典树的根节点开始查找与所述第i个字匹配的关键字;或者当所述第1-1个字在所述词典树查找到匹配的关键字时,在所述第1-1个字所在节点的子节点查找与所述第i个字匹配的关键字,如果在所述第1-1个字所在节点的子节点查找不到匹配的关键字,再从所述词典树的根节点开始查找所述第i个字;
[0017]替换处理模块,用于在查找到与所述第i个字匹配的关键字时,根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的所述敏感词。
[0018]一个实施例中,所述替换处理模块具体用于:在查找到与所述第i个字匹配的关键字时,当所述第i个字所在节点属性isEnd为true时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为敏感词,替换文字信息中匹配的所述敏感词;当所述第i个字所在节点属性isEnd为false时,则从确定所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为非敏感词。
[0019]一个实施例中,敏感词匹配系统还包括计算模块,用于计算所述文字信息中敏感词被命中的命中热度和个数。
[0020]一个实施例中,所述替换处理模块包括:敏感词替换单元,用于用预设特殊符号替换所述文字信息中匹配的所述敏感词;输出单元,用于在所述文字信息被逐个查找和替换匹配的敏感词之后,输出用预设特殊符号替换敏感词的文字信息。
[0021]一个实施例中,所述读取模块包括:文字读取单元,用于获取用户发送的文字信息;词典树读取单元,用于根据用户信息获取所述用户的词典树。
[0022]一个实施例中,所述敏感词匹配系统还包括:添加模块,用于当有新敏感词时,在所述词典树增加所述新敏感词,并为所述新敏感词的每个关键字设置节点属性isEnd和为节点属性isEnd为true的节点设置权重。
[0023]一个实施例中,所述敏感词匹配系统还包括:删除模块,用于当发现所述词典树有冗余分支时,删除所述冗余分支。
[0024]从以上技术方案可以看出,本发明实施例具有以下优点:
[0025]本发明实施例从文字信息中读取第i个字,当第i个字为首字或者第1-1个字未在词典树查找到匹配的关键字,那么将从词典树的根节点开始查找与所述第i个字匹配的关键字;当第1-1个字在词典树查找到匹配的关键字,那么将在第1-1个字所在节点的子节点查找匹配的关键字,如果在子节点没有找到匹配的关键字,那么再从词典树的根节点开始查找与第i个字匹配的关键字。在根据上述查找方式查找到与第i个字匹配的关键字之后,判断从词典树根节点到第i个字所在节点对应的关键字组成的词是否为敏感词,如果是,则替换掉文字信息中该匹配的敏感词,如果不是,则继续查找下一个字。本发明实施例与现有技术相比,采用词典树算法,能够快速匹配关键字,执行效率高。
【专利附图】

【附图说明】
[0026]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027]图1为本发明一实施例提供的敏感词匹配方法流程示意图;
[0028]图2_a为本发明一实施例提供的词典树示例图;
[0029]图2_b为本发明一实施例提供的敏感词匹配方法工作示意图;
[0030]图3为本发明一实施例提供的敏感词匹配系统基本结构示意图;
[0031]图4_a为本发明另一实施例提供的敏感词匹配系统基本结构示意图;
[0032]图4_b为本发明另一实施例提供的敏感词匹配系统基本结构示意图;
[0033]图5_a为本发明另一实施例提供的敏感词匹配系统基本结构示意图;
[0034]图5_b为本发明另一实施例提供的敏感词匹配系统基本结构示意图;
[0035]图5-c为本发明另一实施例提供的敏感词匹配系统基本结构示意图。
【具体实施方式】
[0036]下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]本发明实施例提供了一种敏感词匹配方法及系统,用于快速匹配关键字,提高工作效率。
[0038]下面将详细介绍本发明实施例:
[0039]如图1所示,一种敏感词匹配方法,可包括:
[0040]步骤S110、读取用户发送的文字信息的第i个字,所述i为大于0或小于等于所述文字信息长度的正整数,其中,首次读取所述文字信息的首字,之后,每次读取所述文字信息的下一个字;
[0041]可以理解的是,例如微博用户在登陆微博后发送一段文字信息,先对该段文字信息进行过滤,也就是敏感词匹配替换。在敏感词匹配过程中,对用户所发送的文字信息进行逐个匹配查找,首次读取文字信息的首字,之后,每次将读取文字信息中的下一个文字。
[0042]具体地,在上述步骤SllO之前还包括:
[0043]Al、获取用户发送的文字信息;
[0044]A2、根据用户信息获取所述用户的词典树。
[0045]可以理解的是,本发明实施例中采用词典树算法,而该词典树是根据租户信息读取租户各自的敏感词词典内容后建立,其中,所建立的词典树的根节点为空节点,根节点的子节点为敏感词的首个关键字,依次类推,叶子节点是敏感词的最后一个关键字,当然,从根节点开始到叶子节点的关键字可以组成多个敏感词。词典树中每一个节点属性isEnd可以是false或true,敏感词的最后一个字对应在词典树的节点的节点属性isEnd设置为true,表示从根节点到该节点的关键字组成的词为敏感词,其中,根节点到该节点的中间节点的isEnd设置为flase。另外,在isEnd为true的节点设置敏感词的权重,该权重表示敏感词在敏感词库中的重要程度。
[0046]其中,敏感词的词典内容可以为文本格式也可以是数据库格式,假设词典内容中具有如下敏感词:
[0047]1、美少女=4;
[0048]2、美国=4 ;
[0049]3、美利坚合众国=5 ;
[0050]4、中国=4;
[0051]5、中国人民=4;
[0052]6、中烟=4。
[0053]在上述6个敏感词表述方式中,左边内容如“美少女”为关键字,右边数字如“4”为关键字的权重。
[0054]将上述敏感词以词典树方式表述,如图2_a所示,其中,“女”、“国”、“民”和“烟”关键字所在节点的节点属性isEnd设置为true,其它节点属性isEnd设置为flase,词典树的根节点root可以不设置属性或者设置为false。同样,根据上述描述,上述“女”、“国”、“民”和“烟”关键字分别为一个敏感词的最后一个字,因此,在这4个字对应的节点上分别设置相应的权重,其中,可以附带在关键字的后面,如女4,表示从根节点到“女”关键字所在节点的关键字组成的词的权重为4。
[0055]步骤S120、当所述第i个字为首字或所述第1-1个字未在词典树查找到匹配的关键字时,转向步骤S150 ;
[0056]步骤S130、当所述第1-1个字在所述词典树查找到匹配的关键字时,转向步骤S150 ;
[0057]步骤S140、在所述第1-1个字所在节点的子节点查找与所述第i个字匹配的关键字,如果在所述第1-1个字所在节点的子节点查找不到匹配的关键字,则转向步骤S150 ;
[0058]步骤S150、从所述词典树的根节点开始查找与所述第i个字匹配的关键字;
[0059]步骤S160、在查找到与所述第i个字匹配的关键字时,根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则转向步骤S170 ;若否,则转向步骤S180 ;
[0060]步骤S170、替换文字信息中匹配的所述敏感词,转向步骤S180 ;
[0061]步骤S180、判断所述第i个字是否为文字信息的最后一个文字,若是,则转向步骤S190 ;若否,则转向步骤SllO ;
[0062]步骤S190、输出替换敏感词后的文字信息。
[0063]其中,从文字信息中读取第i个字后,先判断第i个字是否为首字,如果是首字,那么从根节点开始查找,由于词典树的根节点为空节点,而从根节点的子节点到isEnd为true的节点的关键字组成的词为一个敏感词,那么从根节点开始查找也就是在根节点的子节点查找所述第i个字,如果查找到,那么就根据第i个字所在节点的属性判断该关键字是否也算作一个敏感词,若是,则替换文字信息中该匹配的敏感词,如果不是,则读取文字信息中下一个字。当第i个字不是首字,且之前的第1-1个字没有在词典树中查找到匹配的关键字时,和上述第i个字为首字的情况相似,在词典树根节点的子节点查找该第i个字,在查找到时,同时根据第i个字所在节点的属性判断该关键字组成的词是否为一个敏感词,如果是,则替换文字信息中匹配的词,如果不是,读取文字信息中下一个字。当第1-1个字在词典树中有查找到匹配的关键字,那么将在第1-1个字所在节点的子节点查找第i个字,如果查找到匹配的关键字,那么将判断从根节点的子节点到第i个字的节点的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的敏感词,后继续读取下一个字进行匹配,直到匹配完文字信息中所有文字;如果不是,将在词典树根节点的子节点重新查找与第i个字匹配的关键字,在没有查找到时,再读取文字信息中下一个字,直到匹配完文字信息中所有文字。在匹配结束后,输出替换敏感词后的文字信息。 [0064]进一步地,由于给isEnd为true的节点设置了权重,进而可以根据权重计算敏感词的命中热度,还能计算文字信息中被命中的敏感词个数。具体地,可以计算文字信息中敏感词权重之和作为命中热度。
[0065]进一步地,本发明实施例中可以直接忽略文字信息中的特殊符号,直接读取文字进行匹配查找,支持复杂的敏感词逻辑,比如文字信息中穿插有特殊符号的。其中,特殊符号指的是单位符号、数字序号、标点符号、数字符号、拼音等。
[0066]举例来说,获取用户发送的文字信息“XXX中# ¥%国好XXX”,参照上述图2,在词典树上匹配该段文字信息时,特殊符号“x”、“#”、“Y”和“%”均可直接忽略,首次读取文字信息中的首字“中”,在词典树根节点的子节点上,即词典树的右子树上查找到匹配的关键字“中”,根据关键字“中”所在节点的属性isEnd为false,那么将继续读取下一个文字“国”,在关键字“中”所在节点的子节点查找到匹配的关键字“国”,根据关键字“国”所在节点属性isEnd为true,即说明从根节点的子节点到该节点的关键字组成的词,就“中国”为一个敏感词,且根据关键字“国”字后面的4计算命中热度,由于此时只匹配到“中国”一个敏感词,那么命中热度暂时为4,被命中的敏感词个数也暂时为I。读取文字信息中的下一个字“好”,在关键字“国”所在节点的子节点查找匹配的关键字,没有查找到,然后回到词典树根节点的子节点查找,仍然没有查找到,那么将结束此次匹配查找流程。最后命中热度为
4、被命中敏感词个数为I。
[0067]在匹配了文字信息中的敏感词之后,用特殊符号替换文字信息中的敏感词作为最后的输出结果。例如用特殊符号*替换上述文字信息“XXX中# ¥%国好XXX”,那么输出结
果为 “XXX*# Y%* 好 XXX”。
[0068]可选地,本发明实施例所提供的词典树具备动态增加功能,当租户敏感词的词典内容中有增加新敏感词时,系统将动态在词典树相应位置增加新分支,即增加新敏感词,设置关键字、节点属性isEnd、敏感词的权重。
[0069]可选地,本发明实施例所提供的词典树还具备动态删除功能,当词典树中出现冗余分支时,即将冗余分支删除。所谓冗余分支即在某一分支中,叶子节点isEnd为true,从叶子节点倒序遍历到上一个节点属性为true的节点,那么从该节点之后的所有节点均可删除,也就是该节点的子节点到叶子节点均可删除,避免过多冗余导致整棵词典树过于臃肿。在此所说的删除可以是实际删除,也可以是将节点属性isEnd都更改为false。
[0070]可选地,本发明实施例支持纯文本格式的敏感词匹配,还支持html文本格式的敏感词匹配。
[0071]在本发明实施例中系统采用模块化,可以有利于后续扩展。下面将进一步介绍本发明技术方案,如图2-b所示:
[0072]在启动系统后,加载WordFilterService的int方法进行初始化,在租户中申请注册的用户登录账号后发送文字信息,进而一种敏感词匹配方法,包括:
[0073]B1、获取用户发送的文字信息;
[0074]B2、系统中调用 LoadTenancyContext.LoadTenanct ()获取租户信息;
[0075]其中,一个租户可以有很多用户,可以根据用户的注册信息获知在哪个租户下注册的,从而获取租户用户,租户信息主要是租户中敏感词的词典内容。
[0076]B3、通过 LoadDictContext.LoadWords (String tenancyID)获得当前租户的词典树;
[0077]其中,词典树由租户的词典内容创建,词典内容可以采用文本形式或数据库形式持久保存。
[0078]B4、通过 Word FilterServiceImp.1nsertfford ()动态增加敏感词;
[0079]其中,引用insertWordO动态增加新的敏感词。
[0080]B5、通过 Word FilterServiceImp.editfford()编辑敏感词;
[0081 ] 其中,可以设置增加的敏感词,或对原来的敏感词进行设置。
[0082]B6、通过 Word FilterServiceImp.deletefford()动态删除敏感词;
[0083]B7、通过 Word FilterServiceImp.filterHtml ()文本;
[0084]当文字信息为html 文本格式时,通过 Word FilterServiceImp.filterHtml ()匹配敏感词。
[0085]B8、通过 Word FilterServiceImp.filterText()文本。
[0086]当文字信息为纯文本格式时,通过Word FilterServiceImp.filterText ()匹配敏感词。
[0087]本发明实施例中,根据敏感词创建词典树,词典树每个节点对应一个关键字,每个节点设置有节点属性isEnd,并在节点属性isEnd为true的节点设置敏感词的权重。在匹配敏感词过程中,忽略文字信息中包含的特殊符号,读取文字信息的第i个字,首次是读取文字信息的首字,之后,读取文字信息的下一个字。在第i个字为首字,或者是第1-1个字未在词典树中查找到匹配的关键字时,都将从词典树的根节点开始查找与第i个字匹配的关键字;当第1-1个在词典树中有查找到匹配的关键字时,将在第1-1个字所在节点的子节点查找与第i个字匹配的关键字,如果第1-1个所在节点的子节点没有与第i个字匹配的关键字,那么也将从词典树的根节点开始查找;若是查找到与第i个字匹配的关键字时,通过判断第i个字所在节点的节点属性是否为true,如果是true,则说明从根节点到第i个字所在节点的关键字组成的词为敏感词,那么将用特殊符号替换文字信息中匹配的敏感词,如果第i个字所在节点的节点属性为false,则说明从根节点到第i个字所在节点的关键字组成的词不是一个敏感词,则继续读取文字信息的下一个字进行敏感词匹配。本发明实施例采用词典树算法,可以快速匹配敏感词,执行效率高,同时,在查找过程中,可以直接忽略文字信息中的特殊符号,对敏感词匹配没有造成影响,因而本发明实施例能够匹配复杂敏感词,如文字信息中嵌入特殊符号。另外,由于在词典树中对敏感词设置有权重,可以利用敏感词的权重之和作为敏感词命中热度,计算文字信息中敏感词被命中的命中热度,同时还可以计算敏感词被命中的个数。再者,对词典树进行动态维护,可以动态在词典树上增加新敏感词或删除冗余分支,有效管理词典树。
[0088]如图3所示,本发明实施例还提供一种敏感词匹配系统300,可包括:
[0089]读取模块310,用于读取用户发送的文字信息的第i个字,所述i为大于0或小于等于所述文字信息长度的正整数,其中,首次读取所述文字信息的首字,之后,每次读取所述文字信息的下一个字;
[0090]匹配模块320,用于当所述第i个字为首字或所述第1-1个字未在词典树查找到匹配的关键字时,则从所述词典树的根节点开始查找与所述第i个字匹配的关键字;或者当所述第1-1个字在所述词典树查找到匹配的关键字时,在所述第1-1个字所在节点的子节点查找与所述第i个字匹配的关键字,如果在所述第1-1个字所在节点的子节点查找不到匹配的关键字,再从所述词典树的根节点开始查找所述第i个字;
[0091]替换处理模块330,用于在查找到与所述第i个字匹配的关键字时,根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的所述敏感词。
[0092]具体地,上述替换处理模块330在查找到与所述第i个字匹配的关键字时,当所述第i个字所在节点属性isEnd为true时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为敏感词,替换文字信息中匹配的所述敏感词;当所述第i个字所在节点属性isEnd为false时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为非敏感词。
[0093]其中,本发明实施例中,读取模块310从文字信息中读取需要匹配的字,读取模块310首次文字信息中的首次,之后,读取文字的下一个字;匹配模块3200在确定第i个字是文字信息的首字或者第1-1个字没有在词典树中查找到匹配的关键字时,从词典树的根据点开始查找与第i个字匹配的关键字;在确定第1-1个字在词典树查找到匹配的关键字时,则在第1-1个字所在节点的子节点查找与第i个字匹配的关键字,如果在第1-1个字所在节点没有查找到与第i个字匹配的关键字,那么也将从词典树的根节点开始重新查找第i个字。最后,在查找到与第i个字匹配的关键字时,由替换处理模块330判断第i个字所在节点的节点属性判断从根节点到第i个字所在节点的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的敏感词,采用词典树算法,快速有效匹配敏感词,提高执行效率。
[0094]如图4-a所示,上述读取模块310包括文字读取单元410和词典树读取单元420 ;
[0095]其中,文字读取单元410,用于获取用户发送的文字信息;
[0096]词典树读取单元420,用于根据用户信息获取所述用户的词典树。
[0097]如图4-b所示,上述替换处理模块330包括敏感词替换单元430和输出单元440 ;
[0098]其中,敏感词替换单元430,用于用预设特殊符号替换所述文字信息中匹配的所述敏感词;[0099]输出单元440,用于在所述文字信息被逐个查找和替换匹配的敏感词之后,输出用预设特殊符号替换敏感词的文字信息。
[0100]如图5-a所示,上述敏感词匹配系统300还可以包括计算模块510 ;
[0101]其中,所述计算模块510用于计算所述文字信息中敏感词被命中的命中热度和个数。
[0102]在词典树中每个节点属性isEnd值为false或true,其中,敏感词最后一个字所在节点的节点属性isEnd为true,其它节点属性均为false。在节点属性isEnd为true的节点设置敏感词的权重,在匹配文字信息中的敏感词时,可以利用计算所有匹配的敏感词的权重之和获得命中热度,同时可以计算被命中的敏感词个数。
[0103]如图5-b所示,上述敏感词匹配系统300还可以包括添加模块520:
[0104]其中,添加模块520,用于当有新敏感词时,在所述词典树增加所述新敏感词,并为所述新敏感词的每个关键字设置节点属性isEnd和为节点属性isEnd为true的节点设置权重。
[0105]如图5-c所示,上述敏感词匹配系统还可以包括删除模块530 ;
[0106]其中,删除模块,用于当发现所述词典树有冗余分支时,删除所述冗余分支。
[0107]其中,敏感词匹配系统还包括有添加模块520和删除模块530,整个系统进行模块化设计,易于扩展。添加模块520主要在租户的词典内容中具有新敏感词时,将动态在词典树上增加相应分支,将新敏感词增加到词典树中,并设置新增加的分支的节点属性和新敏感词的权重;删除模块530用于在发现词典树中有用冗余分支时,将冗余分支删除或将冗余分支的节点属性均设置为false,能够简化词典树,避免词典树过于臃肿。
[0108]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0109]以上对本发明所提供的一种敏感词匹配方法及系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种敏感词匹配方法,其特征在于,包括: 读取用户发送的文字信息的第i个字,所述i为大于O或小于等于所述文字信息长度的正整数,其中,首次读取所述文字信息的首字,之后,每次读取所述文字信息的下一个字; 当所述第i个字为首字或所述第1-1个字未在词典树查找到匹配的关键字时,则从所述词典树的根节点开始查找与所述第i个字匹配的关键字; 当所述第i_l个字在所述词典树查找到匹配的关键字时,在所述第i_l个字所在节点的子节点查找与所述第i个字匹配的关键字,如果在所述第i_l个字所在节点的子节点查找不到匹配的关键字,再从所述词典树的根节点开始查找所述第i个字; 在查找到与所述第i个字匹配的关键字时,根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的所述敏感词。
2.根据权利要求1所述的方法,其特征在于,所述词典树的节点属性isEnd为true或false ; 进而所述根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,具体包括: 当所述第i个字所在节点属性isEnd为true时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为敏感词; 当所述第i个字所在节点属性isEnd为false时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为非敏感词。
3.根据权利要求1所述的方法,其特征在于,还包括: 计算所述文字信息中敏感词被命中的命中热度和个数; 其中,所述词典树中属性isEnd为true的节点还设置有权重,所述权重用于表示从所述词典树根节点到该节点对应的关键字组成的敏感词的相对重要程度,进而所述计算所述文字信息中敏感词被命中的命中热度和个数,包括: 对所述文字信息中被命中的敏感词的权重求和得到命中热度,并计算敏感词被命中的个数。
4.根据权利要求1~3任一项所述的方法,其特征在于,在所述读取用户发送的文字信息的第i个字前包括: 获取用户发送的文字信息; 根据用户信息获取所述用户的词典树,所述词典树为根据所述用户信息读取敏感词的词典内容创建,所述词典内容为文本格式或数据库格式。
5.根据权利要求4所述的方法,其特征在于,还包括: 当有新敏感词时,在所述词典树增加所述新敏感词,并为所述新敏感词的每个关键字设置节点属性isEnd和为节点属性isEnd为true的节点设置权重。
6.一种敏感词匹配系统,其特征在于,包括: 读取模块,用于读取用户发送的文字信息的第i个字,所述i为大于O或小于等于所述文字信息长度的正整数,其中,首次读取所述文字信息的首字,之后,每次读取所述文字信息的下一个字;匹配模块,用于当所述第i个字为首字或所述第i_l个字未在词典树查找到匹配的关键字时,则从所述词典树的根节点开始查找与所述第i个字匹配的关键字;或者当所述第1-1个字在所述词典树查找到匹配的关键字时,在所述第i_l个字所在节点的子节点查找与所述第i个字匹配的关键字,如果在所述第1-1个字所在节点的子节点查找不到匹配的关键字,再从所述词典树的根节点开始查找所述第i个字; 替换处理模块,用于在查找到与所述第i个字匹配的关键字时,根据所述第i个字所在节点的节点属性判断从所述词典树的根节点到所述第i个字所在节点对应的关键字组成的词是否为敏感词,若是,则替换文字信息中匹配的所述敏感词。
7.根据权利要求6所述的系统,其特征在于,所述替换处理模块具体用于: 在查找到与所述第i个字匹配的关键字时,当所述第i个字所在节点属性isEnd为true时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为敏感词,替换文字信息中匹配的所述敏感词;当所述第i个字所在节点属性isEnd为false时,则确定从所述词典树的根节点到所述第i个字所在的节点对应的关键字组成的词为非敏感词。
8.根据权利要求6或7所述的系统,其特征在于,还包括: 计算模块,用于计算所述文字信息中敏感词被命中的命中热度和个数。
9.根据权利要求8所述的系统,其特征在于,所述读取模块包括: 文字读取单元,用于获取用户发送的文字信息; 词典树读取单元,用于根据用户信息获`取所述用户的词典树,所述词典树为根据所述用户信息读取敏感词的词典内容创建,所述词典内容为文本格式或数据库格式。
10.根据权利要求9所述的系统,其特征在于,还包括: 添加模块,用于当有新敏感词时,在所述词典树增加所述新敏感词,并为所述新敏感词的每个关键字设置节点属性isEnd和为节点属性isEnd为true的节点设置权重。
【文档编号】G06F17/30GK103617251SQ201310627270
【公开日】2014年3月5日 申请日期:2013年11月28日 优先权日:2013年11月28日
【发明者】王斌 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1