0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过Java语言实现敏感词过滤器软件的设计

电子设计 作者:电子设计 2018-10-02 13:02 次阅读

良好的网络文化对培养青少年的爱国意识、创新精神、促进青少年良好的个性发展以及文化学习等方面都有积极的作用。但是网络文化中混杂着种种不良因素,对青少年造成许多负面影响:网络中的不健康内容不利于青少年的成长,甚至造成许多青少年犯罪行为的不断发生;网络世界的虚拟性还会造成青少年对现实社会的不满,青少年对网络世界的过分迷恋会导致网络孤独,网络中多元化的内容会导致青少年认识偏差,网络的隐匿性容易使青少年道德弱化[1].特别令人担忧的是不良的网络文化对青少年的犯罪起着推动作用,值得全社会关注和重视。

本文提出了一种敏感词过滤器软件的设计,对网络中不良的内容进行查找、发现,避免这些不良网络文化侵蚀青少年的心灵健康。

1 敏感词过滤器的设计原理

敏感词过滤器的原理图如图1所示。其原理如下:(1)对敏感词库的内容进行分割,把敏感词库中所有的敏感词或词组分开,并把这些敏感词或词组存入数组中;(2)将待测文件库中的文件进行逐个读取,并记录文件的内容;(3)在待测文件中查找是否存在刚存放敏感词或脏词组内容的数组里面的内容,如果有,进行标注等操作;如果没有,继续检查待测文件库中的下一个待测文件,直到待测文件库中的待测文件都被检查完为止;(4)输出结果。即输出待测文件库中每个待测文件中包含敏感词或脏词组的个数及出处等信息

2 算法实现

软件开发环境:myeclipse平台,Java语言。首先以myeclipse平台新建一个java project,在新建的project中需要导入下面相关文件:

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.StringTokenizer;

过滤器软件中main函数的主要内容如下:

public static void main(String[] args) {

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String ans=null;

int cnt=0;//字库中关键词个数

int number=0;//敏感词出现次数

String filepath=“D:\\敏感词待测文件库”;

//待检测文件路径,此文件夹下可以放若干个待检测的文件

String fileLibrarypath=“D:\\敏感词典\\file.txt”;

//敏感词库文件的存放路径

File file = new File(filepath);

try {

//读入用户输入的回车键信息

System.out.println(“请按回车键,查看过滤信息:”);

String str = null;

str = br.readLine();

if (str != null) {

if (!file.isDirectory()) {

System.out.println(“待检测文件路径

不对,请修改路径。”);

} else if (file.isDirectory()) {

ans=getcontent(fileLibrarypath);

int k;

StringTokenizer sst=new

StringTokenizer(ans, “|”);

k = sst.countTokens();

String[] record = new String[k];

while (sst.hasMoreElements()) {

record[cnt] = sst.nextToken();

cnt++;

}

String[] filelist = file.list();

for (int i = 0, flen = filelist.length; i

< flen; i++){

String temp = filepath +

“\\” + filelist[i];

number = searchkeyword(record,

cnt, temp);

System.out.println(“第”+(i+1) +“文件中敏感词出现的次数:” + number);

//字库中关键词个数

}

} else {

//提示用户按回车键

System.out.println(“你还没有输入回

车键信息”);

}

}

} catch (IOException e) {

e.printStackTrace();

}

//输出查询结果

if (ans != null) {

System.out.println(“字库中关键词个数:”+ cnt);//字库中关键词个数

System.out.println(“敏感词库内容如下:”+ ans);

} else {

System.out.println(“没有可以匹配的信息”);

//输出敏感词库中的内容

}

}

//得到指定路径文件中的内容

private static String getcontent(String filepath) {

String all = “”;

File file = new File(filepath);

try {

if (!file.isFile()) {

System.out.println(“文件路径不对,请修改路径”);

} else {

File readfile = new File(filepath);

BufferedReader br = new BufferedReader(new FileReader(readfile));

String ss = br.readLine();

while (ss != null) {

all = all + ss;

//all中存放读取的文件内容信息

ss = br.readLine();

}

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return all;

}

//在待测文件中匹配敏感词出现的次数

private static int searchkeyword(String[] str, int cnt, String filepath){

int number = 0;

String s = “”;

s = getcontent(filepath);

for (int i = 0; i < cnt; i++) {

if (s.indexOf(str[i]) > -1) {

number++;

}

}

return number;

}

至此,完成了敏感词过滤器软件代码的编写工作,接下来可以进行run操作,即可以得到待测文件库中的待测文件包含敏感词次数及出处等相关信息的结果。

3 实验结果分析

敏感词库的存放路径:D:\敏感词典\file.txt;敏感词库文件中的内容略。

待测文件库的存放路径:D:\敏感词待测文件库;文件库中存放了三个文件,分别为:test1.txt、test2.txt、test3.txt.

运行该过滤器软件后,得出的检测结果如图2所示。

由图可以看到把待测文件中敏感词及脏词组出现的次数全部显示出来,结果与实际情况完全一致。

本文设计的敏感词过滤器软件,已在myeclipse环境下通过Java语言实现,并对整个过滤器软件进行了测试,测试结果显示该设计完全可以达到对网页文件中的敏感词进行过滤,还能指出这些敏感词的数目及其出处。为网络管理员的管理带来方便,并给网络管理方面的编程人员提供了一个良好的开发平台。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2957

    浏览量

    104536
  • 过滤器
    +关注

    关注

    1

    文章

    427

    浏览量

    19551
收藏 人收藏

    评论

    相关推荐

    一文理解布隆过滤器和布谷鸟过滤器

    作者:京东保险 王奕龙 最近在大促中使用到了布隆过滤器,所以本次借着机会整理下相关内容,并了解了布谷鸟过滤器,希望对后续学习的同学有启发~ 布隆过滤器 布隆过滤器是 概率性数据结构 ,
    的头像 发表于 11-07 10:10 597次阅读
    一文理解布隆<b class='flag-5'>过滤器</b>和布谷鸟<b class='flag-5'>过滤器</b>

    CN过滤器原理

    CN过滤器原理 CN过滤器采用整体玻璃钢,耐酸耐碱,一般耐温65℃。内部装有约半米高的悬浮介质层。悬浮过滤介质为1-2mm小球,采用高分子材料加工,密度大约
    发表于 02-25 15:00 26次下载

    基于值域二次哈希方法的布鲁姆过滤器

    本文针对扩展式布鲁姆过滤器(EBF)内存消耗过大,提出一种基于值域哈希二次过滤的布鲁姆过滤器数据结构(VHBF)和相关算法,VHBF通过在布鲁姆过滤
    发表于 02-26 13:45 12次下载

    过滤器的作用

    本视频主要详细介绍了过滤器的作用,分别是滤速高、过滤效果好;强度高、耐腐蚀;静电作用;过滤物质;拦截;其次介绍了水龙头过滤器的作用,最后介绍了活性炭
    的头像 发表于 12-12 16:23 4.4w次阅读

    解密高效空气过滤器的性能及要求

    量大灯特点。 高效过滤器按结构主要分为:有隔板高效过滤器、无隔板高效过滤器、组合式高效过滤器。 产品关键:高效
    发表于 03-19 14:56 2020次阅读

    创新陶瓷过滤器解决方案

    创新陶瓷过滤器解决方案
    发表于 10-27 14:56 16次下载

    丝扣Y过滤器

    丝扣Y过滤器是Y过滤器的一种,普通滤材是不锈钢或者碳钢,滤芯普通带有不锈钢骨架。 丝扣Y形过滤器有时也叫做·不锈钢内螺纹Y过滤器。    特性:   1.丝扣Y形
    的头像 发表于 08-13 17:24 4076次阅读

    丝扣Y过滤器过滤器测试原理简介

    丝扣Y过滤器是Y过滤器的一种,普通滤材是不锈钢或者碳钢,滤芯普通带有不锈钢骨架。 丝扣Y形过滤器有时也叫做·不锈钢内螺纹Y过滤器。  特性: 1.丝扣Y形
    发表于 09-05 09:27 2516次阅读

    丝扣Y形过滤器

    丝扣Y形过滤器是保送介质管道上不可短少的一种安装,通常装置在减压阀、泄压阀、定水位阀或其它设备的进口端,用来消弭介质中的杂质,以维护阀门及设备的正常运用。 丝扣Y形过滤器有时也叫做·不锈钢内螺纹Y
    的头像 发表于 10-24 15:03 3770次阅读

    汉克森过滤器系列介绍

    汉克森过滤器 【1】国产品牌滤芯均为我司生产的替代原厂品牌滤芯,其过滤滤材采用德国原装进口HV公司产品,注册商标为“佳洁”牌。本公司涉及的其它品牌均无品牌意义,只是作为产品型号参照和客户选型对照
    发表于 03-01 08:53 1093次阅读
    汉克森<b class='flag-5'>过滤器</b>系列介绍

    过滤器药液过滤器滤除率测试仪

    过滤器药液过滤器滤除率测试仪
    的头像 发表于 03-09 14:53 828次阅读
    <b class='flag-5'>过滤器</b>药液<b class='flag-5'>过滤器</b>滤除率测试仪

    过滤器模式是指什么?

    过滤器模式是指通过构造一系列不同的标准实现类,通过这些标准实现类把目标对象(通常是多个)按照对应的标准进行
    的头像 发表于 06-01 14:32 1382次阅读
    <b class='flag-5'>过滤器</b>模式是指什么?

    贝腾过滤器滤芯

    贝腾过滤器滤芯
    的头像 发表于 04-11 15:09 1051次阅读
    贝腾<b class='flag-5'>过滤器</b>滤芯

    杀菌过滤器 灭菌过滤器 除菌过滤器

    杀菌过滤器 灭菌过滤器 除菌过滤器
    的头像 发表于 03-03 14:03 2573次阅读
    杀菌<b class='flag-5'>过滤器</b> 灭菌<b class='flag-5'>过滤器</b> 除菌<b class='flag-5'>过滤器</b>

    springboot过滤器和拦截器哪个先执行

    Spring Boot是一个用于构建Java应用程序的开发框架,它提供了许多功能和工具来简化开发和部署过程。其中两个重要的功能是过滤器和拦截器。本文将详细介绍Spring Boot过滤器和拦截器
    的头像 发表于 12-03 15:00 2418次阅读