适于多个中文敏感词句的识别处理方法及装置转让专利

申请号 : CN201710072161.5

文献号 : CN106951437B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 喻民刘超卢越李敏姜建国

申请人 : 中国科学院信息工程研究所

摘要 :

本发明提供一种适于多个中文敏感词句的识别处理方法及装置,该方法包括:获取多个预设的敏感词句;根据所述敏感词句建立后缀树;获取待识别中文文本;根据所述后缀树对所述待识别中文文本进行匹配;若匹配成功后,获取所述待识别中文本中的敏感词句并输出显示,该方法针对中文的特点,把模式串在后缀树上的匹配时间由提高到达到节省时间和提高模式串在后缀树上的匹配速度,适用于多个敏感词句的中文模式串匹配。

权利要求 :

1.一种适于多个中文敏感词句的识别处理方法,其特征在于,包括:获取多个预设的敏感词句;

根据所述敏感词句建立后缀树;

获取待识别中文文本;

根据所述后缀树对所述待识别中文文本进行匹配;

若匹配成功后,获取所述待识别中文本中的敏感词句并输出显示;

其中,所述根据所述敏感词句建立后缀树,包括:S21、根据多个预设的敏感词句,建立模式串集合P(P1,P2,P3,P4,P5...Pn);

S22、设置一根节点,所述根节点的属性值为第一预设值,所述第一预设值为任一拼音字母的排列值;

S23、选取所述模式串集合中的任一敏感词句Pi,所述敏感词句Pi的字符串长度为m;

S24、获取所述敏感词句Pi的第m个字符,对第m个字符解析得到对应拼音的头字母,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值;

S25、判断所述头字母的排列值是否小于第一预设值,若小于,则将第m个字符对应的节点设置在所述根节点的左侧,反之,则设置在所述根节点的右侧;

S25、依次获取所述敏感词句Pi的第m-1,m-2,……,2,1个字符,循环步骤S24-S25将第m-

1,m-2,……,2,1个字符对应的节点设置在第m,m-1,……,2个字符节点的孩子节点上。

2.根据权利要求1所述的方法,其特征在于,根据所述后缀树对所述待识别中文文本进行匹配,包括:根据所述后缀树采用BM算法对所述待识别中文文本进行匹配。

3.根据权利要求1所述的方法,其特征在于,所述敏感词句包括单字、词组和语句。

4.根据权利要求1所述的方法,其特征在于,若匹配未成功后,发出提示信息。

5.一种适于多个中文敏感词句的识别处理装置,其特征在于,包括:第一获取模块,用于获取多个预设的敏感词句;

处理模块,用于根据所述敏感词句建立后缀树;

第二获取模块,用于获取待识别中文文本;

匹配模块,用于根据所述后缀树对所述待识别中文文本进行匹配;

显示模块,用于在匹配成功后,获取所述待识别中文本中的敏感词句并输出显示;

其中,所述处理模块具体用于:

S21、根据多个预设的敏感词句,建立模式串集合P(P1,P2,P3,P4,P5...Pn);

S22、设置一根节点,所述根节点的属性值为第一预设值,所述第一预设值为任一拼音字母的排列值;

S23、选取所述模式串集合中的任一敏感词句Pi,所述敏感词句Pi的字符串长度为m;

S24、获取所述敏感词句Pi的第m个字符,对第m个字符解析得到对应拼音的头字母,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值;

S25、判断所述头字母的排列值是否小于第一预设值,若小于,则将第m个字符对应的节点设置在所述根节点的左侧,反之,则设置在所述根节点的右侧;

S25、依次获取所述敏感词句Pi的第m-1,m-2,……,2,1个字符,循环步骤S24-S25将第m-

1,m-2,……,2,1个字符对应的节点设置在第m,m-1,……,2个字符节点的孩子节点上。

6.根据权利要求5所述的装置,其特征在于,所述匹配模块具体用于:根据所述后缀树采用BM算法对所述待识别中文文本进行匹配。

7.根据权利要求5所述的装置,其特征在于,所述敏感词句包括单字、词组和语句。

8.根据权利要求5所述的装置,其特征在于,所述显示模块还用于:在匹配未成功后,发出提示信息。

说明书 :

适于多个中文敏感词句的识别处理方法及装置

技术领域

[0001] 本发明涉及计算机处理技术领域,尤其涉及一种适于多个中文敏感词句的识别处理方法及装置。

背景技术

[0002] 识别敏感词句是指利用程序对信息文本进行嗅探指定的关键字词,检查是否有违反指定策略的行为,是敏感词过滤的基础。为了快速准确的查找敏感词汇需要应用一些模式匹配算法。
[0003] 模式串的模式匹配算法有Aho-Corasick(AC)算法,BM算法,ACBM算法。其中,AC算法通过预处理,将多个模式串转换为树型有限自动状态机(DFSA),对文本串扫描一次就可以完成所有模式串匹配,匹配的时间复杂度是O(n+m)。BM算法的时间复杂度是 但是无法处理多模式串匹配问题。ACBM算法融合了AC算法和BM算法思想,平均情况下效率优于AC算法,时间复杂度是 虽然ACBM算法在实际应用中表现优异,但针对中文效果较差并且未能充分利用的模式串和中文信息的特点,导致匹配速度较慢。
[0004] 造成低效的原因是英文的基本结构单位是“词”,中文的基本结构单位是“字”。在敏感词句检测时有很大差异。对英语来说,敏感词检测是对26个英文字母进行依次匹配,而对于中文来说是对上万的汉字进行依次匹配。因此字符串匹配算法,由26个英文字母变成上万的汉字后,在时间和空间上都无法达到算法预期效果。另外汉字是多字节符号,同时还具备拼音等英文字母不具有的属性也没有在算法中被充分利用。

发明内容

[0005] 本发明提供一种适于多个中文敏感词句的识别处理方法及装置,用于解决现有技术中对中文敏感词句匹配速度较慢的问题。
[0006] 第一方面,本发明提供一种适于多个中文敏感词句的识别处理方法,包括:
[0007] 获取多个预设的敏感词句;
[0008] 根据所述敏感词句建立后缀树;
[0009] 获取待识别中文文本;
[0010] 根据所述后缀树对所述待识别中文文本进行匹配;
[0011] 若匹配成功后,获取所述待识别中文本中的敏感词句并输出显示。
[0012] 可选地,所述根据所述敏感词句建立后缀树,包括:
[0013] S21、根据多个预设的敏感词句,建立模式串集合P(P1,P2,P3,P4,P5...Pn);
[0014] S22、设置一根节点,所述根节点的属性值为第一预设值,所述第一预设值为任一拼音字母的排列值;
[0015] S23、选取所述模式串集合中的任一敏感词句Pi,所述敏感词句Pi的字符串长度为m;
[0016] S24、获取所述敏感词句Pi的第m个字符,对第m个字符解析得到对应拼音的头字母,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值;
[0017] S25、判断所述头字母的排列值是否小于第一预设值,若小于,则将第m个字符对应的节点设置在所述根节点的左侧,反之,则设置在所述根节点的右侧;
[0018] S25、依次获取所述敏感词句Pi的第m-1,m-2,……,2,1个字符,循环步骤S24-S25将第m-1,m-2,……,2,1个字符对应的节点设置在第m,m-1,……,2个字符节点的孩子节点上。
[0019] 可选地,根据所述后缀树对所述待识别中文文本进行匹配,包括:根据所述后缀树采用BM算法对所述待识别中文文本进行匹配。
[0020] 可选地,所述敏感词句包括单字、词组和语句。
[0021] 可选地,还包括:若匹配未成功后,发出提示信息。
[0022] 第二方面,本发明提供一种适于多个中文敏感词句的识别处理装置,包括:
[0023] 第一获取模块,用于获取多个预设的敏感词句;
[0024] 处理模块,用于根据所述敏感词句建立后缀树;
[0025] 第二获取模块,用于获取待识别中文文本;
[0026] 匹配模块,用于根据所述后缀树对所述待识别中文文本进行匹配;
[0027] 显示模块,用于在匹配成功后,获取所述待识别中文本中的敏感词句并输出显示。
[0028] 可选地,所述处理模块具体用于:
[0029] S21、根据多个预设的敏感词句,建立模式串集合P(P1,P2,P3,P4,P5...Pn);
[0030] S22、设置一根节点,所述根节点的属性值为第一预设值,所述第一预设值为任一拼音字母的排列值;
[0031] S23、选取所述模式串集合中的任一敏感词句Pi,所述敏感词句Pi的字符串长度为m;
[0032] S24、获取所述敏感词句Pi的第m个字符,对第m个字符解析得到对应拼音的头字母,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值;
[0033] S25、判断所述头字母的排列值是否小于第一预设值,若小于,则将第m个字符对应的节点设置在所述根节点的左侧,反之,则设置在所述根节点的右侧;
[0034] S25、依次获取所述敏感词句Pi的第m-1,m-2,……,2,1个字符,循环步骤S24-S25将第m-1,m-2,……,2,1个字符对应的节点设置在第m,m-1,……,2个字符节点的孩子节点上。
[0035] 可选地,所述匹配模块具体用于:根据所述后缀树采用BM算法对所述待识别中文文本进行匹配。
[0036] 可选地,所述敏感词句包括单字、词组和语句。
[0037] 可选地,所述显示模块还用于:在匹配未成功后,发出提示信息。
[0038] 由上述技术方案可知,本发明的多个中文敏感词句的识别处理方法及装置,通过对获取多个预设的敏感词句解析并采用拼音字符排列值建立后缀树,在获取待识别中文文本后,根据后缀树对所述待识别中文文本进行匹配,根据字符的字母排列值分路匹配,当匹配成功后获取所述待识别中文本中的敏感词句并输出显示,做到针对中文的特点,把模式串在后缀树上的匹配时间由 提高到 达到节省时间和提高模式串在后缀树上的匹配速度,适用于多个敏感词句的中文模式串匹配。

附图说明

[0039] 图1为本发明实施例1提供的适于多个中文敏感词句的识别处理方法的流程示意图;
[0040] 图2为本发明实施例提供的后缀树的框图;
[0041] 图3为本发明实施例2提供的适于多个中文敏感词句的识别处理装置的结构示意图。

具体实施方式

[0042] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0043] 图1示出了本发明实施例1提供一种适于多个中文敏感词句的识别处理方法,包括:
[0044] S11、获取多个预设的敏感词句。
[0045] 在本步骤中,需要说明的是,在本发明实施例中,所述敏感词句为事先预设的词句。一般可包括包括单字、词组和语句。单字如“傻”、“笨”。词组如“混蛋”“暴力”。语句如“我讨厌中国”。
[0046] S12、根据所述敏感词句建立后缀树。
[0047] 在本步骤中,需要说明的是,在本发明实施例中,为了便于后续从文本信息中匹配敏感词句,需建立后缀树,具体如下:
[0048] S21、根据多个预设的敏感词句,建立模式串集合P(P1,P2,P3,P4,P5...Pn);
[0049] S22、设置一根节点,所述根节点的属性值为第一预设值,所述第一预设值为任一拼音字母的排列值;
[0050] S23、选取所述模式串集合中的任一敏感词句Pi,所述敏感词句Pi的字符串长度为m;
[0051] S24、获取所述敏感词句Pi的第m个字符,对第m个字符解析得到对应拼音的头字母,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值;
[0052] S25、判断所述头字母的排列值是否小于第一预设值,若小于,则将第m个字符对应的节点设置在所述根节点的左侧,反之,则设置在所述根节点的右侧;
[0053] S25、依次获取所述敏感词句Pi的第m-1,m-2,……,2,1个字符,循环步骤S24-S25将第m-1,m-2,……,2,1个字符对应的节点设置在第m,m-1,……,2个字符节点。
[0054] 以具体事例对上述步骤进行解释说明:
[0055] 如图2所示,假设模式串集合为P(P1,P2,P3,P4),P1为“笨”,P2为“色情”,P3为“你爱法国”,P4为“他讨厌法国”。
[0056] 设置设置一根节点,所述根节点的属性值为13。
[0057] 获取敏感词句P1,该敏感词句P1的字符串长度为1。对字符“笨”解析得到对应拼音的头字母“b”,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值“2”。判断“2”小于根节点的属性值“13”,则将字符“笨”的节点设置在根节点的左侧作为根节点的孩子节点。
[0058] 获取敏感词句P2,该敏感词句P2的字符串长度为2。对第2个字符“情”解析得到对应拼音的头字母“q”,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值“17”,判断“17”大于根节点的属性值“13”,则将字符“情”的节点设置在根节点的右侧作为根节点的孩子节点。对第1个字符“色”解析得到对应拼音的头字母“s”,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值“19”,判断“19”大于字符“情”节点的属性值“17”,则将字符“色”的节点设置在字符“情”节点的右侧作为根节点的孩子节点。
[0059] 获取敏感词句P3,该敏感词句P3的字符串长度为4。对第4个字符“国”解析得到对应拼音的头字母“g”,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值“7”,判断“7”小于根节点的属性值“13”,则将字符“国”的节点设置在根节点的左侧作为根节点的孩子节点。依次对“法”、“爱”、“你”做上述处理,在此不再赘述,可见图2所示。
[0060] 获取敏感词句P4,该敏感词句P4的字符串长度为5。对第5个字符“国”解析得到对应拼音的头字母“g”,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值“7”,判断“7”小于根节点的属性值“13”,则将字符“国”的节点设置在根节点的左侧作为根节点的孩子节点。依次对“法”“厌”、“讨”、“他”做上述处理,在此不再赘述,可见图2所示。
[0061] S13、获取待识别中文文本。
[0062] 在本步骤中,需要说明的是,在本发明实施例中,待识别中文文本可为发表文章或评论消息等。
[0063] S14、根据所述后缀树对所述待识别中文文本进行匹配。
[0064] 在本步骤中,需要说明的是,当字符串Pi的长度大于文本字符长度,此时,便不可能从该文本中找到字符串Pi,因此,中文文本的字符长度大于模式串Pi的字符长度,即len(T)>maxlen(Pi)。
[0065] 对所述后缀树采用BM算法对所述待识别中文文本进行匹配,具体可包括:
[0066] (1)根据最短的模式串Pi的长度minlen(Pi)选定目标串的第minlen(Pi)位为起始匹配位置,使用该树进行BM算法匹配。
[0067] (2)如果某个字符比较不匹配时,采用两条启发式规则,即坏字符规则和好后缀规则。
[0068] (3)如果某个字符比较匹配时,则先判断左一字符和该匹配字符的大小,大小根据字符的拼音赋值。如果左一字符小于该匹配字符,则去左侧孩子节点中查找,如果不小于,则去右侧孩子节点中进行查找。
[0069] S15、若匹配成功后,获取所述待识别中文本中的敏感词句并输出显示。
[0070] 另外,若匹配未成功后,可发出提示信息,以提示用于可以对中文文本进行发表。
[0071] 本发明实施例1提供的适于多个中文敏感词句的识别处理方法,通过对获取多个预设的敏感词句解析并采用拼音字符排列值建立后缀树,在获取待识别中文文本后,根据后缀树对所述待识别中文文本进行匹配,根据字符的字母排列值分路匹配,当匹配成功后获取所述待识别中文本中的敏感词句并输出显示,做到针对中文的特点,把模式串在后缀树上的匹配时间由 提高到 达到节省时间和提高模式串在后缀树上的匹配速度,适用于多个敏感词句的中文模式串匹配。
[0072] 图3示出了本发明实施例2提供的一种适于多个中文敏感词句的识别处理装置,包括第一获取模块21、处理模块22、第二获取模块23、匹配模块24和显示模块25,其中:
[0073] 第一获取模块21,用于获取多个预设的敏感词句;
[0074] 处理模块22,用于根据所述敏感词句建立后缀树;
[0075] 第二获取模块23,用于获取待识别中文文本;
[0076] 匹配模块24,用于根据所述后缀树对所述待识别中文文本进行匹配;
[0077] 显示模块25,用于在匹配成功后,获取所述待识别中文本中的敏感词句并输出显示。
[0078] 所述处理模块具体用于:
[0079] S21、根据多个预设的敏感词句,建立模式串集合P(P1,P2,P3,P4,P5...Pn);
[0080] S22、设置一根节点,所述根节点的属性值为第一预设值,所述第一预设值为任一拼音字母的排列值;
[0081] S23、选取所述模式串集合中的任一敏感词句Pi,所述敏感词句Pi的字符串长度为m;
[0082] S24、获取所述敏感词句Pi的第m个字符,对第m个字符解析得到对应拼音的头字母,根据所述头字母和预设的拼音字母与排列值的对应关系获得所述头字母的排列值;
[0083] S25、判断所述头字母的排列值是否小于第一预设值,若小于,则将第m个字符对应的节点设置在所述根节点的左侧,反之,则设置在所述根节点的右侧;
[0084] S25、依次获取所述敏感词句Pi的第m-1,m-2,……,2,1个字符,循环步骤S24-S25将第m-1,m-2,……,2,1个字符对应的节点设置在第m,m-1,……,2个字符节点的孩子节点上。
[0085] 由于本发明实施例2所述装置与上述实施例所述方法的原理相同,对于更加详细的解释内容在此不再赘述。
[0086] 需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
[0087] 本发明实施例2提供的适于多个中文敏感词句的识别处理装置,通过对获取多个预设的敏感词句解析并采用拼音字符排列值建立后缀树,在获取待识别中文文本后,根据后缀树对所述待识别中文文本进行匹配,根据字符的字母排列值分路匹配,当匹配成功后获取所述待识别中文本中的敏感词句并输出显示,做到针对中文的特点,把模式串在后缀树上的匹配时间由 提高到 达到节省时间和提高模式串在后缀树上的匹配速度,适用于多个敏感词句的中文模式串匹配。
[0088] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0089] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0090] 本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。