掌桥专利:专业的专利平台
掌桥专利
首页

基于DFA算法的敏感词过滤方法及系统

文献发布时间:2023-06-19 11:57:35


基于DFA算法的敏感词过滤方法及系统

技术领域

本发明涉及信息过滤技术领域,特别涉及一种基于DFA算法的敏感词过滤方法及系统。

背景技术

随着互联网的日益普及和不断深入,通过网络、人们可以看到越来越多的言论文章,同时、其本身发布的言论文章也会被越来越多的人看到。控制这些言论文章的质量,确保其中没有敏感词汇、在互联网上的传播和扩散不会影响社会的稳定和用户的使用,就显得尤为必要。以往,发布言论文章的场景有限,对它们的扩散延迟性也没有什么要求,所以多采用管理员检查后再传播的方式,一些门户网站的评论留言就是采用这种方式。如今,发布文字信息的场景愈加广泛,如留言、弹幕、评论、即时通讯等,而且对这些文字信息的及时传播扩散也有了更多要求,一个能够在发布上传前即可快速完成检查的处理方式显得尤为重要。

现有技术方案在检查敏感词的时候,需要逐个取出敏感词,检索文字内容里是否包含,该处理需要检查到文字内容里的每个文字,而且,面对敏感词很多、文字内容很长情况时,这种过滤方式需要花费大量时间去完成检索,如果过滤要求是提示全部敏感词,则需要完完整整的对每个敏感词进行检索处理,时间花费就会更多。因此,本发明提出一种基于DFA算法的敏感词过滤方法,通过构建一个敏感词库,使用DAF算法(确定有穷自动机,Deterministic Finite Automaton),快速检查文字信息中是否存在敏感词汇,实现敏感词过滤,还可以找出其中的敏感词汇,帮助用户修改调整。

发明内容

本发明的目的在于提供一种基于DFA算法的敏感词过滤方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于DFA算法的敏感词过滤方法,包括:

将敏感词进行汇总,构建敏感词库;

基于所述敏感词库生成敏感词查找树;

将待检索文本内容按照文字顺序在所述敏感词查找树中检索,得到所述文字内容中包含的全部敏感词。

进一步地,所述基于所述敏感词库生成敏感词查找树,包括:

检查所述敏感词库;判断所述敏感词库中是否存在未处理敏感词;

当所述敏感词库中不存在未处理敏感词时,敏感词查找树构建完成;

当所述敏感词库中存在未处理敏感词时,将未处理敏感词取出,并针对取出的未处理敏感词进行二次检查。

进一步地,所述针对取出的未处理敏感词进行二次检查时,当未处理敏感词存在多个时,将未处理敏感词逐一进行二次检查。

进一步地,所述针对取出的未处理敏感词进行二次检查时,判断所述未处理敏感词中是否存在未处理敏感字符;当所述未处理敏感词中存在未处理敏感字符时,将所述未处理敏感词中的下一个字符取出,在敏感词查找树的树根节点中检查是否存在以所述字符为标识的子树,如果不存在以所述字符为标识的子树,则创建一个以所述字符为标识的子树;如果存在以所述字符为标识的子树,则将以所述字符为标识的子树作为新的查找树。

进一步地,所述将待检索文本内容按照文字顺序在所述敏感词查找树中检索,包括:

检查待检索文本内容;判断所述待检索文本内容中是否存在未处理字符;

当所述待检索文本内容中存在未处理字符时,将所述未处理字符的下一个字符取出;

根据取出的未处理字符在所述敏感词查找树中查找以所述字符为标识的子树;

当所述敏感词查找树中存在以所述字符为标识的子树时,将所述敏感词查找树中以所述字符为标识的子树更新敏感词查找树;

当所述敏感词查找树中不存在以所述字符为标识的子树时,确定所述敏感词查找树是否为初始敏感词查找树;如果所述敏感词查找树是初始敏感词查找树,则在所述未处理字符后面继续进行检查待检索文本内容;如果所述敏感词查找树不是初始敏感词查找树,则在在初始敏感词查找树到当前敏感词查找树的更新过程中依次进行匹配。

进一步地,当所述待检索文本内容中存在未处理字符时,将所述未处理字符的下一个字符取出的过程中,如果所述未处理字符是所述待检索文本内容中的第一个字符,则将所述未处理字符取出。

进一步地,所述更新敏感词查找树时,将所述敏感词查找树中以所述字符为标识的子树替换当前的敏感词查找树,进而再在所述待检索文本内容中从所述未处理字符后面继续进行检查,重复在敏感词查找树中进行检索,直至所述待检索文本内容全部完成。

一种基于DFA算法的敏感词过滤系统,包括:服务模块、通信模块和过滤模块;所述服务模块包括敏感词数据库以及敏感词查找树,用于提供过滤服务;所述通信模块,用于连接所述服务模块与所述过滤模块之间的通信服务;所述过滤模块,用于根据所述敏感词查找树对待检索文本进行敏感词过滤。

进一步地,所述服务模块采用集群部署的方式,所述服务器模块中包含多个敏感词查找树,每个所述敏感词查找树作为一个应用程序,每个应用程序维护一个守护线程。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构建说明书的一部分,与本发明的实施例一起用于解释本发明,并不构建对本发明的限制。在附图中:

图1为本发明所述的一种基于DFA算法的敏感词过滤方法的步骤示意图;

图2为本发明所述的一种基于DFA算法的敏感词过滤方法中步骤二的一种流程示意图;

图3为本发明所述的一种基于DFA算法的敏感词过滤方法中步骤二的又一种流程示意图;

图4为本发明所述的一种基于DFA算法的敏感词过滤方法中步骤三的一种流程示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1所示,本发明实施例提供了一种基于DFA算法的敏感词过滤方法,包括:

步骤一、将敏感词进行汇总,构建敏感词库;

步骤二、基于所述敏感词库生成敏感词查找树;

步骤三、将待检索文本内容按照文字顺序在所述敏感词查找树中检索,得到所述文字内容中包含的全部敏感词。

上述技术方案在进行敏感词过滤时,前提是将所有的敏感词进行汇总,构建敏感词库,并且在敏感词库中,将根据敏感词生成敏感词查找树,进而将待检索文本内容按照文字先后顺序逐一在敏感查找树中检索,从而确定待检索文本内容中包含的所有敏感词。上述技术方案将待检索文本内容按照文字顺序在敏感词查找树中检索得到文字内容中包含的全部敏感词,只需要将待检索文本内容检索一次就能够将待检索文本内容中敏感词全部确定出来,避免一遍又一遍对待检索文本内容进行检索,从而有效缩短了敏感词过滤过程花费的时间,进而使得待检索文本内容在发布时能够不用再经过管理人工检查就可以马上传播扩散,提升用户体验感。

如图2所示,本发明提供的一个实施例中,所述基于所述敏感词库生成敏感词查找树,包括:

检查所述敏感词库;判断所述敏感词库中是否存在未处理敏感词;

当所述敏感词库中不存在未处理敏感词时,敏感词查找树构建完成;

当所述敏感词库中存在未处理敏感词时,将未处理敏感词取出,并针对取出的未处理敏感词进行二次检查。

上述技术方案基于敏感词库生成敏感词查找树时,针对敏感词库进行检查,从而判断敏感词库中是否存在未处理敏感词;如果敏感词库中不存在未处理敏感词,则敏感词查找树构建完成;如果敏感词库中存在未处理敏感词,则将未处理敏感词取出来,并针对取出的未处理敏感词进行二次检查。上述技术方案通过生成敏感词查找树使得敏感词库中的敏感词呈现树状脉络关系,从而为检索文本内容提高检索参考,而且敏感词查找树不仅是DFA算法的核心,还能够有效提高检索的效率。

本发明提供的一个实施例中,所述针对取出的未处理敏感词进行二次检查时,当未处理敏感词存在多个时,将未处理敏感词逐一进行二次检查。

上述技术方案在对取出的未处理敏感词进行二次检查时,如果未处理敏感词存在多个时,将未处理敏感词逐一进行二次检查,从而避免确定敏感词的过程出现混乱,进而提高敏感词过滤的准确性。

如图3所示,本发明提供的一个实施例中,所述针对取出的未处理敏感词进行二次检查时,判断所述未处理敏感词中是否存在未处理敏感字符;当所述未处理敏感词中存在未处理敏感字符时,将所述未处理敏感词中的下一个字符取出,在敏感词查找树的树根节点中检查是否存在以所述字符为标识的子树,如果不存在以所述字符为标识的子树,则创建一个以所述字符为标识的子树;如果存在以所述字符为标识的子树,则将以所述字符为标识的子树作为新的查找树。

上述技术方案在对取出的未处理敏感词进行二次检查的过程中,通过判断未处理敏感词中是否存在未处理敏感字符,从而采取不同的执行步骤;如果未处理敏感词中存在未处理敏感字符,则将未处理敏感词中的下一个字符取出,检查敏感词查找树的树根节点中是否存在以该字符为标识的子树,假如不存在以字符为标识的子树,那么创建一个以字符为标识的子树;假如存在以字符为标识的子树,那么将以字符为标识的子树作为新的查找树;如果未处理敏感词中不存在未处理敏感字符,则继续检查敏感词库。此外在敏感词为单个字符时,在构建敏感词查找树过程中,在生成子树时,不仅要添加上字符标识,还应该添加是否为敏感词最后一个字符的标识。上述技术方案通过二次检查使得敏感词库中的词语以查找树的形式呈现,使得敏感词库中的敏感词呈现成树状图,从而为DFA算法提供核心基础,通过改变从文字内容里检查敏感词的处理方式,使得只需要检索一次文字内容里的文字,就可以找出其中包含的敏感词。大大减少了处理时间,使得整个敏感词过滤过程更为快捷高效。

如图4所示,本发明提供的一个实施例中,所述将待检索文本内容按照文字顺序在所述敏感词查找树中检索,包括:

检查待检索文本内容;判断所述待检索文本内容中是否存在未处理字符;

当所述待检索文本内容中存在未处理字符时,将所述未处理字符的下一个字符取出;

根据取出的未处理字符在所述敏感词查找树中查找以所述字符为标识的子树;

当所述敏感词查找树中存在以所述字符为标识的子树时,将所述敏感词查找树中以所述字符为标识的子树更新敏感词查找树;

当所述敏感词查找树中不存在以所述字符为标识的子树时,确定所述敏感词查找树是否为初始敏感词查找树;如果所述敏感词查找树是初始敏感词查找树,则在所述未处理字符后面继续进行检查待检索文本内容;如果所述敏感词查找树不是初始敏感词查找树,则在在初始敏感词查找树到当前敏感词查找树的更新过程中依次进行匹配。

上述技术方案待检索文本内容按照文字顺序在敏感词查找树中检索,包括:检查待检索文本内容;判断待检索文本内容中是否存在未处理字符;当待检索文本内容中存在未处理字符时,将未处理字符的下一个字符取出;根据取出的未处理字符在敏感词查找树中查找以字符为标识的子树;当敏感词查找树中存在以字符为标识的子树时,将敏感词查找树中以字符为标识的子树更新敏感词查找树;当敏感词查找树中不存在以字符为标识的子树时,确定敏感词查找树是否为初始敏感词查找树;如果敏感词查找树是初始敏感词查找树,则在未处理字符后面继续进行检查待检索文本内容;如果敏感词查找树不是初始敏感词查找树,则在在初始敏感词查找树到当前敏感词查找树的更新过程中依次进行匹配。上述技术方案通过将待检索文本内容在敏感词查找树中进行敏感词过滤与确定时,无需一遍又一遍的进行,从而使得该敏感词过滤方法不仅适用于待检索文本内容少的,而且也适用于待检索文本内容多的,从而扩大了该敏感词过滤方法的适用范围,而且当待检索的文本内容在敏感词查找树中检索完成之后即可直接得到待检索文本内容中包含的所有敏感词,进而使得该敏感词过滤方法更加直观方便。

本发明提供的一个实施例中,当所述待检索文本内容中存在未处理字符时,将所述未处理字符的下一个字符取出的过程中,如果所述未处理字符是所述待检索文本内容中的第一个字符,则将所述未处理字符取出。

上述技术方案中,如果待检索文本内容中存在未处理字符时,将未处理字符的下一个字符取出的过程中,如果未处理字符是待检索文本内容中的第一个字符,则将未处理字符取出。在当只有一个字符时,判断这个字符在是不是敏感词最后一个字符,如果是则予以保存,这样就解决了敏感词为单个字符的问题,进而使得敏感词为单个字符也可以进行处理。上述技术方案通过未处理字符是否为待检索文本内容中的第一个字符进而在取出字符时取出不同位置的字符,从而避免检索不到造成检索结果出错。

本发明提供的一个实施例中,所述更新敏感词查找树时,将所述敏感词查找树中以所述字符为标识的子树替换当前的敏感词查找树,进而再在所述待检索文本内容中从所述未处理字符后面继续进行检查,重复在敏感词查找树中进行检索,直至所述待检索文本内容全部完成。

上述技术方案在更新敏感词查找树是将敏感词查找树中以字符为标识的子树替换当前的敏感词查找树,进而再在待检索文本内容中从未处理字符后面继续进行检查,重复在敏感词查找树中进行检索,直至待检索文本内容全部完成。上述技术方案通过在待检索文本内容中从未处理字符后面继续进行检查,从而避免检查消耗的时间,进而避免给待检索文本内容的发布造成延迟,提升用户的待检索文本内容发表者的使用体验感。

本发明提供的一种基于DFA算法的敏感词过滤系统,包括:服务模块、通信模块和过滤模块;所述服务模块包括敏感词数据库以及敏感词查找树,用于提供过滤服务;所述通信模块,用于连接所述服务模块与所述过滤模块之间的通信服务;所述过滤模块,用于根据所述敏感词查找树对待检索文本进行敏感词过滤。

上述技术方案中,在敏感词过滤系统中设有服务模块、通信模块和过滤模块;当过滤模块在对待检索文本进行敏感词过滤时,利于通信模块通过API接口调用服务模块中的敏感词查找树,在过滤模块中完成对待检索文本的逐一检索。上述技术方案在过滤模块中通过API接口使得服务模块对过滤模块提供敏感词查找树服务,不仅使得通信模块方便建立服务模块与过滤模块之间联系,方便调取,而且还提高了对外服务能力。此外,服务模块。在构建敏感词查找树过程中,在生成子树时,不仅要添加上字符标识,还应该添加是否为敏感词最后一个字符的标识,从而使得过滤模块,在当待检索文本为只有一个字符时,判断这个字符在是不是敏感词最后一个字符,如果是则予以保存,这样就可以解决敏感词为单个字符的问题,进而使得敏感词为单个字符也可以进行处理

本发明提供的一个实施例中,所述服务模块采用集群部署的方式,所述服务器模块中包含多个敏感词查找树,每个所述敏感词查找树作为一个应用程序,每个应用程序维护一个守护线程。

上述技术方案中,所述服务模块采用集群部署的方式,所述服务器模块中包含多个敏感词查找树,每个所述敏感词查找树作为一个应用程序,每个应用程序维护一个守护线程。上述技术方案能够使得既可以作为应用程序的一个模块部署,也可以作为一个独立的应用程序部署,而且,还可以单机部署,也可以进行大规模集群部署,从而使得伸缩性变强。此外每个应该呈现维护一个线程能够在多个呈现进行应用时提高处理效率,进而避免敏感词过滤延迟。

本领域技术人员应当理解的是,本发明中的第一、第二仅仅指的是不同应用阶段而已。

本领域技术客户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 基于DFA算法的敏感词过滤方法及系统
  • 基于动态词库的敏感词过滤方法及系统
技术分类

06120113117075