敏感词过滤方法、装置、计算机设备及存储介质与流程

文档序号:17537940发布日期:2019-04-29 14:11阅读:387来源:国知局
敏感词过滤方法、装置、计算机设备及存储介质与流程

本发明涉及敏感词过滤技术领域,尤其涉及一种敏感词过滤方法、装置、计算机设备及存储介质。



背景技术:

随着信息技术的迅猛发展,由于互联网具有虚拟性、隐蔽性、发散性、渗透性和随意性等特点,越来越多的网民乐意将互联网作为传播载体来表达观点和传播思想。部分网民恶意通过互联网传播带有敏感词汇的评论,造成网络环境不够健康。为了保证网络环境的健康,通常会采取监管措施对网民发表的文章、评论或者其他信息进行敏感词汇进行过滤,但由于部分网民通过跳词或者其他规避手段规避监管,导致目前敏感词过滤的力度较低,识别率不高。



技术实现要素:

本发明实施例提供一种敏感词过滤方法、装置、计算机设备及存储介质,以解决当前敏感词过滤力度较低以及识别率不高的问题。

一种敏感词过滤方法,包括:

获取客户端发送的原始字符串和场景应用类型;

采用正则表达式匹配算法对所述原始字符串进行初步过滤,获取有效字符串;

采用与所述场景应用类型相对应的预设提取规则,对所述有效字符串进行提取,获取待测字符串;

采用改进多模式匹配算法对所述待测字符串进行敏感词检测,获取目标敏感词;

对所述目标敏感词进行字符替换处理,获取目标字符串,并在所述客户端显示所述目标字符串。

一种敏感词过滤装置,包括:

原始字符串获取模块,用于获取客户端发送的原始字符串和场景应用类型;

有效字符串获取模块,用于采用正则表达式匹配算法对所述原始字符串进行初步过滤,获取有效字符串;

待测字符串获取模块,用于采用与所述场景应用类型相对应的预设提取规则,对所述有效字符串进行提取,获取待测字符串;

目标敏感词获取模块,用于采用改进多模式匹配算法对所述待测字符串进行敏感词检测,获取目标敏感词;

目标字符串获取模块,用于对所述目标敏感词进行字符替换处理,获取目标字符串,并在所述客户端显示所述目标字符串。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述敏感词过滤方法的步骤。

一种非易失性存储介质,所述非易失性存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述敏感词过滤方法的步骤。

上述敏感词过滤方法、装置、计算机设备及存储介质中,通过获取客户端发送的原始字符串和场景应用类型,以便采用正则表达式匹配算法对原始字符串进行匹配,获取有效字符串,以排除特殊字符和/或标点符号等干扰因素,提高后续敏感词过滤的效率。再采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串,以初步排除非敏感词干扰,进一步增加获取敏感词过滤的效率。通过采用改进多模式匹配算法对待测字符串进行敏感词检测,获取目标敏感词,以有效提高敏感词过滤的力度和识别率。最后,对目标敏感词进行字符替换处理,获取目标字符串,并在客户端显示不包含敏感词的目标字符串,保证网络环境的健康。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中敏感词过滤方法的一应用环境示意图;

图2是本发明一实施例中敏感词过滤方法的一示例图;

图3是本发明一实施例中敏感词过滤方法的一流程图;

图4是本发明一实施例中敏感词过滤方法的一流程图;

图5是图3中步骤s40的一具体流程图;

图6是图5中步骤s41的一具体流程图;

图7是本发明一实施例中敏感词过滤方法的一流程图;

图8是本发明一实施例中敏感词过滤装置的一示意图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的敏感词过滤方法可应用在聊天室、论坛、各应用中的评论项、弹幕和朋友圈发表文章等场景,用于对网民采用跳词等规避手段发表的不健康言论进行过滤,以有效保证网络环境的健康。该敏感词过滤方法可应用在如图1的应用环境中,其中,计算机设备通过网络与服务器进行通信。计算机设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器来实现。

在一实施例中,如图3所示,提供一种敏感词过滤方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:

s10:获取客户端发送的原始字符串和场景应用类型。

其中,原始字符串可为弹幕语句、各应用中的评论语句(如论坛中发表的语句)和朋友圈的发表文章。场景应用类型包括但不限于聊天室、论坛,各应用中的评论项、弹幕和朋友圈等类型。具体地,以应用在弹幕这一场景应用类型为例,当用户在观看直播或在线视频时,输入弹幕语句对直播内容或视频内容进行评论,以使服务器获取的弹幕语句即为原始字符串。

s20:采用正则表达式匹配算法对原始字符串进行匹配,获取有效字符串。

其中,正则表达式匹配算法是指开发人员预先设置的用于对原始字符串中的中英文和数字进行匹配的算法。有效字符串是指采用正则表达式匹配算法对原始字符串进行匹配处理后获取的不包含特殊字符(如:空格)和/或标点符号的字符串。本实施例中,可采用正则表达式(如:^[\u4e00-\u9fa5_a-za-z0-9]+$)对原始字符串进行匹配,以获取不包含特殊字符和/或标点符号的有效字符串,以过滤掉特殊字符和/或标点符号等干扰因素,增加后续敏感词过滤的效率。

s30:采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串。

其中,预设提取规则是预先按照不同的场景应用类型进行设定的用于提取最大概率包含敏感词的待测字符串的规则。待测字符串是采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取所获取的初步排除非敏感词干扰的字符串。由于在聊天室、论坛、各应用中的评论项、弹幕和朋友圈等场景中,服务器获取的有效字符串具有多变性,且其中包括非敏感词字段,为了减少后续算法的复杂度,因此需将敏感词字段单独提取出来进行敏感词过滤,以初步排除非敏感词干扰,增加获取敏感词过滤的效率。

例如:在论坛中,由于使用论坛的用户在发表文章时,中英文混杂的情况较多,因此可将预设提取规则设置为,连续5(该连续字符的个数可根据实际进行调整,在此仅做举例说明,不做限定)个英文字符作为提取边界,并将该段字符的前数5个字符和后数5个字符,全部提取出来,获取待测字符串。例如:有效字符串为“你看啥呢你又在干嘛shitstupid你那边反馈”,通过对有效字符串中的字符进行检测,以获取到“shits”为连续5个英文字符,则将这5个连续的英文字符作为提取边界,将前数5个字符“你又在干嘛”和后数5个字符“tupid”提取出来作为待测字符串,即将“你又在干嘛shitstupid”作为待测字符串,以便后续对待测字符串进行单独分析,提高敏感词过滤的效率。

又例如,在朋友圈中,由于目前微信的推广使用,微商也随之快速发展,同时一些不法分子也掺杂在微商中,通过让用户添加微信号码,以骗取用户钱财,导致用户的朋友圈存在安全隐患,因此针对朋友圈的预设提取规则可设置为连续7个阿拉伯数字作为提取边界,并将该边界的前数5个字符和后数5个字符,全部提取出来,获取待测字符串,以便后续对待测字符串进行单独分析,提高敏感词过滤的效率。

s40:采用改进多模式匹配算法对待测字符串进行敏感词检测,获取目标敏感词。

其中,多模式匹配算法包括但不限于采用ac(aho-corasick,多模式匹配算法)算法。ac(aho-corasick)算法是一种字典匹配算法,它用于在输入文本中查找字典中的字符串,该算法应用有限自动机巧妙地将字符比较转化为了状态转移,时间复杂度是线性的,算法效率快。改进多模式匹配算法是开发人员基于多模式匹配算法进行改进以获取的用于进行敏感词匹配的算法。可理解地,该改进多模式匹配算法主要是针对多模式匹配算法(如:ac自动机)中检测当前节点没有找到匹配的敏感词,则跳过当前敏感词继续检测下一字符,就会导致出现跳词情况的敏感词无法识别,导致识别准确率不高的问题进行改进,通过在原有的多模式匹配算法(如ac自动机)中加入自循环的逻辑,以有效解决当前多模式匹配算法对于跳词情况的敏感词无法识别的问题。

s50:对目标敏感词进行字符替换处理,获取目标字符串,并在客户端显示目标字符串。

其中,目标字符串是指过滤掉敏感词的字符串。具体地,在用户发表言论后,采用上述改进多模式匹配算法对待测字符串进行敏感词检测,获取目标敏感词,并将目标敏感词采用其他字符(如:*)进行替换,并在客户端显示不包含敏感词的目标字符串,以保证网络环境的健康。

本实施例中,通过获取客户端发送的原始字符串和场景应用类型,以便采用正则表达式匹配算法对原始字符串进行匹配,获取有效字符串,以排除特殊字符和/或标点符号等干扰因素,提高后续敏感词过滤的效率。再采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串,以初步排除非敏感词干扰,进一步增加获取敏感词过滤的效率。通过采用改进多模式匹配算法对待测字符串进行敏感词检测,获取目标敏感词,提高目标敏感词的识别准确率,以有效解决采用跳词或者其他规避手段规避敏感词监管,而导致目前使用多模式匹配算法进行敏感词过滤的力度较低的问题。最后,对目标敏感词进行字符替换处理,获取目标字符串,并在客户端显示不包含敏感词的目标字符串,保证网络环境的健康。

在一实施例中,如图4所示,步骤s20之后,该敏感词过滤方法还包括如下步骤:

s211:获取原始字符串的长度和与场景应用类型相对应的预设长度。

其中,原始字符串的长度可直接采用strlen()函数获取。预设长度是根据场景应用类型预先设置的用于判定是否需要对有效字符串进行提取的长度。不同的场景应用类型对应的预设长度不同。例如,若场景应用类型为直播弹幕或者视频评论,则可将其预设长度设置为短句,如可将预设长度设置为15。若场景应用类型为论坛发表文章,则可将其预设长度相较于直播弹幕或者视频评论中的预设长度较长,如将论坛或者朋友圈中的预设长度设置为30。

s212:若原始字符串的长度大于预设长度,则执行采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串的步骤。

具体地,若原始字符串的长度大于预设长度,则证明原始字符串过长,则需通过执行步骤s20(即执行采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串的步骤),以排除非敏感词的干扰,获取待测字符串。

s213:若原始字符串的长度不大于预设长度,则将有效字符串作为待测字符串。

具体地,若原始字符串的长度不大于预设长度,则证明原始字符串的长度较短,若执行步骤s20,则有可能会将敏感词作为非敏感词过滤掉的情况,因此无需执行步骤s20,可直接将有效字符串作为待测字符串,并执行步骤s30。

本实施例中,通过判断原始字符串的长度是否大于与场景应用类型相对应的预设长度,若原始字符串的长度大于预设长度,则会影响后续敏感词过滤的效率,因此需执行步骤s20,以排除非敏感词的干扰;若原始字符串的长度不大于预设长度,则无需执行步骤s20,直接将有效字符串作为待测字符串,以防止将敏感词作为非敏感词过滤掉的情况,提高敏感词过滤的泛化性。

在一实施例中,待测字符串包括按照顺序标签存储的至少一个待测字符;如图5所示,步骤s40中,即采用改进多模式匹配算法对待测字符串进行敏感词检测,获取目标敏感词,具体包括如下步骤:

s41:根据预先创建的敏感词库构建字母树,字母树包括成功指针、失败指针和根节点。

其中,成功指针是指按照敏感词库中的敏感词构建的指针,失败指针是指若成功指针的指向与待测字符不匹配时构建的指针。根节点是不包含字符的节点。由于敏感词库是不断更新的,因此可采用爬虫技术定时从网络上爬取更新的公开敏感词,以实时更新敏感词库,使得基于更新敏感词库构建的字母树对敏感词过滤更加准确。该敏感词库可包括各大平台网络的内容敏感词库,如百度敏感词库和自媒体敏感词库。字典树,又称trie树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。trie树的基本性质包括:

(1)根节点不包含字符,除根节点以外每个节点只包含一个字符。

(2)从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。

(3)每个节点的所有子节点包含的字符串不相同。

s42:基于字母树,按照待测字符串中的待测字符的顺序标签,依序对待测字符串中的待测字符进行敏感词检测。

s43:若第一顺序标签对应的第一待测字符在字母树中存在,则将第一待测字符作为当前节点,按照字母树中成功指针的路径,将成功指针指向下一个节点对应的特定字符。

其中,第一待测字符为待测字符串中第一个在字母树中查找到的待测字符。特定字符是字母树中以第一待测字符为当前节点,按照成功指针指向的节点对应的字符。成功指针的路径是指成功指针的指针指向路径。具体地,服务器先依照待测字符的顺序标签的顺序先读取待测字符串中的首位待测字符,然后在字母树中进行查找;若字母树中存在首位待测字符,则该首位待测字符作为第一待测字符,以该第一待测字符作为当前节点,按照字母树中的路径,将成功指针指向下一个节点对应的特定字符;若不存在,则读取待测字符串中首位待测字符的下一字符(即第二顺序标签对应的待测字符)进行查找。

以图2中的字母树为例进行说明(需说明,图2中虚线部分为失败指针的指向;实线部分为成功指针的路径、root为根节点、黑色背景圆圈为终止节点),假设待测字符串为sher(其中,待测字符串“sher”对应的顺序标签分别为0(即第一顺序标签)、1(即第二顺序标签)、2和3。由于首位待测字符(即“s”)在字母树中存在,则将待测字符“s”作为第一待测字符,并以该第一待测字符作为当前节点,按照字母树中的路径,将成功指针指向下一个节点对应的特定字符(即“a”和“h”)。

s44:若特定字符和第二顺序标签对应的第二待测字符匹配,则将第二待测字符作为当前节点,继续执行按照字母树中成功指针的路径,将成功指针指向下一个成功节点对应的特定字符的步骤,直至失败指针指向根节点时,终止循环,获取目标终止节点,基于根节点和终止节点按照字母树中成功指针的路径进行遍历,获取目标敏感词。

其中,第二待测字符是指与第一待测字符相邻的待测字符,也即第一待测字符对应的顺序标签加1,所得到的第二顺序标签对应的待测字符。继续以待测字符串为sher为例,服务器通过读取与当前节点对应的第一待测字符相邻的第二待测字符(即“h”),并将该待测字符“h”与步骤s43获取的特定字符“a”和“h”进行匹配,由图2可知,待测字符“h”与特定字符“h”匹配,则将该第二待测字符作为当前节点,继续执行按照字母树中成功指针的路径,将成功指针指向下一个节点对应的特定字符的步骤,并继续将特定字符与读取待测字符串中的第三顺序标签对应的待测字符进行匹配,即将特定字符串“e”和“r”与第三顺序标签对应的待测字符“e”进行匹配,可知,该待测字符“e”与特定字符“e”匹配,且“e”为终止节点,则将root节点到终止节点所得到的单词记录下来作为目标敏感词即“she”,并继续执行执行按照字母树中成功指针的路径,将成功指针指向下一个节点对应的特定字符的步骤,由于“e”为终止节点,因此按照终止节点“e”的失败指针的指向,以获取失败字符节点“e”,并将失败字符节点“e”作为特定字符与待测字符串中的第四顺序标签对应的待测字符“r”进行匹配,获取目标敏感词“sher”,直至失败指针指向root节点时,即终止节点“r”的失败指针指向root节点,终止循环,在循环中每一次指针在指向终止节点时,会将root节点到终止节点所得到的单词记录下来作为目标敏感词。

s45:若特定字符和第二顺序标签对应的第二待测字符不匹配,则按照预设验证规则验证第一待测字符是否为敏感字符。

其中,预设验证规则是预先设置的用于验证第一待测字符是否是敏感字符的验证规则。敏感字符是开发人员根据敏感词库统计的敏感词的词首所占敏感词库的比例超过预设阈值的字符。例如,通过对敏感词库进行分析,敏感词库中敏感词的词首为“我”的敏感词所占的比例超过预设阈值,则将“我”作为敏感字符,并设置自循环的逻辑以及自循环的循环次数。该自循环的循环次数是开发人员根据经验所获取的。需说明,当达到设置的自循环的循环次数时,则不再指向自身,按照敏感字符原本的失败指针路径指向对应的失败字符节点或根节点。

s46:若第一待测字符为敏感字符,则将特定字符对应的失败指针指向当前节点对应的第一待测字符,以保留第一待测字符,并继续执行基于字母树,按照待测字符串中的待测字符的顺序标签,依序对待测字符串中的待测字符进行敏感词检测的步骤。

具体地,由于在实际场景中,部分用户会在评论或弹幕中,发表含有敏感词的语句,为了防止敏感词被禁发,一些用户会采取跳词的方式(如:s@r)进行规避。目前的ac自动机中的失败指针是若成功指针的指向与待测字符不匹配时,将失败指针按照字母树中的失败指针的路径(即图2中的虚线部分),指向对应的字符或者根节点;当失败指针指向根节点时,则会跳过该待测字符即“s”,继续检测下一待测字符,这就导致对于跳词的敏感词是无法检测到。当出现跳词时,ac自动机会在识别到“s”时,进入到字母树中,检测到“@”并未在字母树中,而“s”的失败指针指向root节点,此时,对于含有跳词的“s@r”,则无法识别出敏感词“sr”,因此对采用跳词进行规避的敏感词无法进行准确识别。

本实施例中对ac自动机进行改进,即将待测字符(第一待测字符)即“s”作为敏感字符,并在敏感字符中添加自循环的逻辑(即将敏感字符的失败指针由原来的指向根节点更改为指向本身),以保留字符“s”,并继续读取下一待测字符“r”,以识别到敏感词“sr”,以有效识别跳词现象的敏感词,提高敏感词过滤的精度。

s47:若第一待测字符为非敏感字符,则按照字母树中失败指针的指向,将失败指针指向失败字符节点,并继续执行基于字母树,按照待测字符串中的待测字符的顺序标签,依序对待测字符串中的待测字符进行敏感词检测的步骤,直至检测到待测字符串中的最后一个顺序标签对应的待测字符。

具体地,若验证第一待测字符为非敏感字符,则按照字母树中失败指针的指向,将失败指针指向特定字符,继续执行步骤s42-s46,需说明,当某节点的指针(成功指针或失败指针)指向终止节点时,则将根节点到终止节点所得到的单词记录下来作为目标敏感词,并将该节点按照失败指针的指向继续读取待测字符串中的下一待测字符,直至检测到待测字符串中的最后一个待测字符。

本实施例中,通过将传统多模式匹配算法中的当失败指针指向根节点时,则会跳过待测字符,继续检测下一字符的机制进行改进,通过预设验证规则验证第一待测字符是否为第一敏感字符,以便给敏感字符增加自循环逻辑,即将敏感字符的失败指针指向该敏感字符本身,以保留该敏感字符,实现对于跳词情况的敏感词进行过滤的目的,提高敏感词过滤的精度和识别率。

在一实施例中,如图6所示,步骤s41中,即根据预先创建的敏感词库构建字母树,具体包括如下步骤:

s411:根据预先创建的敏感词库按照公共前缀原则构建成功指针,获取成功树,成功树包括至少一个成功节点和一根节点。

其中,成功树是指根据敏感词库创建的仅包含图2中实线部分的多叉树。成功节点是指成功树中所包含的节点。公共前缀原则是指按照相同前缀最多的节点作为父亲节点的原则。例如,敏感词包括“she”“shr”和“say”,根据这几个敏感词中所有敏感词的公共前缀为“s”,则将字符“s”作为父亲节点;而有两个敏感词的前缀为“sh”,则将“h”作为前缀字符“s”的子节点,并作为“e”和“r”的父亲节点,如图2所示。

s412:判断成功节点的父亲节点是否为根节点。

s413:若成功节点的父亲节点是根节点,则将成功节点的失败指针指向根节点。

其中,在创建成功树之后,还需根据成功树创建失败指针,以形成字母树。具体地,判断每一成功节点的父亲节点是否为根节点,若成功节点的父亲节点是根节点,则将成功节点的失败指针指向根节点,即图2中的字符节点“s”的父亲节点为root节点,则可直接将“s”的失败指针指向root节点。

s414:若成功节点的父亲节点不是根节点,则获取成功节点的父亲节点,基于成功节点的父亲节点对应的失败字符节点按照成功指针的路径,获取与所述失败字符节点对应的待匹配子节点,若待匹配子节点与成功节点匹配,则将成功节点的失败指针指向待匹配子节点。

其中,待匹配子节点是指成功节点的父亲节点对应的失败字符节点所对应的子节点。失败字符节点是成功节点的父亲节点对应的失败指针所指向的字符节点。如图2所示,成功节点“h”的父亲节点为“s”不是根节点,则获取成功节点的父亲节点(即“s”)对应的失败字符节点(即root节点)对应的待匹配子节点(即右支上的“h”);若待匹配子节点与成功节点匹配,则将成功节点的失败指针指向待匹配子节点,即将图中的字符节点“s的子节点“h”的失败指针指向根节点的子节点“h”。其中,待匹配子节点与成功节点匹配是指待匹配子节点中的字符与成功节点中的字符相同。

s415:若待匹配子节点与成功节点不匹配,则将成功节点的父亲节点对应的失败字符节点作为当前字符节点,若当前字符节点的父亲节点不是根节点,则获取当前字符节点的父亲节点对应的失败字符节点的待匹配子节点。

s416:若待匹配子节点与成功节点匹配,则将成功节点的失败指针指向待匹配子节点,直至当前字符对应的失败字符节点为根节点,则将成功节点的失败指针指向待匹配子节点,以生成字母树。

具体地,若待匹配子节点与成功节点不匹配,则将成功节点的父亲节点对应的失败字符节点作为当前字符节点。如图2中“shr”中的成功节点“r”,“r”的父亲节点“shr”中的“h”节点对应的失败字符节点是her中的h,而失败字符节点“h”(her中的节点)所对应的待匹配子节点为“e”,待匹配子节点“e”与成功节点“r”(shr中的节点)不匹配,则将成功节点“r”的父亲节点(shr中的节点)对应的失败字符节点“h”(her中的节点)作为当前字符节点,若当前字符节点“h”(her中的节点)的父亲节点是根节点,则将成功节点“r”的失败指针指向根节点。假设当前字符节点“h”的父亲节点不是根节点,则获取当前字符节点“h”的父亲节点对应的失败字符节点所包含的子节点即待匹配子节点,并执行步骤s414,直至当前字符对应的失败字符节点为根节点,则将成功节点的失败指针指向待匹配子节点,以生成字母树。

本实施例中,通过预先创建的敏感词库按照公共前缀原则构建成功指针,获取成功树,以便根据成功树中成功节点的父亲节点、父亲节点对应的失败字符节点以及失败字符节点的子节点即待匹配子节点,以构建字母树中的失败指针,生成字母树,以便后续根据字母树对待测字符串中的待测字符进行敏感词检测。

在一实施例中,如图7所示,步骤s50中,即对目标敏感词进行字符替换处理,获取目标字符串,具体包括如下步骤:

s51:获取敏感词配置指令,敏感词配置指令包括目标替换词。

其中,敏感词配置指令是用于对检测到的敏感词进行配置的指令。具体地,各需要进行敏感词过滤的系统或平台的管理员可自定义敏感词的替换词,如*。系统管理员可进入到敏感词配置界面中,通过手动输入或选择默认的替换词,作为目标替换词以对敏感词进行配置,以使服务器基于获取敏感词配置指令。可理解,目标替换词可为词语、单字、标点符号以及特殊字符等。

s52:将目标敏感词替换为目标替换词,获取目标字符串。

具体地,服务器根据目标替换词将检测到的目标敏感词中的字符进行替换,以获取目标字符串,并在所要发表的平台中显示目标字符串。可理解,该目标字符串是将原始字符串中的目标敏感词利用目标替换词进行替换所得到的字符串。例如,待测字符串为“s@r”,目标敏感词为“sr”且目标替换词为“*”则以“**”代替“sr”这两个字符,以获取目标字符串即“*@*”,并在所要发表的平台中显示该目标字符串,以达到敏感词过滤的目的。

本实施例中,通过提供敏感词配置的功能,以使服务器获取敏感词配置指令,以便通过敏感词配置指令中的用户自定义的替换词(即目标替换词),将目标敏感词替换为目标替换词,获取目标字符串,以实现用户可自定义替换词,增加敏感词过滤的实用性和自主性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种敏感词过滤装置,该敏感词过滤装置与上述实施例中敏感词过滤方法一一对应。如图8所示,该敏感词过滤装置包括原始字符串获取模块10、有效字符串获取模块20、待测字符串获取模块30、目标敏感词获取模块40和目标字符串获取模块50。各功能模块详细说明如下:

原始字符串获取模块10,用于获取客户端发送的原始字符串和场景应用类型。

有效字符串获取模块20,用于采用正则表达式匹配算法对原始字符串进行初步过滤,获取有效字符串。

待测字符串获取模块30,用于采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串。

目标敏感词获取模块40,用于采用改进多模式匹配算法对待测字符串进行敏感词检测,获取目标敏感词。

目标字符串获取模块50,用于对目标敏感词进行字符替换处理,获取目标字符串,并在客户端显示目标字符串。

具体地,该敏感词过滤装置还包括字符串长度获取单元211、第一待测字符串获取单元212和第二待测字符串获取单元213。

字符串长度获取单元211,用于获取原始字符串的长度和与场景应用类型相对应的预设长度。

第一待测字符串获取单元212,用于若原始字符串的长度大于预设长度,则执行采用与场景应用类型相对应的预设提取规则,对有效字符串进行提取,获取待测字符串的步骤。

第二待测字符串获取单元213,用于若原始字符串的长度不大于预设长度,则将有效字符串作为待测字符串。

具体地,目标敏感词获取模块40包括字母树构建单元41、敏感词检测获取单元42、特定字符获取单元43、第一处理单元44、第二处理单元45、第三处理单元46和第四处理单元47。

字母树构建单元41,用于根据预先创建的敏感词库构建字母树,字母树包括成功指针、失败指针和根节点。

敏感词检测获取单元42,用于基于字母树,按照待测字符串中的待测字符的顺序标签,依序对待测字符串中的待测字符进行敏感词检测。

特定字符获取单元43,用于若第一顺序标签对应的第一待测字符在字母树中存在,则将第一待测字符作为当前节点,按照字母树中成功指针的路径,将成功指针指向下一个节点对应的特定字符。

第一处理单元44,用于若特定字符和第二顺序标签对应的第二待测字符匹配,则将第二待测字符作为当前节点,继续执行按照字母树中成功指针的路径,将成功指针指向下一个成功节点对应的特定字符的步骤,直至失败指针指向根节点时,终止循环,获取目标终止节点,基于根节点和终止节点按照字母树中成功指针的路径进行遍历,获取目标敏感词。

第二处理单元45,用于若特定字符和第二顺序标签对应的第二待测字符不匹配,则按照预设验证规则验证第一待测字符是否为敏感字符。

第三处理单元46,用于若第一待测字符为敏感字符,则将特定字符对应的失败指针指向当前节点对应的第一待测字符,以保留第一待测字符,并继续执行基于字母树,按照待测字符串中的待测字符的顺序标签,依序对待测字符串中的待测字符进行敏感词检测的步骤。

第四处理单元47,用于若第一待测字符为非敏感字符,则按照字母树中失败指针的指向,将失败指针指向失败字符节点,并继续执行基于字母树,按照待测字符串中的待测字符的顺序标签,依序对待测字符串中的待测字符进行敏感词检测的步骤,直至检测到待测字符串中的最后一个顺序标签对应的待测字符。

具体地,字母树构建单元包括成功树获取子单元、判断子单元、第一失败指针构建子单元、第二失败指针构建子单元、待匹配子节点获取子单元和字母树生成子单元。

成功树获取子单元,用于根据预先创建的敏感词库按照公共前缀原则构建成功指针,获取成功树,成功树包括至少一个成功节点和一根节点。

判断子单元,用于判断成功节点的父亲节点是否为根节点。

第一失败指针构建子单元,用于若成功节点的父亲节点是根节点,则将成功节点的失败指针指向根节点。

第二失败指针构建子单元,用于若成功节点的父亲节点不是根节点,则获取成功节点的父亲节点,基于成功节点的父亲节点对应的失败字符节点按照成功指针的路径,获取与失败字符节点对应的待匹配子节点,若待匹配子节点与成功节点匹配,则将成功节点的失败指针指向待匹配子节点。

待匹配子节点获取子单元,用于若待匹配子节点与成功节点不匹配,则将成功节点的父亲节点对应的失败字符节点作为当前字符节点,若当前字符节点的父亲节点不是根节点,则获取当前字符节点的父亲节点对应的失败字符节点的待匹配子节点。

字母树生成子单元,用于若待匹配子节点与成功节点匹配,则将成功节点的失败指针指向待匹配子节点,直至当前字符对应的失败字符节点为根节点,则将成功节点的失败指针指向待匹配子节点,以生成字母树。

具体地,该敏感词过滤装置还包括敏感词配置指令获取单元和目标字符串获取单元。

敏感词配置指令获取单元,用于获取敏感词配置指令,敏感词配置指令包括目标替换词;

目标字符串获取单元,用于将目标敏感词替换为目标替换词,获取目标字符串。

关于敏感词过滤装置的具体限定可以参见上文中对于敏感词过滤方法的限定,在此不再赘述。上述敏感词过滤装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行敏感词过滤方法过程中生成或获取的数据,如目标字符串。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种敏感词过滤方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的敏感词过滤方法的步骤,例如图3所示的步骤s10-s50,或者图4至图7中所示的步骤。或者,处理器执行计算机程序时实现敏感词过滤装置这一实施例中的各模块/单元的功能,例如图8所示的各模块/单元的功能,为避免重复,这里不再赘述。

在一实施例中,提供一非易失性存储介质,该非易失性存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中用户帐号解锁方法的步骤,例如图3所示的步骤s10-s50,或者图4至图7中所示的步骤,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述敏感词过滤装置这一实施例中的各模块/单元的功能,例如图8所示的各模块/单元的功能,为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1