敏感词检测方法、装置、终端设备和计算机可读存储介质制造方法及图纸

技术编号:24168905 阅读:31 留言:0更新日期:2020-05-16 02:18
本申请实施例适用于文本检测技术领域,公开了一种敏感词检测方法、装置、终端设备和计算机可读存储介质,方法包括:获取待检测文本;对待检测文本中的每一个待匹配字符执行字符匹配步骤,得到匹配结果;根据匹配结果得到待检测文本的敏感词检测结果。本申请实施例通过将敏感词各个字符是嵌套递归地存储在敏感词容器中的,使得敏感词检测的复杂度等于敏感词的字符长度,降低了敏感词检测的复杂度,提高了敏感词检测效率。

Sensitive word detection method, device, terminal equipment and computer readable storage medium

【技术实现步骤摘要】
敏感词检测方法、装置、终端设备和计算机可读存储介质
本申请属于文本检测
,尤其涉及一种敏感词检测方法、装置、终端设备和计算机可读存储介质。
技术介绍
目前,一些敏感的信息与词汇是不允许出现在文案中的,故需要对文本进行敏感词检测,以过滤或筛选出文本中的敏感词信息。现有技术中,敏感词检测有基于规则的检测方法,也有基于有限状态机的方法,亦或者是基于机器学习的检测方法,这些方法的检测效率十分有限。
技术实现思路
本申请实施例提供一种敏感词检测方法、装置、终端设备和计算机可读存储介质,以解决现有敏感词检测效率较低的问题。第一方面,本申请实施例提供一种敏感词检测方法,包括:获取待检测文本;对所述待检测文本中的每一个待匹配字符执行字符匹配步骤,得到匹配结果;根据所述匹配结果得到所述待检测文本的敏感词检测结果;所述字符匹配步骤用于:将所述待匹配字符与敏感词容器的根节点的字符进行比对,确定是否一致;如果所述待匹配字符与所述根节点的字符一致,且敏感词结束标志位为预设数值,返回匹配成功结果;如果所述待匹配字符与所述根节点的字符一致,且敏感词结束标志位不为预设数值,k=1,进入循环步骤:将所述待匹配字符后的第k个字符与所述根节点的第k个叶子节点的字符进行匹配,确定是否一致;如果所述第k个字符与所述第k个叶子节点的字符一致,当敏感词结束标志位不为预设数值,k=k+1后返回所述循环步骤;当敏感词结束标志位为预设数值,返回匹配成功结果;如果所述第k个字符与所述第k个叶子节点的字符不一致,返回匹配失败结果。本申请实施例中,通过将敏感词嵌套递归地存储在敏感词容器中的,使得敏感词检测的复杂度等于敏感词的长度,而日常情况下的敏感词长度不会太长,从而降低了敏感词检测的复杂度,提高了敏感词检测效率。在第一方面的一种可能的实现方式中,所述敏感词容器包括至少一条存储分支,一条所述存储分支用于存储一个敏感词;所述存储分支包括至少一个节点,所述存储分支中的第一个节点为根节点,非第一个节点为叶子节点;一个节点对应一个存储对象;所述存储对象的数据结构为键值对数据结构,所述存储对象包括key值和value值;在一条所述存储分支中,第m个节点的存储对象的value值存放有作为第m+1个节点的存储对象,所述存储分支对应的敏感词的各个字符依次存放各个存储对象的key值,m为大于或等于1的正整数;若两个敏感词的前j个字符相同,第j+1个字符不相同,则对应的两条存储分支的前j个节点相同,第j+1个节点及其往后的节点均不相同,j大于或等于0。可以看出,本申请实施例中用于存放敏感词的敏感词容器是基于键值对数据结构的,且每个存储对象是嵌套递归的,即敏感词是嵌套递归地存储在敏感词容器中的,使得敏感词检测的复杂度等于敏感词的长度,而日常情况下的敏感词长度不会太长,从而降低了敏感词检测的复杂度,提高了敏感词检测效率。在第一方面的一种可能的实现方式中,所述存储对象为Map对象;敏感词的存放方式如下:所述敏感词的第m个字符存放在对应存储分支的第m个节点的Map对象的key值;第m个节点的Map对象的value值存放作为第m+1个节点的Map对象,m大于或等于1,且小于或等于所述敏感词的字符数量;若新添加的敏感词的前j个字符与所述敏感词容器中已存放敏感词的前j个字符相同,第j+1个字符不同,则新建i个节点,将所述新添加的敏感词的第j+1个及其往后的字符依次存放在所述i个节点中,i等于所述新添加的敏感词的字符数减去j。可以理解的是,Map对象是典型的键值对的数据结构,将第m个节点的Map对象的value值存放作为第m+1个节点的Map对象实现了Map对象的嵌套递归。在第一方面的一种可能的实现方式中,所述存储分支还包括用于存放结束标志信息的目标Map对象,所述目标Map对象存放在所述存储分支对应的敏感词最后一个字符对应的Map对象的value值中。在第一方面的一种可能的实现方式中,在获取待检测文本之前,还包括:初始化敏感词数据,将所述敏感词数据加载至内存。在第一方面的一种可能的实现方式中,初始化敏感词数据,将所述敏感词数据加载至内存,包括:获取所述敏感词数据;构建所述敏感词容器;执行单个敏感词添加步骤,所述单个敏感词添加步骤用于:从所述敏感词数据中读取一个敏感词作为待加载敏感词;依次将所述待加载敏感词的第m个字符存放在对应存储分支的第m个节点的Map对象的key值,第m个节点的Map对象的value值存放作为第m+1个节点的Map对象;所述待加载敏感词的字符添加完毕时,在目标Map对象中存储所述待加载敏感词的结束标志位信息,所述目标Map对象存放在所述待加载敏感词的最后一个字符对应的Map对象的value值中;重复执行所述单个敏感词添加步骤,直至所述敏感词数据全部添加至所述敏感词容器。需要说明的是,敏感词库的数据量较多,导致敏感词容器占用的存储资源较多,从而导致敏感词容器的初始化比较耗时。而预先将敏感词数据初始化加载至内存中,这样敏感词匹配操作会在内存中进行,从而进一步地提高了检测效率。另外,由于敏感词存放在内存的常量池中,即使敏感词数据占用较大内存也不会被回收,从而进一步提高了检测性能。在第一方面的一种可能的实现方式中,根据所述匹配结果得到所述待检测文本的敏感词检测结果,包括:获取所述匹配成功结果对应的敏感词,所述匹配成功结果对应的敏感词为所述待检测文本的敏感词。在第一方面的一种可能的实现方式中,在根据所述匹配结果得到所述待检测文本的敏感词检测结果之后,还包括:统计所述匹配成功结果对应的敏感词的数量;和/或在所述待检测文本中标记所述匹配成功结果对应的敏感词。第二方面,本申请实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的方法。第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一项所述的方法。第四方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种敏感词检测方法的流程示意框图;图2为本申请实施例提供的存储对象本文档来自技高网...

【技术保护点】
1.一种敏感词检测方法,其特征在于,包括:/n获取待检测文本;/n对所述待检测文本中的每一个待匹配字符执行字符匹配步骤,得到匹配结果;/n根据所述匹配结果得到所述待检测文本的敏感词检测结果;/n所述字符匹配步骤用于:/n将所述待匹配字符与敏感词容器的根节点的字符进行比对,确定是否一致;/n如果所述待匹配字符与所述根节点的字符一致,且敏感词结束标志位为预设数值,返回匹配成功结果;/n如果所述待匹配字符与所述根节点的字符一致,且敏感词结束标志位不为预设数值,k=1,进入循环步骤:将所述待匹配字符后的第k个字符与所述根节点的第k个叶子节点的字符进行匹配,确定是否一致;/n如果所述第k个字符与所述第k个叶子节点的字符一致,当敏感词结束标志位不为预设数值,k=k+1后返回所述循环步骤;当敏感词结束标志位为预设数值,返回匹配成功结果;/n如果所述第k个字符与所述第k个叶子节点的字符不一致,返回匹配失败结果。/n

【技术特征摘要】
1.一种敏感词检测方法,其特征在于,包括:
获取待检测文本;
对所述待检测文本中的每一个待匹配字符执行字符匹配步骤,得到匹配结果;
根据所述匹配结果得到所述待检测文本的敏感词检测结果;
所述字符匹配步骤用于:
将所述待匹配字符与敏感词容器的根节点的字符进行比对,确定是否一致;
如果所述待匹配字符与所述根节点的字符一致,且敏感词结束标志位为预设数值,返回匹配成功结果;
如果所述待匹配字符与所述根节点的字符一致,且敏感词结束标志位不为预设数值,k=1,进入循环步骤:将所述待匹配字符后的第k个字符与所述根节点的第k个叶子节点的字符进行匹配,确定是否一致;
如果所述第k个字符与所述第k个叶子节点的字符一致,当敏感词结束标志位不为预设数值,k=k+1后返回所述循环步骤;当敏感词结束标志位为预设数值,返回匹配成功结果;
如果所述第k个字符与所述第k个叶子节点的字符不一致,返回匹配失败结果。


2.如权利要求1所述的方法,其特征在于,所述敏感词容器包括至少一条存储分支,一条所述存储分支用于存储一个敏感词;所述存储分支包括至少一个节点,所述存储分支中的第一个节点为根节点,非第一个节点为叶子节点;一个节点对应一个存储对象;
所述存储对象的数据结构为键值对数据结构,所述存储对象包括key值和value值;在一条所述存储分支中,第m个节点的存储对象的value值存放有作为第m+1个节点的存储对象,所述存储分支对应的敏感词的各个字符依次存放各个存储对象的key值,m为大于或等于1的正整数;
若两个敏感词的前j个字符相同,第j+1个字符不相同,则对应的两条存储分支的前j个节点相同,第j+1个节点及其往后的节点均不相同,j大于或等于0。


3.如权利要求2所述的方法,其特征在于,所述存储对象为Map对象;
敏感词的存放方式如下:
所述敏感词的第m个字符存放在对应存储分支的第m个节点的Map对象的key值;第m个节点的Map对象的value值存放作为第m+1个节点的Map对象,m大于或等于1,且小于或等于所述敏感词的字符数量;
若新添加的敏感词的前j个字符与所述敏感词容器中已存放敏感词的前j个字符相同,第j+1个字符不同,则新建i个节点,将所述新添加的敏感词的第j+...

【专利技术属性】
技术研发人员:方曦熊友军
申请(专利权)人:深圳市优必选科技股份有限公司
类型:发明
国别省市:广东;44

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

1