基于分类查找的敏感词识别处理方法

文档序号:6486729阅读:950来源:国知局
基于分类查找的敏感词识别处理方法
【专利摘要】本发明提供了一种基于分类查找的敏感词识别处理方法,通过预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理;从而尽可能的减少了匹配次数,提高了匹配处理效率。
【专利说明】基于分类查找的敏感词识别处理方法
【技术领域】
[0001]本发明涉及计算机通信网络技术和敏感词匹配【技术领域】,具体涉及一种基于分类查找的敏感词识别处理方法。
【背景技术】
[0002]随着计算机通信网络技术的不断发展和进步,基于文本信息的计算机网络服务已经深入到人们生活的各个方面。但是计算机网络服务中的文本信息在给人们带来无障碍交流便利的同时,不可避免地也会散播一些未经证实的消息或不良内容,很多情况下均违反国家法律法规并损害公众利益的言辞会出现在计算机网络文本信息中;为了尽可能的限制这些不良信息的网络传播,越来越多的计算机网络服务中集成了敏感词匹配过滤功能,将不良信息的相关词作为敏感词,以对文本信息进行敏感词匹配和过滤。敏感词匹配技术则是保证计算机网络服务中敏感词匹配过滤功能得以准确实现的一项重要技术。
[0003]目前公知的敏感词匹配技术,通常采用敏感词库中的敏感词向待判定信息全文匹配的方式进行的,具体为:把敏感词库中的所有敏感词依次向待判定信息进行比对,如果敏感词被完全包含在特判定信息中,则认为匹配到敏感词。这样的匹配技术存在的问题是,需要把敏感词库中的每一个敏感词都依次与待判定信息进行从头到尾的匹配尝试,即需要遍历一遍敏感词库以及反复遍历待判定信息进行匹配,过多的匹配次数,使得敏感词匹配的整体耗时长、匹配处理效率低。
[0004]此外,在前述方案的基础上有以下的改进方案。采用逐字匹配的方式进行匹配:在待判定信息中从头开始逐字拿出来与敏感词库中的敏感词的首字进行匹配,如果首字匹配成功,则将此敏感词的后续部分与待判定信息的后续部分进行匹配,如果全部匹配,则认为匹配到敏感词。这样的方案虽然较第一种方案得到的改进,但依旧存在以下问题:虽然待判定信息中不需要像方案一那样遍历(如果首字不命中,可直接开始判断下一个字),但是,在首字命中后仍然需要对首字的后续部分进行反复比较,匹配次数依然较多,敏感词匹配耗时长、匹配处理效率低的问题没有得到本质解决。

【发明内容】

[0005]针对现有技术中存在的上述不足,本发明的目的在于提供一种基于分类查找的敏感词识别处理方法,以提升计算机网络业务中对文本信息进行敏感词匹配的匹配处理效率。
[0006]为实现上述目的,本发明采用了如下技术手段:
基于分类查找的敏感词匹配处理方法,包括如下步骤:
1)根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,将各类别敏感词分别存储于不同的敏感词哈希表中,并分别记录每一类敏感词的字符数特征以及字符组合特征;
2)预设定首字符特征值的计算方式,通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;
3)依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,对待处理文本信息中的每一个匹配起始字符,按如下步骤执行敏感词匹配处理:3a)判断该匹配起始字符的首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;若是,则继续执行步骤3b);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3b)将相应敏感词类别作为该匹配起始字符对应的匹配处理敏感词类别,根据所述匹配处理敏感词类别的字符数特征确定匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,结合所述匹配处理敏感词类别的字符组合特征加以查找判断所述匹配对象词是否与所述匹配处理敏感词类别中的一个敏感词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3c)输出对该匹配起始字符的敏感词匹配处理结果。
[0007]上述的敏感词判断方法中,作为一种优选方案,所述步骤I)具体为:预先将敏感词库中的敏感词分为单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别、三低编码值敏感词类别以及复杂串敏感词类别,分别存储于单低编码值敏感词哈希表、单高编码值敏感词哈希表、双低编码值敏感词哈希表、三低编码值敏感词哈希表和复杂串敏感词哈希表中;分别记录每一类敏感词的字符数特征以及字符组合特征如下:
单低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码不大于OxOOFF ;
单高编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码大于OxOOFF ;
双低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为两个;字符组合特征为:构成敏感词的两个字符的字符编码均不大于OxOOFF ;
三低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为三个;字符组合特征为:构成敏感词的三个字符的字符编码均不大于OxOOFF ;
复杂串敏感词类别中:字符数特征为,每个敏感词的字符数在复杂串长度字典表中记录;所述复杂串长度字典表记录有复杂串敏感词类别中每一个敏感词的哈希特征值及其相应的字符数;所述敏感词的哈希特征值的计算方式为,将敏感词作为一个复杂串,该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,K为复杂串哈希参数;字符组合特征为,敏感词库中除了单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别以及三低编码值敏感词类别之外的其它字符组合。
[0008]上述的敏感词判断方法中,作为一种优选方案,所述首字符特征值的计算方式为,计算字符串首字符的字符编码低8位的值。
[0009]上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码不大于OxOOFF,则直接判定该匹配起始字符自身与单低编码值敏感词类别中一个敏感词相匹配,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
[0010]上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单高编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码大于OxOOFF,则查找单高编码值敏感词类别中是否存在敏感词与该匹配起始字符自身相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
[0011 ] 上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在双低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后一字符的字符编码均不大于OxOOFF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为两个的字符串作为匹配对象词,查找双低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
[0012]上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在三低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后两个字符的字符编码均不大于OxOOFF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为三个的字符串作为匹配对象词,查找三低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
[0013]上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在复杂串敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
将待处理文本信息中以该匹配起始字符直至待处理文本信息最后以字符的整体作为一个复杂串,计算该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,然后在复杂串字典表中查找相同哈希特征值相应的字符数作为匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,查找复杂串敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
[0014]上述的敏感词判断方法中,作为一种优选方案,所述复杂串敏感词类别中,复杂串哈希参数K的取值为:若复杂串的字符数大于三个,且前三个字符的字符编码均不大于OxOOFF,则取复杂串哈希参数K=4 ;若复杂串的字符数大于两个,前两个字符的字符编码均不大于OxOOFF且第三个字符的字符编码均不大于OxOOFF,则取复杂串哈希参数K=3 ;其它复杂串,取复杂串哈希参数Κ=2。[0015]相比于现有技术,本发明具有如下有益效果:
1、本发明基于分类查找的敏感词匹配处理方法中,由于根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理,而排除了对完全不可能匹配成功的敏感词类别进行的匹配操作;从而尽可能的减少了匹配次数,缩短了匹配耗时,提高了匹配处理效率。
[0016]2、本发明基于分类查找的敏感词匹配处理方法中,匹配速度与关键字数量无关,只是和文本信息的长度成正比。
[0017]3、本发明基于分类查找的敏感词匹配处理方法中,结合了哈希表,有助于进一步提高敏感词匹配查找的速率。
[0018]4、本发明基于分类查找的敏感词匹配处理方法的预处理时间短、耗内存小,算法也较为简单。
【专利附图】

【附图说明】
[0019]图1为本发明基于分类查找的敏感词匹配处理方法的流程框图。
【具体实施方式】
[0020]在现有技术中,之所以对文本信息进行敏感词匹配的整体耗时长、匹配处理效率低,其主要原因在于,现有的敏感词匹配处理方案中,因参与敏感词匹配的匹配字符数存在不确定性,为了保证敏感词匹配的准确性,不得不对待处理文本信息中可能的字符串组合方式进行遍历尝试,这就大大增加了被匹配对象的个数;另一方面,没有能够很好的排除完全不可能匹配成功的匹配操作,增加了被匹配对象的个数,进行了较多无效果的匹配操作;从而整体上匹配处理次数过多,处理效率低,耗时长,严重影响了匹配处理效率。
[0021]针对这一问题,本发明提出一种基于分类查找的敏感词识别处理方法;该方法流程如图1所示,具体包括如下步骤:
1)根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,将各类别敏感词分别存储于不同的敏感词哈希表中,并分别记录每一类敏感词的字符数特征以及字符组合特征;
2)预设定首字符特征值的计算方式,通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;
3)依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,对待处理文本信息中的每一个匹配起始字符,按如下步骤执行敏感词匹配处理:
3a)判断该匹配起始字符的首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;若是,则继续执行步骤3b);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3b)将相应敏感词类别作为该匹配起始字符对应的匹配处理敏感词类别,根据所述匹配处理敏感词类别的字符数特征确定匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,结合所述匹配处理敏感词类别的字符组合特征加以查找判断所述匹配对象词是否与所述匹配处理敏感词类别中的一个敏感词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3c)输出对该匹配起始字符的敏感词匹配处理结果。
[0022]可以看到,与现有技术中的检索条件关联提示功能处理方式不同,本发明方法根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理,而排除了对完全不可能匹配成功的敏感词类别进行的匹配操作;从而尽可能的减少了匹配次数,缩短了匹配耗时,提高了匹配处理效率。
[0023]上述的步骤I)和步骤2),实际上都是本发明基于分类查找的敏感词匹配处理方法中的预处理步骤。具体应用实施时,如果所采用的敏感词的字符数特征以及字符组合特征不同,自然其敏感词分类效果也不尽相同。根据概率的特性,组合数越多,匹配到敏感词的概率越低。在中/英文环境下,两个汉字可能有上亿种组合,如果敏感词是10000个长度是2且都不相同的串,那么文本中两个汉字匹配到敏感词的概率是万分之一。假设单英文串都是小写英文字母,复杂串是4个小写英文字母(组合数最少),组合数如表1所示:
表1
【权利要求】
1.基于分类查找的敏感词匹配处理方法,其特征在于,包括如下步骤: 1)根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,将各类别敏感词分别存储于不同的敏感词哈希表中,并分别记录每一类敏感词的字符数特征以及字符组合特征; 2)预设定首字符特征值的计算方式,通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词; 3)依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,对待处理文本信息中的每一个匹配起始字符,按如下步骤执行敏感词匹配处理: 3a)判断该匹配起始字符的首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;若是,则继续执行步骤3b);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c); 3b)将相应敏感词类别作为该匹配起始字符对应的匹配处理敏感词类别,根据所述匹配处理敏感词类别的字符数特征确定匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,结合所述匹配处理敏感词类别的字符组合特征加以查找判断所述匹配对象词是否与所述匹配处理敏感词类别中的一个敏感词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c); 3c)输出对该匹配起始字符的敏感词匹配处理结果。
2.根据权利要求1所述的敏感词判断方法,其特征在于,所述步骤I)具体为:预先将敏感词库中的敏感词分为单`低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别、三低编码值敏感词类别以及复杂串敏感词类别,分别存储于单低编码值敏感词哈希表、单高编码值敏感词哈希表、双低编码值敏感词哈希表、三低编码值敏感词哈希表和复杂串敏感词哈希表中;分别记录每一类敏感词的字符数特征以及字符组合特征如下: 单低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码不大于OxOOFF ; 单高编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码大于OxOOFF ; 双低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为两个;字符组合特征为:构成敏感词的两个字符的字符编码均不大于OxOOFF ; 三低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为三个;字符组合特征为:构成敏感词的三个字符的字符编码均不大于OxOOFF ; 复杂串敏感词类别中:字符数特征为,每个敏感词的字符数在复杂串长度字典表中记录;所述复杂串长度字典表记录有复杂串敏感词类别中每一个敏感词的哈希特征值及其相应的字符数;所述敏感词的哈希特征值的计算方式为,将敏感词作为一个复杂串,该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,K为复杂串哈希参数;字符组合特征为,敏感词库中除了单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别以及三低编码值敏感词类别之外的其它字符组合。
3.根据权利要求2所述的敏感词判断方法,其特征在于,所述首字符特征值的计算方式为,计算字符串首字符的字符编码低8位的值。
4.根据权利要求3所述的敏感词判断方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为: 如果该匹配起始字符的字符编码不大于OxOOFF,则直接判定该匹配起始字符自身与单低编码值敏感词类别中一个敏感词相匹配,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
5.根据权利要求3所述的敏感词判断方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单高编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为: 如果该匹配起始字符的字符编码大于OxOOFF,则查找单高编码值敏感词类别中是否存在敏感词与该匹配起始字符自身相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
6.根据权利要求3所述的敏感词判断方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在双低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为: 如果待处理文本信息中匹配起始字符该及其后一字符的字符编码均不大于OxOOFF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为两个的字符串作为匹配对象词,查找双低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
7.根据权利要求3所述的敏感词`判断方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在三低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为: 如果待处理文本信息中匹配起始字符该及其后两个字符的字符编码均不大于OxOOFF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为三个的字符串作为匹配对象词,查找三低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
8.根据权利要求3所述的敏感词判断方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在复杂串敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为: 将待处理文本信息中以该匹配起始字符直至待处理文本信息最后以字符的整体作为一个复杂串,计算该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,然后在复杂串字典表中查找相同哈希特征值相应的字符数作为匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,查找复杂串敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
9.根据权利要求3或8所述的敏感词判断方法,其特征在于,所述复杂串敏感词类别中,复杂串哈希参数K的取值为:若复杂串的字符数大于三个,且前三个字符的字符编码均不大于OxOOFF,则取复杂串哈希参数K=4 ;若复杂串的字符数大于两个,前两个字符的字符编码均不大于OxOOFF且第三个字符的字符编码均不大于OxOOFF,则取复杂串哈希参数K=3 ;其它复杂串,取复杂串哈希参数`Κ=2。
【文档编号】G06F17/30GK103514238SQ201210228916
【公开日】2014年1月15日 申请日期:2012年6月30日 优先权日:2012年6月30日
【发明者】钱国红, 赵鹏 申请人:重庆新媒农信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1