发明内容
本申请提供敏感词汇检测方法、装置、设备及存储介质,以解决现有的敏感词检测方法存在漏检的技术问题。
第一方面,提供一种敏感词汇检测方法,包括:
获取待检测的目标词汇;
将所述目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果,所述第一匹配结果用于指示所述目标词汇是否为敏感词汇;
在根据所述第一匹配结果确定所述目标词汇不为敏感词汇的情况下,确定所述目标词汇的词汇属性是否正常;
在所述目标词汇的词汇属性不正常的情况下,对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇;
将所述至少一个变形词汇与所述预设敏感词汇库进行匹配,以得到第二匹配结果,所述第二匹配结果用于指示所述至少一个变形词汇是否为敏感词汇;
在根据所述第二匹配结果确定所述至少一个变形词汇中存在敏感词汇的情况下,确定所述目标词汇为敏感词汇。
在该技术方案中,在获取到待检测的目标词汇后,将目标词汇与预设敏感词汇库进行匹配,得到第一匹配结果,在根据第一匹配结果确定目标词汇不为敏感词汇的情况下,通过确定目标词汇的词汇属性是否正常,在目标词汇的词汇属性不正常的情况下,对目标词汇进行词汇变形,得到目标词汇对应的变形词汇,然后将目标词汇的变形词汇与预设敏感词汇库进行匹配,得到第二匹配结果,最后在根据第二匹配结果确定变形词汇中存在敏感词汇的情况下,确定目标词汇为敏感词汇。在待检测的目标词汇为变形的敏感词汇的情况下,通过对目标词汇进行变形,会使得变形得到的变形词汇中包含该变形的敏感词汇对应的原始敏感词汇;在将变形词汇与预设敏感词汇库进行匹配时,由于变形词汇中存在原始敏感词汇,会从变形词汇中检测出敏感词汇,进而可以将目标词汇识别确定为敏感词汇;这样,不论目标词汇为通过何种方式变形得到的敏感词汇,由于通过变形可以得到其对应的原始敏感词,进而可以通过对变形词汇进行识别而将其识别为敏感词汇,在敏感词汇库中的词汇不变的情况下能识别出变形的敏感词汇,防止出现漏检;另外,由于目标词汇和目标词汇对应的变形词汇均是与一个敏感词汇库进行匹配,敏感词汇库中只需存储原始敏感词汇即可,存储数量减少。
结合第一方面,在一种可能的实现方式中,所述对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇,包括:对所述目标词汇中的单词进行拆解和/或组合,以得到目标词汇对应的至少一个变形词汇。通过对目标词汇中的单词进行拆解和/或组合得到变形词汇,在目标词汇为拆解或组合得到的变形词汇的情况下,通过对其变形可以将其检测出来,防止出现漏检。
结合第一方面,在一种可能的实现方式中,所述对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇,包括:对所述目标词汇中的单词进行重排序,以得到所述目标词汇对应的至少一个变形词汇。通过对目标词汇中的单词进行重排序得到变形词汇,可以在目标词汇为重排序得到的变形词汇的情况下,通过对其变形将其检测出来,防止出现漏检。
结合第一方面,在一种可能的实现方式中,所述对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇,包括:获取与所述目标词汇的发音信息匹配的词汇;根据与所述目标词汇的发音信息匹配的词汇,确定所述目标词汇对应的至少一个变形词汇。通过获取与目标词汇的发音信息匹配的词汇确定变形词汇,可以在目标词汇为变换发音得到的变形词汇的情况下,通过对其变形将其检测出来,防止出现漏检。
结合第一方面,在一种可能的实现方式中,所述方法还包括:在所述目标词汇的词汇属性正常的情况下,确定所述目标词汇不为敏感词汇。
结合第一方面,在一种可能的实现方式中,所述方法还包括:在根据所述第二匹配结果确定每个变形词汇均不为敏感词汇的情况下,确定所述目标词汇不为敏感词汇。
结合第一方面,在一种可能的实现方式中,所述方法还包括:在根据所述第一匹配结果确定所述目标词汇为敏感词汇的情况下,确定所述目标词汇对应的目标获取场景;在所述目标词汇不在所述目标获取场景对应的可准词汇库中的情况下,确定所述目标词汇为敏感词汇。在检测出目标词汇为敏感词汇的情况下,通过确定目标词汇对应的场景,并根据目标词汇的场景对目标词汇进行进一步的判断,能够防止对敏感词的误判。
第二方面,提供一种敏感词汇检测装置,包括:
获取模块,用于获取待检测的目标词汇;
匹配模块,用于将所述目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果,所述第一匹配结果用于指示所述目标词汇是否为敏感词汇;
属性判断模块,用于在根据所述第一匹配结果确定所述目标词汇不为敏感词汇的情况下,确定所述目标词汇的词汇属性是否正常;
词汇变形模块,用于在所述目标词汇的词汇属性不正常的情况下,对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇;
所述匹配模块,还用于将所述至少一个变形词汇与所述预设敏感词汇库进行匹配,以得到第二匹配结果,所述第二匹配结果用于指示所述至少一个变形词汇是否为敏感词汇;
词汇确定模块,用于在根据所述第二匹配结果确定所述至少一个变形词汇中存在敏感词汇的情况下,确定所述目标词汇为敏感词汇。
第三方面,提供一种计算机设备,包括存储器以及一个或多个处理器,所述存储器连接至所述一个或多个处理器,一个或多个处理器用于执行存储在存储器中的一个或多个计算机程序,一个或多个处理器在执行一个或多个计算机程序时,使得该计算机设备实现上述第一方面的敏感词汇检测方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,上述程序指令当被处理器执行时使上述处理器执行上述第一方面的敏感词汇检测方法。
本申请可以实现如下技术效果:在待检测的目标词汇为变形的敏感词汇的情况下,通过对目标词汇进行变形,会使得变形得到的变形词汇中包含该变形的敏感词汇对应的原始敏感词汇;在将变形词汇与预设敏感词汇库进行匹配时,由于变形词汇中存在原始敏感词汇,会从变形词汇中检测出敏感词汇,进而可以将目标词汇识别确定为敏感词汇;这样,不论目标词汇为通过何种方式变形得到的敏感词汇,由于通过变形可以得到其对应的原始敏感词,进而可以通过对变形词汇进行识别而将其识别为敏感词汇,在敏感词汇库中的词汇不变的情况下能识别出变形的敏感词汇,防止出现漏检;另外,由于目标词汇和目标词汇对应的变形词汇均是与一个敏感词汇库进行匹配,敏感词汇库中只需存储原始敏感词汇即可,存储数量减少。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请的技术方案可应用于对敏感词汇进行检测的场景。例如,可应用在微博、QQ、微信、知乎等社交平台上,用以检测这些社交平台中的敏感词;或者,也可以应用于优酷、腾讯视频等视频网站上,用以检测视频播放过程中弹幕上的敏感词;或者,还可以应用于展示新闻报告、公号文章等文本内容的平台,用以在这些平台上检测文本内容中的敏感词;或者,可应用在淘宝、天猫等购物平台上,用以检测这些购物平台中的商品描述信息中的敏感词;等等,不限于这里描述的应用场景。
本申请的技术方案具体可应用在用于进行敏感词汇检测的计算机设备上,该计算机设备包括不限于智能手机、平板电脑、计算机、个人数字助理(personaldigitalassistant,PDA)、台式电脑等移动终端;也可以包括各种类型的服务器。例如,服务器可以是独立的服务器;也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdeliverynetwork,CDN)、以及大数据和人工平台等基础云计算服务的云服务器;还可以是服务器集群,等等,不限于这里的描述。
本申请的整体技术构思如下:在对敏感词汇进行检测的过程中,基于变形的敏感词汇与原始的敏感词汇之间的正反向变换关系(即原始的敏感词汇通过变形可得到变形的敏感词汇,变形的敏感词汇通过变形也可得到原始的敏感词汇),在检测出待检测的词汇不为敏感词汇,并且待检测的敏感词汇的词汇属性不正常的情况下,初步判定该待检测的词汇可能为变形的敏感词汇,再通过对待检测的词汇进行变形并根据对变形得到的词汇进行识别检测的方式完成对待检测的词汇是否为敏感词汇的进一步判定,由于变形的敏感词汇通过变形可得到原始的敏感词汇,在从变形词汇中检测出敏感词汇的情况下,说明待检测的词汇为变形得到的敏感词汇,此时将待检测的词汇确定为敏感词汇,可避免对变形的敏感词汇的漏检,保证敏感词检测的准确性。
参见图1,图1为本申请实施例提供的一种敏感词汇检测方法的流程示意图,该方法可以应用于前述提到的任意一种计算机设备上,该方法包括如下步骤:
S101,获取待检测的目标词汇。
其中,待检测的目标词汇是指需检测是否为敏感词汇的文本内容。例如,待检测的目标词汇可以为视频播放场景下的弹幕内容;又如,待检测的目标词汇也可以为在线聊天场景下的聊天内容;又如,待检测的目标词汇还可以为新闻报告、公众号文章、小说等长文本中的文本内容;又如,待检测的目标词汇还可以为淘宝、天猫等购物网站中的商品描述内容;等等,不限于这里的举例。
其中,可以通过实时获取、定时获取、用户触发获取等获取方式获取待检测目标词汇。
具体实现中,在敏感词汇检测场景中,对于该场景中待展示、待发布或待公开的文本内容,可以通过文本滑动窗对该文本内容进行提取,以获取到待检测的目标词汇,文本滑动窗的长度可大于或等于词汇的最大长度,文本滑动窗的长度可基于不同的检测场景进行设置。通过文本滑动窗对文本内容进行提取,能够考虑到文本内容中的单词(指词汇的最小组成结构)与单词之间的关联关系,保证对文本内容中的每个词汇的识别检测。应理解的是,也可以通过其他方式对待展示、待发布或待公开的文本内容进行提取,以获取到待检测的目标词汇。本申请不对获取待检测的目标词汇的方式进行限定。
S102,将目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果。
本申请实施例中,预设敏感词汇库为预设的用于存储原始敏感词汇的数据库,原始敏感词汇也可以称之为标准敏感词汇,是指没有经过变形的敏感词汇。其中,原始敏感词汇包括但不限于为字面表达中带有敏感政治倾向、暴力倾向或不健康色彩等含义的词汇,或者,字面表达中含有不文明用语的词汇。其中,预设敏感词汇库可以是通用的同时适用于多种敏感词检测场景的敏感词汇库,也可以是专属为某种敏感词检测场景所设置的特定敏感词汇库,本申请不做限制。
将目标词汇与预设敏感词汇库进行匹配,是指将目标词汇与预设敏感词汇库中的每一原始敏感词进行逐一对比,以确定目标词汇是否与预设敏感词汇库中的原始敏感词相同,或者,包含有预设敏感词汇库中的原始敏感词。第一匹配结果用于指示目标词汇是否为敏感词汇,如果目标词汇与预设敏感词汇库中的任一原始敏感词相同,或者包含预设敏感词汇库中的任一原始敏感词,则第一匹配结果用于指示目标词汇为敏感词汇;如果目标词汇与预设敏感词汇库中的所有原始敏感词均不相同,且目标词汇也未包含预设敏感词汇库中的任一原始敏感词,则第一匹配结果用于指示词汇不为敏感词汇。
在一些可能的实施方式中,可以基于暴力匹配(bruteforce,BF)算法、RK算法、BM算法、KMP算法等单模式串匹配算法将目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果。
在另一些可能的实施方式中,也可以通过多模式串匹配算法将目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果。具体地,可以基于预设敏感词汇库中的原始敏感词,构建敏感词典树,其中,敏感词典树中的一个节点表示一个单词,敏感词典树中的一条路径用于表示一个原始敏感词;然后基于广度优先搜索(breadthfirstsearch,BFS)算法对敏感词典树进行搜索,以构建失配指针表,其中,失配指针是指位置失配后能够继续跳转继续进行匹配的单词位置,失配指针表中用于存储一个原始敏感词中的一个单词与另一个敏感词中的其中一个单词之间的跳转关系,通过构建失配指针表可使得匹配过程不需要回溯;接着基于失配指针表和敏感词典树构建词典指向树,其中,词典指向树中包含的节点与敏感词典树中包含的节点相同,词典指向树用于指示敏感词典树中的单词与单词之间的跳转关系;最后从目标词汇的首个单词开始,与词典指向树中的节点进行匹配,以得到第一匹配结果。通过基于预设敏感词汇库中的原始敏感词构建词典指向树与目标词汇进行匹配的方式,能够提高匹配效率,节省匹配时间。
在根据第一匹配结果确定目标词汇为敏感词汇的情况下,说明目标词汇与预设敏感词汇库相匹配,目标词汇为敏感词汇的可能性较高,执行步骤S106;在根据第一匹配结果确定目标词汇不为敏感词汇的情况下,说明目标词汇与预设敏感词汇库不相匹配,还需对目标词汇进行进一步检测,以确定目标词汇是否为变形的敏感词汇,执行步骤S103。
S103,确定目标词汇的词汇属性是否正常。
这里,词汇属性是指能够表达词汇含义的信息,例如,名词、动词、形容词、数词、量词、代词,等等。如果目标词汇符合词性规则且具有明确的释义,则说明目标词汇的词汇属性正常;如果目标不符合词性规则或不具有明确的释义,则说明目标词汇的词汇属性不正常。其中,目标词汇符合词性规则是指目标词汇的词汇属性为某种语言(如中文、英文等)的词性中的一种。由于变形的词汇一般不具有正常的词汇属性,通过确定目标词汇的词汇属性是否正常,可以初步检测目标词汇是否为变形的词汇,有助于实现对目标词汇是否为敏感词汇的精准检测。
在一些可行的实施方式中,可以将目标词汇与预设的词性字典进行匹配,若目标词汇在预设的词性字典中或目标词汇包含词性字典中的任意一个词汇,则确定目标词汇的词汇属性正常,若目标词汇不在预设的词性字典中且不含词性字典中的任意一个词汇,则确定目标词汇的词汇属性不正常。其中,预设的词性字典可以是指中文字典、英文字典等。
当目标词汇的词汇属性正常时,说明目标词汇为未变形的词汇的可能性较高,因此可确定目标词汇不为敏感词汇,执行步骤S107;当目标词汇的词汇属性不正常时,说明目标词汇为变形的词汇的可能性较高,需通过进一步判断确定目标词汇是否为变形的敏感词汇,执行步骤S104。
S104,对目标词汇进行词汇变形,以得到目标词汇对应的至少一个变形词汇。
这里,对目标词汇进行词汇变形,以得到目标词汇对应的至少一个变形词汇,是指通过一种或多种变形转换的方式对目标词汇进行变换调整,以得到字形和/或发音与目标词汇相近似的词汇,或者与目标词汇的关联度较高的词汇。这些字形和/或发音与目标词汇相近似的词汇或者与目标词汇的关联度较高的词汇统称为目标词汇对应的变形词汇。其中,目标词汇与目标词汇对应的变形词汇之间的关联关系为:用户基于目标词汇能够联想到变形词汇或用户变形词汇能够联想到目标词汇。例如,目标词汇为“V信”,与其对应的变形词汇可以为“微信”,基于“V信”,人们能够联想到“微信”;又如,目标词汇为“芝乎”,其对应的变形词汇可以为“知乎”。
本申请实施例中,可以通过如下变形方式中的一种或多种对目标词汇进行变形,以得到目标词汇对应的变形词汇:
第一种方式,对目标词汇中的单词进行拆解和/或组合,以得到目标词汇对应的至少一个变形词汇。
本申请实施例中,单词为词汇的最小组成结构。具体地,单词可以为一个汉字、一个数字、一个英文单词、一个英文字母,等等。目标词汇中的单词可根据目标词汇中的字符相互之间的间距进行识别确定,一般来说,两个单词之间的间距大于同一个单词中的两个字符之间的间距。以目标词汇为“烧火”、“火尧火”为例,字符“火”和“尧”在目标词汇“烧火”中的间距小于在目标词汇“火尧火”中的间距,对于目标词汇“烧火”来说,字符“火”和“尧”属于同一个单词“烧”,而对于目标词汇“火尧火”来说,字符“火”和“尧”为两个单词。
对单词进行拆解是指对目标词汇中的可拆解单词进行分拆,形成该可拆解单词对应的至少两个分解单词,可拆解单词是指目标词汇中能够分拆的单词。如果可拆解单词为中文,则可以按偏旁部首对可拆解单词进行拆解,得到组成该可拆解单词的分解单词。例如,可拆解单词为“烧”,则可以将其拆分为“火”、“尧”。如果可拆解单词为英文,则可以按英文单词构成对可拆解单词进行拆解,得到组成该可拆解单词的分解单词,例如,可拆解单词为“applepay”,则可以将其拆分为“apple”、“pay”。
对目标词汇中的单词进行组合,是指将目标词汇中相邻单词进行组合,组成新的词汇。例如,目标词汇为“身寸木仓”,由于“身”和“寸”可以组合为“射”,“木”和“仓”可以组合为“枪”,则目标词汇“身寸木枪”可以组合为“射枪”。
具体实现中,可以获取目标词汇中的每一个单词,然后判断目标词汇中的每一个单词是否可拆分,在第一单词可拆分的情况下,对第一单词进行拆分,从而得到目标词汇对应的变形词汇,其中,第一单词为目标词汇中的任一单词;还可以判断目标词汇中的相邻单词是否可以组合形成新词,如果可形成新单词,则对能组合为新单词的单词进行组合,从而得到变形词汇。
在目标词汇为通过拆解或组合得到的变形词汇的情况下,通过对目标词汇中的单词进行拆解和/或组合得到目标词汇对应的变形词汇,能够得到目标词汇变形前的原始敏感词汇,该原始敏感词汇能够在后续与预设敏感词汇库进行匹配时被检测出来,使得目标词汇也能被检测出来,可以避免对拆解或组合得到的变形词汇的漏检。
第二种方式,对目标词汇中的单词进行重排序,以得到目标词汇对应的至少一个变形词汇。
对目标词汇中的单词进行重排序,是指调换目标词汇中的单词的顺序,以得到变形词汇,其中,变形词汇的数量为
n代表目标词汇中的单词的数量。
例如,目标词汇为“萨卡帝”,则目标词汇对应的变形词汇分别为“萨帝卡”、“卡萨帝”、“卡帝萨”、“帝卡萨”、“帝萨卡”。
在目标词汇为重排序得到的变形词汇的情况下,通过对目标词汇中单词进行重排序得到目标词汇对应的变形词汇,能够得到目标词汇变形前的原始敏感词汇,该原始敏感词能够在后续与预设敏感词汇库进行匹配时被检测出来,使得目标敏感词汇也能被检测出来,可以避免对重排序得到的变形词汇的漏检。
第三种方式,获取与目标词汇的发音信息匹配的词汇;根据与目标词汇的发音信息匹配的词汇,确定目标词汇对应的至少一个变形词汇。
这里,与目标词汇的发音信息匹配的词汇,可以是指发音信息与目标词汇的发音信息的相似度大于预设阈值的词汇。
在一种可行的实施方式中,可以确定目标词汇中的各个单词的音素,并确定与各个单词的音素相同的候选单词,将确定出的各个候选单词进行组合,以得到与目标词汇的发音信息匹配的词汇。
例如,目标词汇为“阳光”,“阳”包含的音素为“y”和“ang”,“光”包含的音素为“g”、“u”、“ang”,则可以获取包含音素“y”和“ang”的单词,作为第一候选单词,并获取包含音素“g”、“u”、“ang”的单词,作为第二候选单词,将获取到的一个第一候选单词与一个候选单词进行组合,得到一个词汇,以此得到与目标词汇的发音信息匹配的词汇。
由于一些音素的发音相近,进一步地,还可以将与各个单词的音素互为混淆音素关系的音素所对应的单词也作为候选单词,然后将确定出的各个候选单词进行组合,得到与目标词汇的发音信息匹配的词汇。
例如,目标词汇为“上海”,“上”包含的音素为“sh”和“ang”,“海”包含的音素为“h”和“ai”,由于“sh”与“s”的发音相似,它们互为混淆音素关系,因此,除了将包含“sh”和“ang”的单词作为第一候选单词外,还将包含“s”和“sang”的单词也作为第一候选单词,并将包含“h”和“ai”的单词作为第二候选单词,然后将获取到的一个第一候选单词与一个候选单词进行组合,得到一个词汇,以此得到与目标词汇的发音信息匹配的词汇。
具体地,可以直接将与目标词汇的发音信息匹配的词汇确定为目标词汇对应的至少一个变形词汇;可选地,在与目标词汇的发音信息匹配的词汇的数量大于预设数量阈值的情况下,还可以计算与目标词汇的发音信息匹配的词汇与目标词汇的相似度,将相似度较高的一个或多个词汇确定为目标词汇对应的至少一个变形词汇。通过筛选确定目标词汇对应的变形词汇的方式,有利于后续提高变形词汇与预设敏感词汇库进行匹配的速度,从而可以提高敏感词检测的速度。
在一种具体实现方式中,可以计算与目标词汇的发音信息匹配的词汇和目标词汇中相同单词位置处的单词的发音相似度和字形相似度,根据该发音相似度和字形相似度,得到该相同单词位置处的相似度,以此得到与目标词汇的发音信息匹配的词汇和目标词汇中各个单词位置处的相似度;然后对各个单词位置处的相似度进行求和或求和平均,得到与目标词汇的发音信息匹配的词汇与目标词汇的相似度。其中,有关于计算相同单词位置处的两个单词的发音相似度和字形相似度的方式,可采用任意一种计算发音相似度和字形相似度的方式,本申请不做限制。在计算得到一个单词位置处两个单词的发音相似度和字形相似度后,可以对发音相似度和字形相似度进行加权求和,得到一个单词位置处两个单词的相似度。通过计算与目标词汇的发音信息匹配的词汇和目标词汇中的单词的发音相似度和字形相似度来计算与目标词汇的发音信息匹配的词汇和目标词汇的相似度,能够从与目标词汇的发音信息匹配的词汇找出字形和发音上与目标词汇更为相似的词汇,将其确定为目标词汇对应的至少一个变形词汇;在目标词汇为变形的敏感词汇的情况下,能够更准确地找出目标词汇对应的原始敏感词汇。
在目标词汇为变换发音得到的变形词汇的情况下,通过根据与目标词汇的发音信息匹配的词汇确定目标词汇对应的变形词汇,能够得到目标词汇变形前的原始敏感词汇,该原始敏感词能够在后续与预设敏感词汇库进行匹配时被检测出来,使得目标敏感词汇也能被检测出来,可以避免对变换发音得到的变形词汇的漏检。
不限于上述变形方式,在可选的实施方式中,还可以有更多的变形方式。例如,还可以对目标词汇进行缩写(包括拼音缩写)或者对目标词汇进行缩写还原(包括拼音缩写还原)等方式进行变形,以得到目标词汇对应的变形词汇。或者,还可以通过预先训练语义扩展模型对目标词汇进行语义扩展,以得到目标词汇对应的至少一个变形词汇。其中,对目标词汇进行词汇变形的方式可随各种敏感词替换变形的方式进行更新。
应理解的是,在通过变形得到的词汇的数量较多的情况下,可以参考前述根据与目标词汇的发音信息匹配的词汇,确定目标词汇对应的至少一个变形词汇的方式,计算变形得到的词汇与目标词汇的相似度,将相似度较高的一个或多个词汇作为目标词汇对应的变形词汇。其中,计算变形得到的词汇与目标词汇的相似度的方式不仅限于上述方式。
S105,将目标词汇对应的至少一个变形词汇与预设敏感词汇库进行匹配,以得到第二匹配结果。
其中,将变形词汇与预设敏感词汇库进行匹配的方式可参考将目标词汇与预设敏感词汇库进行匹配的方式,此处不再赘述。
第二匹配结果用于指示目标词汇对应的至少一个变形词汇是否为敏感词汇。在根据第二匹配结果确定至少一个变形词汇中存在敏感词汇的情况下,说明对目标词汇进行变形得到原始敏感词汇,目标词汇为变形的敏感词汇的可能性极高,执行步骤S107;在根据第二匹配结果确定至少一个变形词汇中不存在敏感词汇的情况下,说明对目标词汇进行变形,未得到原始敏感词汇,目标词汇不为变形的敏感词汇,执行步骤S108。
S106,确定目标词汇对应的目标获取场景,判断目标词汇是否在目标获取场景对应的可准词汇库中。
这里,目标获取场景是指敏感词检测场景,也即获取到目标词汇的场景。由于在不同的敏感词检测场景中,其对应的敏感词定义和敏感词规则各不相同,例如,“插入”一词,在一些小说类网站中会被认定为是敏感词汇,而在一些购物网站上,其属于一个正常的操作词汇。为了避免一些正常词汇被误检测为敏感词,可以针对不同的敏感词检测场景,设置不同的可准词汇库,可准词汇库用于存储在当前敏感词检测场景中为正常而在其他敏感词检测场景中属于敏感词汇的词汇。
在目标词汇在目标获取场景对应的可准词汇库中的情况下,说明目标词汇为正常词汇而非为敏感词汇,执行步骤S108;在目标词汇不在目标获取场景对应的可准词汇库中的情况下,说明目标词汇为敏感词汇,执行步骤S107。在检测出目标词汇为敏感词汇的情况下,通过确定目标词汇对应的场景,并根据目标词汇的场景对目标词汇进行进一步的判断,能够防止对敏感词的误判。
S107,确定目标词汇为敏感词汇。
S108,确定目标词汇不为敏感词汇。
在上述图1的技术方案中,在获取到待检测的目标词汇后,将目标词汇与预设敏感词汇库进行匹配,得到第一匹配结果,在根据第一匹配结果确定目标词汇不为敏感词汇的情况下,通过确定目标词汇的词汇属性是否正常,在目标词汇的词汇属性不正常的情况下,对目标词汇进行词汇变形,得到目标词汇对应的变形词汇,然后将目标词汇的变形词汇与预设敏感词汇库进行匹配,得到第二匹配结果,最后在根据第二匹配结果确定变形词汇中存在敏感词汇的情况下,确定目标词汇为敏感词汇。在待检测的目标词汇为变形的敏感词汇的情况下,通过对目标词汇进行变形,会使得变形得到的变形词汇中包含该变形的敏感词汇对应的原始敏感词汇;在将变形词汇与预设敏感词汇库进行匹配时,由于变形词汇中存在原始敏感词汇,会从变形词汇中检测出敏感词汇,进而可以将目标词汇识别确定为敏感词汇;这样,不论目标词汇为通过何种方式变形得到的敏感词汇,由于通过变形可以得到其对应的原始敏感词,进而可以通过对变形词汇进行识别而将其识别为敏感词汇,在敏感词汇库中的词汇不变的情况下能识别出变形的敏感词汇,防止出现漏检;另外,由于目标词汇和目标词汇对应的变形词汇均是与一个敏感词汇库进行匹配,敏感词汇库中只需存储原始敏感词汇即可,存储数量减少。
可选地,对于上述步骤S103,也可以预先训练用于判断词汇属性是否正常的词汇属性辨别模型,然后将目标词汇输入至词汇属性辨别模型中,基于词汇属性辨别模型的输出结果确定目标词汇的词汇属性是否正常。其中,词汇属性辨别模型可以为通用的用于判断检测词汇的词汇属性是否正常的模型,也可以为专属的用于判断敏感词检测场景中的词汇的词汇属性是否正常的模型。
在一种具体实施方式中,词汇属性辨别模型可以由编码模型、基于转换器的双向编码表征(bidirectional encoder representations from transformers,BERT)模型和全连接层组成,其中,编码模型用于对目标词汇进行编码,以得到目标词汇对应的字向量、句向量和位置向量;BERT模型用于对目标词汇对应的字向量、句向量和位置向量进行特征提取,得到目标词汇的语义特征;全连接层用于基于目标词汇的语义特征得到目标词汇的辨别结果,该辨别结果用于指示目标词汇的词汇属性是否正常。
在一些可能的场景中,为了保证词汇属性辨别模型能够更好地区分敏感词检测场景中变形的词汇和未变形的词汇,可以利用敏感词检测场景中的敏感词汇来对通用的词汇属性辨别模型进行训练,得到目标词汇属性辨别模型;上述步骤S103具体包括:通过目标词汇属性辨别模型确定目标词汇的词汇属性是否正常。上述方法还可以包括:通过敏感词检测场景中的敏感词汇对初始词汇属性辨别模型进行训练,得到目标词汇属性辨别模型。其中,初始词汇属性辨别魔偶性可以为通用的词汇属性辨别模型。通用的词汇属性辨别模型是指能够辨别词汇的词汇属性是否正常的模型。
其中,可以通过如下步骤A1-A5对初始词汇属性辨别模型进行训练,得到目标词汇属性辨别模型。步骤A1-A5以初始词汇属性辨别模型包括前述的编码模型、基于转换器的双向编码表征(bidirectional encoder representations from transformers,BERT)模型和全连接层为例。
A1、获取原始敏感词汇样本对。
这里,原始敏感词汇样本是指用作训练样本的原始敏感词汇;一个原始敏感词汇样本对包括两个原始敏感词汇样本。
具体实现中可以从预设敏感词汇库中获取两个原始敏感词汇,作为原始敏感词汇样本对。
A2、对目标原始敏感词汇样本进行词汇变形,以得到原始敏感词汇样本对对应的多个变形词汇样本。
其中,目标原始敏感词汇样本为原始敏感词汇样本对中的任意一个原始敏感词汇样本。对目标原始敏感词汇样本进行词汇变形的方式,可参考前述步骤S104介绍的变形方式,此处不再赘述。
A3、将原始敏感词汇样本对和原始敏感词汇样本对对应的多个变形词汇样本输入至初始词汇属性辨别模型中,获取初始词汇属性辨别模型中的BERT模型输出的原始敏感词汇样本对和多个变形词汇样本各自对应的语义特征。
具体地,将原始敏感词汇样本对和多个变形词汇样本输入至词汇属性辨别模型中后,词汇属性辨别模型中的编码模型会分别对原始敏感词汇样本对中的两个原始敏感词汇样本和多个变形词汇样本进行编码,以得到该两个原始敏感词汇样本和多个变形词汇样本各自对应的字向量、句向量和位置向量;BRET模型会分别对该两个原始敏感词汇样本和多个变形词汇样本各自对应的字向量、句向量和位置向量进行特征提取,以得到该两个原始敏感词汇样本和多个变形词汇样本各自对应的语义特征。其中,语义特征以向量的形式进行呈现。
A4、根据原始敏感词汇样本对和多个样本变形词样本各自对应的语义特征计算初始词汇属性辨别模型的损失。
具体地,根据原始敏感词汇样本和多个样本变形词样本各自对应的语义特征计算初始词汇属性辨别模型的损失的具体计算公式如下:
其中,L为初始词汇属性辨别模型的损失,N-1为原始敏感词汇样本对对应的多个变形词汇样本的数量,Ui为目标原始敏感词汇样本对应的语义特征与第i个变形词汇样本样本对应的语义特征之间的余弦相似度,U0为目标原始敏感词汇样本对应的语义特征与原始敏感词汇样本对中除目标原始敏感词汇样本之外的另一个原始敏感词汇样本对应的语义特征之间的余弦相似度。
A5、根据词汇属性辨别模型的损失对初始词汇属性辨别模型中的BERT模型进行迭代调参,以得到目标词汇属性辨别模型。
这里,根据初始词汇属性辨别模型的损失对词汇属性辨别模型中的BERT模型进行迭代调参,是指根据初始词汇属性辨别模型的损失,调整BERT模型的参数,以使得初始词汇属性辨别模型的损失减小,直至初始词汇属性辨别模型的损失小于预设阈值,或者调参次数大于预设次数,最后调整得到的词汇属性辨别模型即为目标词汇属性辨别模型。应理解的是,每调整一次参数,则返回执行步骤A1-A4,每一次执行所获取的原始敏感词汇样本对可以有所不同,每一次执行所采用的变形方式也可以不同。
在上述步骤A1-A5中,通过获取原始敏感词汇样本对和原始敏感词汇样本对对应的多个变形词汇样本,并将原始敏感词汇样本对和原始敏感词对对应的多个变形词汇样本输出到初始词汇属性辨别模型中,然后根据初始词汇属性辨别模型中的BERT模型输出的原始敏感词汇样本对和多个样本变形词样本各自对应的语义特征计算初始词汇属性辨别模型的损失,并基于该损失对BERT模型进行迭代调参,使得初始词汇属性辨别模型中的BERT模型能够学习到原始敏感词汇之间的相似性,和,原始敏感词汇与变形的敏感词汇之间的差异性,从而能够减小类内(即原始敏感词汇与原始敏感词汇之间)方差,增大类间(原始敏感词汇与变形的敏感词汇之间)方差,从而使得词汇属性辨别模型具有更强的辨别原始敏感词汇和变形的敏感词汇的能力,这样就增强词汇属性辨别模型确定目标词汇的词汇属性是否正常的能力。在通过目标词汇属性辨别模型确定目标词汇的词汇属性是否正常的过程中,能够准确地判断目标词汇的词汇属性。
参见图2,图2是本申请实施例提供的一种敏感词汇检测装置的结构示意图。如图2所示,该敏感词汇检测装置20包括:
获取模块201,用于获取待检测的目标词汇;
匹配模块202,用于将所述目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果,所述第一匹配结果用于指示所述目标词汇是否为敏感词汇;
属性判断模块203,用于在根据所述第一匹配结果确定所述目标词汇不为敏感词汇的情况下,确定所述目标词汇的词汇属性是否正常;
词汇变形模块204,用于在所述目标词汇的词汇属性不正常的情况下,对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇;
所述匹配模块202,还用于将所述至少一个变形词汇与所述预设敏感词汇库进行匹配,以得到第二匹配结果,所述第二匹配结果用于指示所述至少一个变形词汇是否为敏感词汇;
词汇确定模块205,用于在根据所述第二匹配结果确定所述至少一个变形词汇中存在敏感词汇的情况下,确定所述目标词汇为敏感词汇。
在一种可能的设计中,上述词汇变形模块204具体用于:对所述目标词汇中的单词进行拆解和/或组合,以得到目标词汇对应的至少一个变形词汇。
在一种可能的设计中,上述词汇变形模块204具体用于:对所述目标词汇中的单词进行重排序,以得到所述目标词汇对应的至少一个变形词汇。
在一种可能的设计中,上述词汇变形模块204具体用于:获取与所述目标词汇的发音信息匹配的词汇;根据与所述目标词汇的发音信息匹配的词汇,确定所述目标词汇对应的至少一个变形词汇。
在一种可能的设计中,上述词汇确定模块205还用于:在所述目标词汇的词汇属性正常的情况下,确定所述目标词汇不为敏感词汇。
在一种可能的设计中,上述词汇确定模块205还用于:在根据所述第二匹配结果确定每个变形词汇均不为敏感词汇的情况下,确定所述目标词汇不为敏感词汇。
在一种可能的设计中,上述敏感词汇检测装置20还包括场景获取模块206,用于在根据所述第一匹配结果确定所述目标词汇为敏感词汇的情况下,确定所述目标词汇对应的目标获取场景;上述词汇确定模块205还用于:在所述目标词汇不在所述目标获取场景对应的可准词汇库中的情况下,确定所述目标词汇为敏感词汇。
需要说明的是,图2对应的实施例中未提及的内容可参见前述方法实施例的描述,这里不再赘述。
上述装置,在获取到待检测的目标词汇后,将目标词汇与预设敏感词汇库进行匹配,得到第一匹配结果,在根据第一匹配结果确定目标词汇不为敏感词汇的情况下,通过确定目标词汇的词汇属性是否正常,在目标词汇的词汇属性不正常的情况下,对目标词汇进行词汇变形,得到目标词汇对应的变形词汇,然后将目标词汇的变形词汇与预设敏感词汇库进行匹配,得到第二匹配结果,最后在根据第二匹配结果确定变形词汇中存在敏感词汇的情况下,确定目标词汇为敏感词汇。在待检测的目标词汇为变形的敏感词汇的情况下,通过对目标词汇进行变形,会使得变形得到的变形词汇中包含该变形的敏感词汇对应的原始敏感词汇;在将变形词汇与预设敏感词汇库进行匹配时,由于变形词汇中存在原始敏感词汇,会从变形词汇中检测出敏感词汇,进而可以将目标词汇识别确定为敏感词汇;这样,不论目标词汇为通过何种方式变形得到的敏感词汇,由于通过变形可以得到其对应的原始敏感词,进而可以通过对变形词汇进行识别而将其识别为敏感词汇,在敏感词汇库中的词汇不变的情况下能识别出变形的敏感词汇,防止出现漏检;另外,由于目标词汇和目标词汇对应的变形词汇均是与一个敏感词汇库进行匹配,敏感词汇库中只需存储原始敏感词汇即可,存储数量减少。
参见图3,图3是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备30包括处理器301、存储器302。存储器302连接至处理器301,例如通过总线连接至处理器301。
处理器301被配置为支持该计算机设备30执行上述方法实施例中的方法中相应的功能。该处理器301可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器302用于存储程序代码等。存储器302可以包括易失性存储器(volatilememory,VM),例如随机存取存储器(random access memory,RAM);存储器302也可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器302还可以包括上述种类的存储器的组合。
处理器301可以调用所述程序代码以执行以下操作:
获取待检测的目标词汇;
将所述目标词汇与预设敏感词汇库进行匹配,以得到第一匹配结果,所述第一匹配结果用于指示所述目标词汇是否为敏感词汇;
在根据所述第一匹配结果确定所述目标词汇不为敏感词汇的情况下,确定所述目标词汇的词汇属性是否正常;
在所述目标词汇的词汇属性不正常的情况下,对所述目标词汇进行词汇变形,以得到所述目标词汇对应的至少一个变形词汇;
将所述至少一个变形词汇与所述预设敏感词汇库进行匹配,以得到第二匹配结果,所述第二匹配结果用于指示所述至少一个变形词汇是否为敏感词汇;
在根据所述第二匹配结果确定所述至少一个变形词汇中存在敏感词汇的情况下,确定所述目标词汇为敏感词汇。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only memory,ROM)或随机存储记忆体(Random Accessmemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。