基于Java的网络信息过滤插件的研究
2021-12-24李应霆叶传奇李玉进尚嘉琳肖洋洋闫凯
李应霆 叶传奇 李玉进 尚嘉琳 肖洋洋 闫凯
摘要:随着互联网时代的发展,伴随着信息服务技术的不断迭代,由网络技术产生的相关应用逐步受到诸多行业的青睐,为了使上网更加方便快捷,越来越多的用户放弃传统的应用程序而选择安装相应插件,用以简化电脑环境。该文设计了一个过滤插件,该插件主要通过DFA过滤算法,实现了在网页中对含有敏感词汇的过滤。结果表明,与其他过滤算法相比,DFA算法在替换耗时和精确度方面都有较为优秀。
关键词:信息过滤;DFA算法;插件设计;关键词过滤中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2021)29-0062-02
1概述
由于互联网技术的不断发展,人们逐步认识到网络所起到的重要作用,并通过网络进行信息的传递与资源的共享来达到交流的目的。但是,在国内外网络上传播有利信息的同时,也会有不法分子利用其开源性、公共性等特点传播不良信息,使一些是非辨别能力较弱的人受到严重影响,更有甚者会危害到国家的安全与社会的稳定发展。因此互联网在加强人们沟通的同时,也需要更加稳定的过滤技术的加持。网络信息过滤主要针对互联网上信息鱼龙混杂的问题,但它同样也可以为解决信息化社会中人们想要自主设置信息获取的途径与内容等个性化定制需求提供一些新的思路。
2开发技术
插件。插件是一种遵循一定规范性应用程序接口编写出来的程序,其只能运行在规定的应用平台上,不可以脱离指定的应用平台而单独实现运行。其结构使应用程序编写具有良好的扩充和定制功能。其中有三种插件系统的实现方法,其中最重要的是实现插件与主程序之间的交互,一般按照一些特定规则的DLL,主程序将内存中的所有地址接口传递给插件,插件根据传递的地址接口来调用插件接口,以此完成所需要的功能或资源等。插件的编程实现包括两个方面:一方面是主程序的插件处理机制,管理每个插件接口并使每个插件进行初始化过程。另一方面是定义插件接口函数,将插件的所有接口函數进行封装,以便开发者可以自由调用该接口函数。
3主要过滤技术
3.1关键词过滤
关键词过滤方法是对文本中的不良信息或包含在文本里的敏感词汇进行提取并生成一个敏感词词库。当用户浏览新闻、小说等文本信息时,通过该过滤方法可以对文本内容与词库储存的敏感词进行分析比对。如果识别成功,那么敏感词会修改成***。不过关键词过滤技术的使用也包含一些缺点,比如对单个关键字进行过滤时并不能取得良好的效果;在不同语境上对文本语义的内容进行过滤可能会产生不准确的结果,过滤后文本的错报率和漏报率将会上升;同时网络上存在使用其他词语、拼音或图片形式等专门躲避敏感词的技巧,因此很难识别出这些不良过滤信息。
3.2 DFA算法
DFA算法即确定有穷自动机。一个DFA 中有穷个状态,主要分三种:初始状态、终止状态和中间状态。其状态间的转换公式为:状态×输入字符—>状态。定义一个DFA: A=(Σ,S,s0, F,N),其中Σ 表示一个输入字符的集合,S为状态的集合,s0为初始状态,F为终止集合,N为转换公式:S×Σ→S。转换样例如图 1所示。
从图1可得出一个转换公式表格如表1所示。
由表1可知:N(S0,0)=S1,N(N(S0,0),1)=S2。如式(1)所示:
N*(s,αβ)= N*(N*(s,α),β) (1)
4算法实现
已知DFA 的算法原理:包含一个有限状态集合和从一个状态通向另一个状态的有穷性的边,每条边上标记一个符号,其中一个状态是初态,其他某些状态是终态。将原理转化为逻辑实现如图2所示。
通过其代码流程,如图3所示进行举例说明:将敏感词“狗腿子”通过字典树切割成一个个字:“狗”“腿”“子”。当文本出现“狗”字时,算法开始在字典树中寻找,若存在该字则返回“狗”下面的子树,反之则不是敏感词。接着子树程序开始匹配第二个字“腿”,若存在则返回“腿”下面的子树,反之则不是敏感词。以此类推。若isEnd =1,表明敏感词搜索已经结束,检测词不是敏感词。
如图4、图5所示,分别采用10394057字节、4478244字节和36559837字节三组包含不定量的敏感词的文章,分别记作为 A、B、C组来进行敏感词过滤测试实验。从图表中通过对 DFA算法过滤方法与其他过滤方法进行的测试对比,从中发现 DFA算法在替换耗时和精确度上都有显著提升。
5插件设计
插件可以动态给软件添加功能,也可以随时删除,这样的优势使任何人都可以给这个软件进行功能上的扩展,而不用去改变软件本身的代码。本文以DFA算法为底层代码做成jar包形式的插件来实现敏感词过滤。考虑到用户对敏感词的需求不一致问题,有两种方法可供选择,一种是用户个性化自定义敏感词库,另一种是使用本插件已提供的基础敏感词库。
开发插件时,在固定的插件目录下存储插件相关文件,以方便之后插件下载、存储和部署问题。使用时,将jar包导入到需要的项目中,接着在电脑 C 盘根目录下新建一个 Sensitive⁃ Word.txt敏感词词库文件或将已提供好的敏感词词库文件放在 C盘根目录下。在需要过滤文本的程序中创建Sensitiveword⁃ Filter实例化对象filter,接着调用jar包中提供的接口,实现过滤方法 Set <String> set = filter.getSensitiveWord(string, 1),或 Set< String> set = filter.getSensitiveWord(string,2)来达到过滤文本的目的。其中 set存放的是文本中存在的敏感词,程序运行完成后可直接在控制台查看过滤信息;string 为待要过滤的文本;1 表示最小匹配规则;2表示最大匹配规则。完成文本过滤功能后,输出文本中的敏感词将会用***表示。
6结束语
随着计算机科学和信息技术飞速发展,网络方便了信息共享,推动社会进步。但通过网络传播不良信息仍是一个严重的社会问题。本文插件的研究采用多种过滤技术并用的方式来对网页不良信息进行有效的过滤和屏蔽,并加强了DFA算法,对特殊字符也能有效的识别并将其过滤,此插件通过减少未成年人接触敏感词、不良信息具有重大意义。
参考文献:
[1] 焦玉英,李法运.国外信息过滤研究进展[C].信息化与信息资源管理学术研讨会,武汉大学,2003.
[2] 庞雅丽,王彩芬.个性化信息过滤技术[J].甘肃科技,2007,23(3):124-126,171.
[3] 牛伟霞,张永奎.潜在语义索引方法在信息过滤中的应用[J].计算机工程与应用,2001,37(9):57-59,62.
[4] 何彬.网络化产品设计信息过滤器的设计与可靠性[D].武汉:武汉理工大学,2005.
[5] 丛健.不良信息过滤技术研究[D].北京:北京邮电大学,2012.
【通联编辑:代影】