CN103514238B - 基于分类查找的敏感词识别处理方法 - Google Patents
基于分类查找的敏感词识别处理方法 Download PDFInfo
- Publication number
- CN103514238B CN103514238B CN201210228916.3A CN201210228916A CN103514238B CN 103514238 B CN103514238 B CN 103514238B CN 201210228916 A CN201210228916 A CN 201210228916A CN 103514238 B CN103514238 B CN 103514238B
- Authority
- CN
- China
- Prior art keywords
- character
- matching
- sensitive word
- word
- sensitive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
Abstract
本发明提供了一种基于分类查找的敏感词匹配处理方法,通过预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理;从而尽可能的减少了匹配次数,提高了匹配处理效率。
Description
技术领域
本发明涉及计算机通信网络技术和敏感词匹配技术领域,具体涉及一种基于分类查找的敏感词识别处理方法。
背景技术
随着计算机通信网络技术的不断发展和进步,基于文本信息的计算机网络服务已经深入到人们生活的各个方面。但是计算机网络服务中的文本信息在给人们带来无障碍交流便利的同时,不可避免地也会散播一些未经证实的消息或不良内容,很多情况下均违反国家法律法规并损害公众利益的言辞会出现在计算机网络文本信息中;为了尽可能的限制这些不良信息的网络传播,越来越多的计算机网络服务中集成了敏感词匹配过滤功能,将不良信息的相关词作为敏感词,以对文本信息进行敏感词匹配和过滤。敏感词匹配技术则是保证计算机网络服务中敏感词匹配过滤功能得以准确实现的一项重要技术。
目前公知的敏感词匹配技术,通常采用敏感词库中的敏感词向待判定信息全文匹配的方式进行的,具体为:把敏感词库中的所有敏感词依次向待判定信息进行比对,如果敏感词被完全包含在特判定信息中,则认为匹配到敏感词。这样的匹配技术存在的问题是,需要把敏感词库中的每一个敏感词都依次与待判定信息进行从头到尾的匹配尝试,即需要遍历一遍敏感词库以及反复遍历待判定信息进行匹配,过多的匹配次数,使得敏感词匹配的整体耗时长、匹配处理效率低。
此外,在前述方案的基础上有以下的改进方案。采用逐字匹配的方式进行匹配:在待判定信息中从头开始逐字拿出来与敏感词库中的敏感词的首字进行匹配,如果首字匹配成功,则将此敏感词的后续部分与待判定信息的后续部分进行匹配,如果全部匹配,则认为匹配到敏感词。这样的方案虽然较第一种方案得到的改进,但依旧存在以下问题:虽然待判定信息中不需要像方案一那样遍历(如果首字不命中,可直接开始判断下一个字),但是,在首字命中后仍然需要对首字的后续部分进行反复比较,匹配次数依然较多,敏感词匹配耗时长、匹配处理效率低的问题没有得到本质解决。
发明内容
针对现有技术中存在的上述不足,本发明的目的在于提供一种基于分类查找的敏感词识别处理方法,以提升计算机网络业务中对文本信息进行敏感词匹配的匹配处理效率。
为实现上述目的,本发明采用了如下技术手段:
基于分类查找的敏感词匹配处理方法,包括如下步骤:
1)根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,将各类别敏感词分别存储于不同的敏感词哈希表中,并分别记录每一类敏感词的字符数特征以及字符组合特征;
2)预设定首字符特征值的计算方式,通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;
3)依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,对待处理文本信息中的每一个匹配起始字符,按如下步骤执行敏感词匹配处理:
3a)判断该匹配起始字符的首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;若是,则继续执行步骤3b);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3b)将相应敏感词类别作为该匹配起始字符对应的匹配处理敏感词类别,根据所述匹配处理敏感词类别的字符数特征确定匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,结合所述匹配处理敏感词类别的字符组合特征加以查找判断所述匹配对象词是否与所述匹配处理敏感词类别中的一个敏感词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3c)输出对该匹配起始字符的敏感词匹配处理结果。
上述的敏感词判断方法中,作为一种优选方案,所述步骤1)具体为:预先将敏感词库中的敏感词分为单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别、三低编码值敏感词类别以及复杂串敏感词类别,分别存储于单低编码值敏感词哈希表、单高编码值敏感词哈希表、双低编码值敏感词哈希表、三低编码值敏感词哈希表和复杂串敏感词哈希表中;分别记录每一类敏感词的字符数特征以及字符组合特征如下:
单低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码不大于Ox00FF;
单高编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码大于Ox00FF;
双低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为两个;字符组合特征为:构成敏感词的两个字符的字符编码均不大于Ox00FF;
三低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为三个;字符组合特征为:构成敏感词的三个字符的字符编码均不大于Ox00FF;
复杂串敏感词类别中:字符数特征为,每个敏感词的字符数在复杂串长度字典表中记录;所述复杂串长度字典表记录有复杂串敏感词类别中每一个敏感词的哈希特征值及其相应的字符数;所述敏感词的哈希特征值的计算方式为,将敏感词作为一个复杂串,该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,K为复杂串哈希参数;字符组合特征为,敏感词库中除了单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别以及三低编码值敏感词类别之外的其它字符组合。
上述的敏感词判断方法中,作为一种优选方案,所述首字符特征值的计算方式为,计算字符串首字符的字符编码低8位的值。
上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码不大于Ox00FF,则直接判定该匹配起始字符自身与单低编码值敏感词类别中一个敏感词相匹配,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单高编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码大于Ox00FF,则查找单高编码值敏感词类别中是否存在敏感词与该匹配起始字符自身相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在双低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后一字符的字符编码均不大于Ox00FF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为两个的字符串作为匹配对象词,查找双低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在三低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后两个字符的字符编码均不大于Ox00FF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为三个的字符串作为匹配对象词,查找三低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
上述的敏感词判断方法中,作为一种优选方案,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在复杂串敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
将待处理文本信息中以该匹配起始字符直至待处理文本信息最后以字符的整体作为一个复杂串,计算该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,然后在复杂串字典表中查找相同哈希特征值相应的字符数作为匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,查找复杂串敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
上述的敏感词判断方法中,作为一种优选方案,所述复杂串敏感词类别中,复杂串哈希参数K的取值为:若复杂串的字符数大于三个,且前三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=4;若复杂串的字符数大于两个,前两个字符的字符编码均不大于Ox00FF且第三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=3;其它复杂串,取复杂串哈希参数K=2。
相比于现有技术,本发明具有如下有益效果:
1、本发明基于分类查找的敏感词匹配处理方法中,由于根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理,而排除了对完全不可能匹配成功的敏感词类别进行的匹配操作;从而尽可能的减少了匹配次数,缩短了匹配耗时,提高了匹配处理效率。
2、本发明基于分类查找的敏感词匹配处理方法中,匹配速度与关键字数量无关,只是和文本信息的长度成正比。
3、本发明基于分类查找的敏感词匹配处理方法中,结合了哈希表,有助于进一步提高敏感词匹配查找的速率。
4、本发明基于分类查找的敏感词匹配处理方法的预处理时间短、耗内存小,算法也较为简单。
附图说明
图1为本发明基于分类查找的敏感词匹配处理方法的流程框图。
具体实施方式
在现有技术中,之所以对文本信息进行敏感词匹配的整体耗时长、匹配处理效率低,其主要原因在于,现有的敏感词匹配处理方案中,因参与敏感词匹配的匹配字符数存在不确定性,为了保证敏感词匹配的准确性,不得不对待处理文本信息中可能的字符串组合方式进行遍历尝试,这就大大增加了被匹配对象的个数;另一方面,没有能够很好的排除完全不可能匹配成功的匹配操作,增加了被匹配对象的个数,进行了较多无效果的匹配操作;从而整体上匹配处理次数过多,处理效率低,耗时长,严重影响了匹配处理效率。
针对这一问题,本发明提出一种基于分类查找的敏感词识别处理方法;该方法流程如图1所示,具体包括如下步骤:
1)根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,将各类别敏感词分别存储于不同的敏感词哈希表中,并分别记录每一类敏感词的字符数特征以及字符组合特征;
2)预设定首字符特征值的计算方式,通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;
3)依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,对待处理文本信息中的每一个匹配起始字符,按如下步骤执行敏感词匹配处理:
3a)判断该匹配起始字符的首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;若是,则继续执行步骤3b);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3b)将相应敏感词类别作为该匹配起始字符对应的匹配处理敏感词类别,根据所述匹配处理敏感词类别的字符数特征确定匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,结合所述匹配处理敏感词类别的字符组合特征加以查找判断所述匹配对象词是否与所述匹配处理敏感词类别中的一个敏感词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3c)输出对该匹配起始字符的敏感词匹配处理结果。
可以看到,与现有技术中的检索条件关联提示功能处理方式不同,本发明方法根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理,而排除了对完全不可能匹配成功的敏感词类别进行的匹配操作;从而尽可能的减少了匹配次数,缩短了匹配耗时,提高了匹配处理效率。
上述的步骤1)和步骤2),实际上都是本发明基于分类查找的敏感词匹配处理方法中的预处理步骤。具体应用实施时,如果所采用的敏感词的字符数特征以及字符组合特征不同,自然其敏感词分类效果也不尽相同。根据概率的特性,组合数越多,匹配到敏感词的概率越低。在中/英文环境下,两个汉字可能有上亿种组合,如果敏感词是10000个长度是2且都不相同的串,那么文本中两个汉字匹配到敏感词的概率是万分之一。假设单英文串都是小写英文字母,复杂串是4个小写英文字母(组合数最少),组合数如表1所示:
表1
名称 | 最少组合数 | 概率 |
单英文串 | 26 | 1/26 |
双英文串 | 676 | 1/676 |
三英文串 | 17576 | 1/17576 |
单中文串 | 20000 | 1/20000 |
复杂串 | 456976 | 1/456976 |
从上表可以看出,复杂串的概率是很低的;在敏感词中,大部分敏感词都是复杂串,非复杂串很少;在计算机网络文本信息中,复杂串出现的概率低,而非复杂串出现的概率高。因此,根据上述的这些特点,本发明提出了一种优选的分类方案:
预先将敏感词库中的敏感词分为单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别、三低编码值敏感词类别以及复杂串敏感词类别,分别存储于单低编码值敏感词哈希表、单高编码值敏感词哈希表、双低编码值敏感词哈希表、三低编码值敏感词哈希表和复杂串敏感词哈希表中;分别记录每一类敏感词的字符数特征以及字符组合特征如下:
单低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码不大于Ox00FF;
单高编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码大于Ox00FF;
双低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为两个;字符组合特征为:构成敏感词的两个字符的字符编码均不大于Ox00FF;
三低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为三个;字符组合特征为:构成敏感词的三个字符的字符编码均不大于Ox00FF;
复杂串敏感词类别中:字符数特征为,每个敏感词的字符数在复杂串长度字典表中记录;所述复杂串长度字典表记录有复杂串敏感词类别中每一个敏感词的哈希特征值及其相应的字符数;所述敏感词的哈希特征值的计算方式为,将敏感词作为一个复杂串,该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,K为复杂串哈希参数;字符组合特征为,敏感词库中除了单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别以及三低编码值敏感词类别之外的其它字符组合。
由此进行分类,一方面便于记录各种信息,另一方面在分类数量、分类方式上也趋于平衡,为匹配处理效率提供了较好的基础保证;在一方面,将字符的字符编码作为一种分类特征信息使用,不仅计算机处理迅速,也不需要再额外编程自定义,对于计算机而言,应用处理起来十分的方便。此外,首字符特征值的计算方式为,计算字符串首字符的字符编码低8位的值,这样操作,也是基于与上述分类方式相匹配而考虑的,并且字符的字符编码识别和计算,也不需要再额外编程自定义其他的字符特征值参数。
至于通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词,这一工作在对敏感词进行分类的时候就可以操作。例如,按如下方式进行敏感词分类预处理:
1)取当前待分类敏感词首字符的低8位,以此值作为索引在单英文数组中找到对应的项;
2)如果当前待分类敏感词是单字符、字符编码不大于Ox00FF,将此项的记录标记“是否可能包含单低编码值敏感词类别”设置为真;这里的项指的是:以该敏感词首字符低8位(转换为10进制数字)为下标在DistributionArry找到对应的数组成员项,则将该数组成员项的“是否包含单英文串”属性设置为“真”(True);单低编码值敏感词类别比较特殊,第8位的字符编码的就是DistrubitionArry数组对应的下标,故不需将该单字符敏感词再插入单低编码值敏感词哈希表(DistributionArray)中;
3)如果当前待分类敏感词是双字符、两个字符编码均不大于Ox00FF,则将此项的记录标记“是否可能包含双低编码值敏感词类别”设置为真,并将当前敏感词插入到双低编码值敏感词哈希表(DoubleEnHash)中;
4)如果当前待分类敏感词是三字符、三个字符编码均不大于Ox00FF,则将此项的记录标记“是否可能包含三低编码值敏感词类别”设置为真,并将当前待分类敏感词插入到三低编码值敏感词哈希表(ThreeEnHash)中;
5)如果当前待分类敏感词是单字符、字符编码大于Ox00FF,则将此项的记录标记“是否可能包含单高编码值敏感词类别”设置为真,并将当前待分类敏感词插入到单高编码值敏感词哈希表(SingleCnHash)中;
6)如果当前待分类敏感词是复杂串,将此项的记录标记“是否可能包含复杂串敏感词类别”设置为真,将此敏感词插入到复杂串敏感词哈希表(ComplexHash)中,并做如下操作:获取当前待分类敏感词的字符数,计算当前待分类敏感词的哈希特征值,将此敏感词的字符数插入到复杂串长度字典表(ComplexHashLenDic)中key为该哈希特征值的项中。即在复杂串长度字典表中插入一个新的项,插入的新的项的Key为前面计算出的哈希特征值,Value为该复杂串的字符数。
计算哈希特征值的处理中,复杂串哈希参数K的取值采用如下的动态赋值方式:若复杂串的字符数大于三个,且前三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=4;若复杂串的字符数大于两个,前两个字符的字符编码均不大于Ox00FF且第三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=3;其它复杂串,取复杂串哈希参数K=2。这样一方面可以尽可能避免出现相同的哈希特征值,使得复杂串长度字典表中的信息分辨率得到保证。
例如:在预处理敏感词“hi”时,由于其首字符’h’的低8位为二进制“01101000”,转换成十进制为104,找到DistributionArry[104]数组成员。由于该敏感词属于双英文串,所以将DistributionArry[104]的“是否可能包含双低编码值敏感词类别”设置为true,同时在DoubleEnHash中添加敏感词“hi”。
在匹配串的时候,当发现这串首字符的字符编码低8位在DistributionArray中的“是否可能包含复杂串敏感词类别”设置为真时,只能说明这个串有包含敏感词的可能性,是否真的包含敏感词,还需后续进一步匹配判定。
单低编码值敏感词类别中的一个项还可能具有多个属性,例如既是“是否可能包含单高编码值敏感词类别”设置为真,同时“是否可能包含复杂串敏感词类别”设置也为真,这样在敏感词匹配阶段需要对该项各个值为真的属性检查是否有匹配的敏感词,例如对于“是否可能包含单高编码值敏感词类别”的属性检查是否有匹配的单中文串敏感词,对于“是否可能包含复杂串敏感词类别”的属性也检查是否有匹配的复杂串敏感词。
在本发明方法的步骤3),是对待处理文本信息进行敏感词匹配处理的阶段,其具体操作是,依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,首次取出的是待处理文本信息的首字符作为匹配起始字符;之后,每次取出特吃力文本信息中的下一个字作为当前的匹配起始字符。由于每一次取的匹配起始字符不同,因此,具体处理操作存在多种不同的可能性。
①若步骤3a)中判断该匹配起始字符的首字符特征值在单低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码不大于Ox00FF,则直接判定该匹配起始字符自身与单低编码值敏感词类别中一个敏感词相匹配,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
②若步骤3a)中判断该匹配起始字符的首字符特征值在单高编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码大于Ox00FF,则查找单高编码值敏感词类别中是否存在敏感词与该匹配起始字符自身相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
③若步骤3a)中判断该匹配起始字符的首字符特征值在双低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后一字符的字符编码均不大于Ox00FF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为两个的字符串作为匹配对象词,查找双低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
④若步骤3a)中判断该匹配起始字符的首字符特征值在三低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后两个字符的字符编码均不大于Ox00FF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为三个的字符串作为匹配对象词,查找三低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
⑤若步骤3a)中判断该匹配起始字符的首字符特征值在复杂串敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
将待处理文本信息中以该匹配起始字符直至待处理文本信息最后以字符的整体作为一个复杂串,计算该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,然后在复杂串字典表中查找相同哈希特征值相应的字符数作为匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,查找复杂串敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
其中复杂串哈希参数K的动态取值方式依然与前述方式相同:若复杂串的字符数大于三个,且前三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=4;若复杂串的字符数大于两个,前两个字符的字符编码均不大于Ox00FF且第三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=3;其它复杂串,取复杂串哈希参数K=2。
例如:在匹配待测文本信息“hi”时,首先取首字符“h”的低8位(转换成数字为104),则查找DistributionArray数组的DistributionArray[104]项,得知该项的“是否可能包含双低编码值敏感词类别”设置为true,且待匹配的文本串“hi”本身就是双英文串,故从DoubleEnHash中查找该Hash表是否包含字符串“hi”,由于DoubleEnHash包含双英文串敏感词“hi”,故待匹配的串“hi”含敏感词。
综上所述,可以看到,本发明基于分类查找的敏感词匹配处理方法中,由于根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,并分别记录了每一类敏感词的字符数特征以及字符组合特征,并且通过统计记录了每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;在后续对待处理文本信息的敏感词匹配处理过程中,就利用此前记录的这些信息:一方面有效确认了将待处理文本信息中应当参与敏感词匹配的匹配字符数N,避免了因将待处理文本信息中匹配字符数不确定而对待处理文本信息中可能的字符串组合方式进行遍历尝试;另一方面还成功的定位到更有可能匹配成功的敏感词类别中进行敏感词匹配处理,而排除了对完全不可能匹配成功的敏感词类别进行的匹配操作;从而尽可能的减少了匹配次数,缩短了匹配耗时,提高了匹配处理效率。本发明基于分类查找的敏感词匹配处理方法中,匹配速度与关键字数量无关,只是和文本信息的长度成正比;并且,结合了哈希表,有助于进一步提高敏感词匹配查找的速率,而且与字典树的预处理相比,哈希表的预处理时间短、耗内存小。整体而言,本发明方法的算法也较为简单,容易被泵领域技术人员所掌握。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.基于分类查找的敏感词匹配处理方法,其特征在于,包括如下步骤:
1)根据敏感词的字符数特征以及字符组合特征,预先将敏感词库中的敏感词分为数个类别,将各类别敏感词分别存储于不同的敏感词哈希表中,并分别记录每一类敏感词的字符数特征以及字符组合特征;所述敏感词库中的敏感词类别包括单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别、三低编码值敏感词类别以及复杂串敏感词类别;
2)预设定首字符特征值的计算方式,通过统计记录每一个首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;
3)依次将待处理文本信息中每一个字符分别作为匹配起始字符,执行敏感词匹配处理;其中,对待处理文本信息中的每一个匹配起始字符,按如下步骤执行敏感词匹配处理:
3a)判断该匹配起始字符的首字符特征值是否在一个或多个敏感词类别中对应有具有该首字符特征值的敏感词;若是,则继续执行步骤3b);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3b)将相应敏感词类别作为该匹配起始字符对应的匹配处理敏感词类别,根据所述匹配处理敏感词类别的字符数特征确定匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,结合所述匹配处理敏感词类别的字符组合特征加以查找判断所述匹配对象词是否与所述匹配处理敏感词类别中的一个敏感词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);
3c)输出对该匹配起始字符的敏感词匹配处理结果。
2.根据权利要求1所述基于分类查找的敏感词匹配处理方法,其特征在于,所述步骤1)具体为:预先将敏感词库中的敏感词分为单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别、三低编码值敏感词类别以及复杂串敏感词类别,分别存储于单低编码值敏感词哈希表、单高编码值敏感词哈希表、双低编码值敏感词哈希表、三低编码值敏感词哈希表和复杂串敏感词哈希表中;分别记录每一类敏感词的字符数特征以及字符组合特征如下:
单低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码不大于Ox00FF;
单高编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为单个;字符组合特征为:构成敏感词的单个字符的字符编码大于Ox00FF;
双低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为两个;字符组合特征为:构成敏感词的两个字符的字符编码均不大于Ox00FF;
三低编码值敏感词类别中:字符数特征为,每个敏感词的字符数均为三个;字符组合特征为:构成敏感词的三个字符的字符编码均不大于Ox00FF;
复杂串敏感词类别中:字符数特征为,每个敏感词的字符数在复杂串长度字典表中记录;所述复杂串长度字典表记录有复杂串敏感词类别中每一个敏感词的哈希特征值及其相应的字符数;所述敏感词的哈希特征值的计算方式为,将敏感词作为一个复杂串,该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,K为复杂串哈希参数;字符组合特征为,敏感词库中除了单低编码值敏感词类别、单高编码值敏感词类别、双低编码值敏感词类别以及三低编码值敏感词类别之外的其它字符组合。
3.根据权利要求2所述基于分类查找的敏感词匹配处理方法,其特征在于,所述首字符特征值的计算方式为,计算字符串首字符的字符编码低8位的值。
4.根据权利要求3所述基于分类查找的敏感词匹配处理方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码不大于Ox00FF,则直接判定该匹配起始字符自身与单低编码值敏感词类别中一个敏感词相匹配,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
5.根据权利要求3所述基于分类查找的敏感词匹配处理方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在单高编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果该匹配起始字符的字符编码大于Ox00FF,则查找单高编码值敏感词类别中是否存在敏感词与该匹配起始字符自身相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
6.根据权利要求3所述基于分类查找的敏感词匹配处理方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在双低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后一字符的字符编码均不大于Ox00FF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为两个的字符串作为匹配对象词,查找双低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
7.根据权利要求3所述基于分类查找的敏感词匹配处理方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在三低编码值敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
如果待处理文本信息中匹配起始字符该及其后两个字符的字符编码均不大于Ox00FF,则将待处理文本信息中以该匹配起始字符作为首字符且字符数为三个的字符串作为匹配对象词,查找三低编码值敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
8.根据权利要求3所述基于分类查找的敏感词匹配处理方法,其特征在于,在步骤3)中,若步骤3a)中判断该匹配起始字符的首字符特征值在复杂串敏感词类别中对应有具有该首字符特征值的敏感词,则步骤3b)具体为:
将待处理文本信息中以该匹配起始字符直至待处理文本信息最后以字符的整体作为一个复杂串,计算该复杂串前K个字符构成的字符串对应的哈希值即作为哈希特征值,然后在复杂串字典表中查找相同哈希特征值相应的字符数作为匹配字符数N,将待处理文本信息中以所述匹配起始字符作为首字符且字符数为N的字符串作为匹配对象词,查找复杂串敏感词类别中是否存在敏感词与所述匹配对象词相匹配;若是,则判定存在与该匹配起始字符对应匹配的敏感词,执行步骤3c);否则,判定不存在与该匹配起始字符对应匹配的敏感词,执行步骤3c)。
9.根据权利要求3或8所述基于分类查找的敏感词匹配处理方法,其特征在于,所述复杂串敏感词类别中,复杂串哈希参数K的取值为:若复杂串的字符数大于三个,且前三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=4;若复杂串的字符数大于两个,前两个字符的字符编码均不大于Ox00FF且第三个字符的字符编码均不大于Ox00FF,则取复杂串哈希参数K=3;其它复杂串,取复杂串哈希参数K=2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210228916.3A CN103514238B (zh) | 2012-06-30 | 2012-06-30 | 基于分类查找的敏感词识别处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210228916.3A CN103514238B (zh) | 2012-06-30 | 2012-06-30 | 基于分类查找的敏感词识别处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514238A CN103514238A (zh) | 2014-01-15 |
CN103514238B true CN103514238B (zh) | 2017-12-19 |
Family
ID=49896969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210228916.3A Active CN103514238B (zh) | 2012-06-30 | 2012-06-30 | 基于分类查找的敏感词识别处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514238B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320659A (zh) * | 2014-06-04 | 2016-02-10 | 同程网络科技股份有限公司 | 敏感词过滤方法 |
CN104317781B (zh) * | 2014-11-14 | 2018-03-02 | 移康智能科技(上海)股份有限公司 | 敏感词编辑器 |
CN105824825B (zh) * | 2015-01-06 | 2019-10-18 | 中国移动通信集团湖南有限公司 | 一种敏感数据识别方法和装置 |
CN105843950A (zh) * | 2016-04-12 | 2016-08-10 | 乐视控股(北京)有限公司 | 敏感词过滤方法及装置 |
CN107517150B (zh) * | 2016-06-17 | 2020-08-04 | 深圳市信锐网科技术有限公司 | 基于虚拟专用网络vpn的内网资源访问方法及装置 |
CN106649427B (zh) * | 2016-08-08 | 2020-07-03 | 中国移动通信集团湖北有限公司 | 一种信息识别的方法及装置 |
CN106951437B (zh) * | 2017-02-08 | 2019-11-01 | 中国科学院信息工程研究所 | 适于多个中文敏感词句的识别处理方法及装置 |
CN107633062B (zh) * | 2017-09-20 | 2020-05-15 | 广州四三九九信息科技有限公司 | 敏感词查找方法、装置及电子设备 |
CN109492118B (zh) * | 2018-10-31 | 2021-04-16 | 北京奇艺世纪科技有限公司 | 一种数据检测方法及检测装置 |
CN109543024B (zh) * | 2018-11-05 | 2021-02-23 | 联动优势科技有限公司 | 一种文本处理方法及装置 |
CN109918638B (zh) * | 2018-12-05 | 2023-03-24 | 国网浙江桐乡市供电有限公司 | 一种网络数据监测方法 |
US20210304341A1 (en) * | 2020-03-26 | 2021-09-30 | International Business Machines Corporation | Preventing disclosure of sensitive information |
CN112052364A (zh) * | 2020-09-27 | 2020-12-08 | 深圳前海微众银行股份有限公司 | 敏感信息检测方法、装置、设备与计算机可读存储介质 |
CN114117149A (zh) * | 2021-11-25 | 2022-03-01 | 深圳前海微众银行股份有限公司 | 一种敏感词过滤方法及装置、存储介质 |
CN114266247A (zh) * | 2021-12-20 | 2022-04-01 | 中国农业银行股份有限公司 | 一种敏感词过滤方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976253A (zh) * | 2010-10-27 | 2011-02-16 | 重庆邮电大学 | 一种中文变异文本匹配识别方法 |
CN102207979A (zh) * | 2011-06-30 | 2011-10-05 | 北京新媒传信科技有限公司 | 一种敏感词匹配方法和系统 |
CN102253988A (zh) * | 2011-06-30 | 2011-11-23 | 北京新媒传信科技有限公司 | 网络文本服务中敏感词过滤的方法 |
-
2012
- 2012-06-30 CN CN201210228916.3A patent/CN103514238B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976253A (zh) * | 2010-10-27 | 2011-02-16 | 重庆邮电大学 | 一种中文变异文本匹配识别方法 |
CN102207979A (zh) * | 2011-06-30 | 2011-10-05 | 北京新媒传信科技有限公司 | 一种敏感词匹配方法和系统 |
CN102253988A (zh) * | 2011-06-30 | 2011-11-23 | 北京新媒传信科技有限公司 | 网络文本服务中敏感词过滤的方法 |
Non-Patent Citations (1)
Title |
---|
网络舆情敏感话题发现平台的研究;冯颖;《全国优秀硕士学位论文数据库(电子期刊)》;20100319;40-66 * |
Also Published As
Publication number | Publication date |
---|---|
CN103514238A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514238B (zh) | 基于分类查找的敏感词识别处理方法 | |
CN103336766B (zh) | 短文本垃圾识别以及建模方法和装置 | |
US9189746B2 (en) | Machine-learning based classification of user accounts based on email addresses and other account information | |
CN103257957B (zh) | 一种基于中文分词的文本相似性识别方法及装置 | |
CN105787025B (zh) | 网络平台公共账号分类方法及装置 | |
CN102135814B (zh) | 一种字词输入方法及系统 | |
CN106934275B (zh) | 一种基于个人信息的口令强度评测方法 | |
CN103577989B (zh) | 一种基于产品识别的信息分类方法及信息分类系统 | |
US20080243905A1 (en) | Attribute extraction using limited training data | |
CN108959257A (zh) | 一种自然语言解析方法、装置、服务器及存储介质 | |
CN103984771B (zh) | 一种英文微博中地理兴趣点抽取和感知其时间趋势的方法 | |
CN109408811A (zh) | 一种数据处理方法及服务器 | |
CN107025239A (zh) | 敏感词过滤的方法和装置 | |
CN110851590A (zh) | 一种通过敏感词检测与非法内容识别进行文本分类的方法 | |
Izbicki et al. | Geolocating Tweets in any Language at any Location | |
CN107967250A (zh) | 一种信息处理方法及装置 | |
CN106815193A (zh) | 模型训练方法及装置和错别字识别方法及装置 | |
Loster et al. | Improving Company Recognition from Unstructured Text by using Dictionaries. | |
TWI452475B (zh) | A dictionary generating device, a dictionary generating method, a dictionary generating program product, and a computer readable memory medium storing the program | |
CN108664501B (zh) | 广告审核方法、装置及服务器 | |
Li et al. | Extracting fine‐grained location with temporal awareness in tweets: A two‐stage approach | |
CN111190873B (zh) | 一种用于云原生系统日志训练的日志模式提取方法及系统 | |
CN106649605A (zh) | 一种推广关键词的触发方法及装置 | |
CN110532562B (zh) | 神经网络训练方法、成语误用检测方法、装置和电子设备 | |
Sagcan et al. | Toponym recognition in social media for estimating the location of events |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200605 Address after: Room 502-1, floor 5, building 2, courtyard 10, KEGU 1st Street, economic development zone, Daxing District, Beijing 100081 Patentee after: Singularity Xinyuan International Technology Development (Beijing) Co.,Ltd. Address before: The 401121 northern New District of Chongqing municipality Mount Huangshan Road 5 south of Mercury Technology Building 1 floor office No. 3 Patentee before: A-MEDIA COMMUNICATION TECH Co.,Ltd. |