当前位置: 首页 > news >正文

网站版块设计百度知道网页版

网站版块设计,百度知道网页版,动画素材,手机怎么做销售网站在现代的互联网应用中,敏感词过滤已成为一个必不可少的功能,尤其是在社交媒体、评论审核等需要保证内容健康的场景下。本文将基于开源库https://github.com/houbb/sensitive-word,详细讲解如何通过自定义敏感词库和工具类实现高效的敏感词过滤…

在现代的互联网应用中,敏感词过滤已成为一个必不可少的功能,尤其是在社交媒体、评论审核等需要保证内容健康的场景下。本文将基于开源库https://github.com/houbb/sensitive-word,详细讲解如何通过自定义敏感词库和工具类实现高效的敏感词过滤功能。

1. 项目依赖

首先需要引入 sensitive-word 相关的 Maven 依赖:

<dependency><groupId>com.github.houbb</groupId><artifactId>sensitive-word</artifactId><version>1.4.1</version>
</dependency>

2. 配置敏感词过滤组件

下面是核心的敏感词过滤配置代码,通过 SensitiveWordBs 构建过滤器,并加载自定义敏感词和允许词。
配置类代码

package cn.yujky.study.sensitive.config;import cn.yujky.study.sensitive.service.impl.MyWordAllowImpl;
import cn.yujky.study.sensitive.service.impl.MyWordDenyImpl;
import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
import com.github.houbb.sensitive.word.support.allow.WordAllows;
import com.github.houbb.sensitive.word.support.deny.WordDenys;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;gframework.context.annotation.Configuration;/*** 敏感词配置*/
@Slf4j
@Configuration
public class SensitiveWordConfig {@Autowiredprivate MyWordDenyImpl myWordDeny;@Autowiredprivate MyWordAllowImpl myWordAllow;/*** 初始化敏感词过滤器** @return 配置好的敏感词过滤引导类*/@Beanpublic SensitiveWordBs sensitiveWordBs() {log.info("本地敏感词库初始化中...");SensitiveWordBs init = SensitiveWordBs.newInstance().wordDeny(WordDenys.chains(WordDenys.defaults(), myWordDeny)).wordAllow(WordAllows.chains(WordAllows.defaults(), myWordAllow)).init();log.info("本地敏感词库初始化完成");return init;}
}

3 自定义敏感词库

通过实现 WordDeny 和 WordAllow 接口,可以分别配置屏蔽词和允许词。以下是示例代码:

3.1 自定义屏蔽词(MyWordDenyImpl)

package cn.yujky.study.sensitive.service.impl;import com.github.houbb.sensitive.word.api.IWordDeny;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service;import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;/*** @name: MyWordDeny* @description: <p></p>* @author: yujky* @date: 2024/12/27 11:18*/
@Slf4j
@Service
@AllArgsConstructor
public class MyWordDenyImpl implements IWordDeny {private final ResourceLoader resourceLoader;@Overridepublic List<String> deny() {// 加载resource目录下的sensiticeWord.txt文本中的敏感词Resource resource = resourceLoader.getResource("classpath:sensiticeWord.txt");// 将文件内容读取为字符串try {String content = null;content = new String(Files.readAllBytes(Paths.get(resource.getURI())));log.info("敏感词库加载完成,敏感词数量为:{}", content.split("\\n").length);log.info("敏感词库加载完成,敏感词:\\n {}", content);// 按换行分割return Arrays.stream(content.split("\\n")).distinct().toList();} catch (IOException e) {throw new RuntimeException(e);}}
}

这里的敏感词库我是直接放在resource目录下的sensiticeWord.txt文本中,你也可以改为从数据库或者其他存储工具中读取

3.2 自定义允许词(MyWordAllowImpl)

package cn.yujky.study.sensitive.service.impl;import com.github.houbb.sensitive.word.api.IWordAllow;
import org.springframework.stereotype.Service;import java.util.Arrays;
import java.util.List;/*** @name: MyWordAllowImpl* @description: <p></p>* @author: yujky* @date: 2024/12/27 11:20*/
@Service
public class MyWordAllowImpl implements IWordAllow {@Overridepublic List<String> allow() {return Arrays.asList("五星红旗");}
}

4. 清洗文本工具类

在敏感词检测前,通常需要对文本进行预处理,例如移除特殊字符、表情符号等。以下是清洗文本的工具类示例代码:

package cn.yujky.study.sensitive;@Slf4j
public class SensitiveTextCleaner {/*** 移除 Emoji 表情** @param text 输入文本* @return 清洗后的文本*/public static String removeEmojis(String text) {String emojiRegex = "[\\x{1F600}-\\x{1F64F}\\x{1F300}-\\x{1F5FF}\\x{1F680}-\\x{1F6FF}\\x{1F700}-\\x{1F77F}\\x{1F780}-\\x{1F7FF}\\x{1F800}-\\x{1F8FF}\\x{1F900}-\\x{1F9FF}\\x{1FA00}-\\x{1FA6F}\\x{1FA70}-\\x{1FAFF}\\x{2600}-\\x{26FF}\\x{2700}-\\x{27BF}]";return text.replaceAll(emojiRegex, "");}/*** 移除特殊字符** @param text 输入文本* @return 清洗后的文本*/public static String removeSpecialCharacters(String text) {return text.replaceAll("[^a-zA-Z0-9\u4e00-\u9fa5]", "");}/*** 综合清洗文本(移除表情与特殊字符)** @param text 输入文本* @return 清洗后的文本*/public static String cleanText(String text) {text = removeEmojis(text); // 移除 Emojitext = removeSpecialCharacters(text); // 移除特殊字符return text.trim().toLowerCase(); // 转小写并去除多余空格}
}

5. 敏感词过滤测试

在 Spring Boot 项目中通过单元测试验证过滤功能,以下为完整的测试代码:

package cn.yujky.study.sensitive;import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@Slf4j
@SpringBootTest
class YujkySensitiveApplicationTests {@Autowiredprivate SensitiveWordBs sensitiveWordBs;@Testvoid contextLoads() {String text = "操&他🐎";String cleanText = SensitiveTextCleaner.cleanText(text);log.info("原文本: {}, 清洗后文本: {}", text, cleanText);// 检查是否包含敏感词boolean containsOriginal = sensitiveWordBs.contains(text);boolean containsCleaned = sensitiveWordBs.contains(cleanText);log.info("是否包含敏感词(原文本): {}", containsOriginal);log.info("是否包含敏感词(清洗后文本): {}", containsCleaned);// 控制台输出System.out.println("原文本检测结果: " + containsOriginal);System.out.println("清洗后文本检测结果: " + containsCleaned);}
}

5.1 测试结果示例

假设敏感词库中包含 “操” 和 “他”:

原文本: 操&他🐎, 清洗后文本: 操他
是否包含敏感词(原文本): false
是否包含敏感词(清洗后文本): true

这里建议对原文本以及清洗后的文本都进行一次检测,增加敏感词的检测力度

如果你在开发过程中有其他需求或问题,欢迎交流!
https://web.yujky.cn/
用户名:cxks
密码: cxks123

http://www.mmbaike.com/news/108137.html

相关文章:

  • 网站开发能干什么免费手机网页制作
  • jsp网站服务建设csdn广州seo网站多少钱
  • 做免费网站推广开头语做百度推广销售怎么找客户
  • 找个网站你知道的行业网站有哪些平台
  • 免费网站域名查询自己可以做网站吗
  • 上海网站建设的价格企业宣传片视频
  • 微商城网站建设怎么样竞价托管开户
  • wordpress admin-ajax网站seo链接购买
  • 徐州建设工程交易网招标公告查询关键词优化一年的收费标准
  • 郑州做网站公司天强科技优化关键词排名哪家好
  • 平台网站建设教程无锡网络推广平台
  • 网站登录界面图片用什么软件做全网营销代运营
  • 网络营销推广网站收录百度站长平台快速收录
  • 阿里云服务器的网站备案流程图网店营销
  • 网站制作与网站建设百度开户需要什么资质
  • 秦皇岛网站建设报价近一周新闻热点事件
  • 怎么做网站架构seo每日一帖
  • 婚恋网站开发背景谷歌应用商店
  • 在线制作印章diy印章重庆百度快速优化
  • 太原响应式网站建设石家庄seo网络优化的公司
  • 南阳建网站企业山东最新资讯
  • 网站建站公司广州世界杯最新排名
  • 电商就业前景seo接单平台
  • 烟台公司中企动力提供网站建设seo检查工具
  • 南京做网站的有哪些seo的最终是为了达到
  • 做我的世界缩略图的网站百度一下 你就知道官方
  • 美御品牌推广王通seo赚钱培训
  • 学校网站建设的wbs石家庄网络营销网站推广
  • 淄博定制网站建设公司企业网站优化解决方案
  • 市场营销网站建设如何开发微信小程序