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

长沙企业网站排名优化wordpress tag转专题

长沙企业网站排名优化,wordpress tag转专题,手机网站源码,企业网站分为哪三种类型一个社区最重要的就是交流氛围与审查违规#xff0c;而这两者都少不了对于敏感词进行过滤的自动维护措施。基于这样的措施#xff0c;我们才能基本保证用户在使用社区的过程中#xff0c;不至于被敏感违规词汇包围#xff0c;才能够正常的进行发布帖子和评论#xff0c;享…一个社区最重要的就是交流氛围与审查违规而这两者都少不了对于敏感词进行过滤的自动维护措施。基于这样的措施我们才能基本保证用户在使用社区的过程中不至于被敏感违规词汇包围才能够正常的进行发布帖子和评论享受美好的社区氛围。目前对于 springboot 项目也有较为成熟的敏感词过滤方案。 文章目录敏感词过滤方案实现思路敏感词过滤方案 本文将采用 Github 上 houbb 大神开源的 sensitive-word 工具包来进行敏感词过滤操作它具备以下优秀特点 包含 6W 词库且不断优化更新基于 fluent-api 实现使用优雅简洁完美兼容 spring boot 项目支持自定义敏感词一对一替换成对应正常词汇支持敏感词的判断、返回、脱敏等常见操作支持全角半角互换支持英文大小写互换支持数字常见形式的互换支持中文繁简体互换支持英文常见形式的互换支持用户自定义敏感词和白名单支持数据的数据动态更新实时生效 敏感词过滤效果如下 它不仅可以通过自定义替换词也就是过滤后文本的 * 号可以随意更改如果想要删去敏感词替换词直接选为空即可他还可以通过自定义对应词的替换词比如说五星红旗指定为国家旗帜毛主席指定为教员示例如下 “五星红旗迎风飘扬毛主席的画像屹立在广场前”。变为 “国家旗帜迎风飘扬教员的画像屹立在广场前。” 实现思路 实现 sensitive-word 的配置文件利用自定义的 SensitiveWordUtil 进行封装调用 SensitiveWordUtil 即可 XML导包模板 !-- 敏感词工具包 -- dependencygroupIdcom.github.houbb/groupIdartifactIdsensitive-word/artifactIdversion0.2.1/version /dependencysensitive-word 配置是通过 SensitiveWordBs.newInstance() 进行配置的它传回的是 SensitiveWordBs 对象而不是默认的 SensitiveWordHelper 对象。配置类注意添加 Configuration 注解 它的配置项如下 序号方法说明默认值1ignoreCase忽略大小写true2ignoreWidth忽略半角圆角true3ignoreNumStyle忽略数字的写法true4ignoreChineseStyle忽略中文的书写格式true5ignoreEnglishStyle忽略英文的书写格式true6ignoreRepeat忽略重复词false7enableNumCheck是否启用数字检测。true8enableEmailCheck是有启用邮箱检测true9enableUrlCheck是否启用链接检测true10numCheckLen数字检测自定义指定长度。8 在完成配置之前我们可以先添加两个词库文本作为自定义的敏感词库以及非敏感词库第一个词库大家都理解为什么还要定义非敏感词库呢因为默认的 6w 敏感词中免不了存在部分在社区业务中不算过于敏感的词汇想要予以保留这样的话我们就需要使用非敏感词库进行排除。当然敏感词库不能够频繁更新以及初始化会耗费过多的时间和性能。这两个词库放置在 resource 目录下博主使用的是 jdk17 所以采用 NIO 进行文件读取简洁高效。两个文件名称如下 myAllowWords.txt非敏感词库mySensitiveWords.txt敏感词库 要使 sensitive-word 配置上自定义两个词库内容必须分别继承以下两个接口 IWordDeny敏感词继承方法IWordAllow非敏感词继承方法 不仅需要实现这两个接口还要配置默认词库、自定义词库合并的词库否则如果在 SensitiveWordBs.newInstance() 直接配置继承方法就只生效自定义词库。合并词库的方法为WordDenys.chains()默认词库分别为WordDenys.system()、WordAllows.system()合并后词库分别赋值给 IWordDeny、IWordAllow 模板配置如下 // 自定义敏感词 // 注意每一行为一个敏感词单行不能只包括空格否则也会把空格识别为敏感词 public class MyWordDeny implements IWordDeny {Overridepublic ListString deny() {ListString list new ArrayListString();;try {Resource mySensitiveWords new ClassPathResource(mySensitiveWords.txt);Path mySensitiveWordsPath Paths.get(mySensitiveWords.getFile().getPath());list Files.readAllLines(mySensitiveWordsPath, StandardCharsets.UTF_8);} catch (IOException ioException) {logger.error(读取敏感词文件错误 ioException.getMessage());}return list;}}// 自定义非敏感词 // 注意每一行为一个非敏感词单行不能只包括空格否则也会把空格识别为非敏感词 public class MyWordAllow implements IWordAllow {Overridepublic ListString allow() {ListString list new ArrayListString();;try {Resource myAllowWords new ClassPathResource(myAllowWords.txt);Path myAllowWordsPath Paths.get(myAllowWords.getFile().getPath());list Files.readAllLines(myAllowWordsPath, StandardCharsets.UTF_8);} catch (IOException ioException) {logger.error(读取非敏感词文件错误 ioException.getMessage());}return list;}}// 配置默认敏感词 自定义敏感词 IWordDeny wordDeny WordDenys.chains(WordDenys.system(), new MyWordDeny()); // 配置默认非敏感词 自定义非敏感词 IWordAllow wordAllow WordAllows.chains(WordAllows.system(), new MyWordAllow());而自定义替换规则就必须继承并实现 ISensitiveWordReplace 接口其中的 replace() 方法。实现模板代码如下 public class mySensitiveWordReplace implements ISensitiveWordReplace {Overridepublic String replace(ISensitiveWordReplaceContext context) {String sensitiveWord context.sensitiveWord();// 自定义不同的敏感词替换策略可以从数据库等地方读取if(五星红旗.equals(sensitiveWord)) {return 国家旗帜;}if(毛主席.equals(sensitiveWord)) {return 教员;}// 其他默认使用 * 代替int wordLength context.wordLength();return CharUtil.repeat(*, wordLength);} }最后就是通过 SensitiveWordBs.newInstance() 进行配置模板代码如下 Bean public SensitiveWordBs sensitiveWordBs(){return SensitiveWordBs.newInstance()// 忽略大小写.ignoreCase(true)// 忽略半角圆角.ignoreWidth(true)// 忽略数字的写法.ignoreNumStyle(true)// 忽略中文的书写格式简繁体.ignoreChineseStyle(true)// 忽略英文的书写格式.ignoreEnglishStyle(true)// 忽略重复词.ignoreRepeat(false)// 是否启用数字检测.enableNumCheck(true)// 是否启用邮箱检测.enableEmailCheck(true)// 是否启用链接检测.enableUrlCheck(true)// 数字检测自定义指定长度.numCheckLen(8)// 配置自定义敏感词.wordDeny(wordDeny)// 配置非自定义敏感词.wordAllow(wordAllow).init(); }配置完成之后我们就可以使用 SensitiveWordUtil 进行封装使用了实现代码如下 Component public class SensitiveWordUtil {Autowiredprivate SensitiveWordBs sensitiveWordBs;// 刷新敏感词库与非敏感词库缓存public void refresh(){sensitiveWordBs.init();}// 判断是否含有敏感词public boolean contains(String text){return sensitiveWordBs.contains(text);}// 指定替换符进行替换敏感词public String replace(String text, char replaceChar){return sensitiveWordBs.replace(text,replaceChar);}// 使用默认替换符 * 进行替换敏感词public String replace(String text){return sensitiveWordBs.replace(text);}// 返回所有敏感词public ListString findAll(String text){return sensitiveWordBs.findAll(text);} }调用就不用说明了吧我们敏感词过滤的部分就完成了。放一下 API 文档 方法参数返回值说明contains(String)待验证的字符串布尔值验证字符串是否包含敏感词replace(String, ISensitiveWordReplace)使用指定的替换策略替换敏感词字符串返回脱敏后的字符串replace(String, char)使用指定的 char 替换敏感词字符串返回脱敏后的字符串replace(String)使用 * 替换敏感词字符串返回脱敏后的字符串findAll(String)待验证的字符串字符串列表返回字符串中所有敏感词findFirst(String)待验证的字符串字符串返回字符串中第一个敏感词findAll(String, IWordResultHandler)IWordResultHandler 结果处理类字符串列表返回字符串中所有敏感词findFirst(String, IWordResultHandler)IWordResultHandler 结果处理类字符串返回字符串中第一个敏感词 测试方法 RunWith(SpringRunner.class) SpringBootTest ContextConfiguration(classes CommunityApplication.class) public class SensitiveTest {Autowiredprivate SensitiveWordUtil sensitiveWordUtil;Testpublic void utilTest02(){String result sensitiveWordUtil.replace(法网恢恢 哇 nnd 复活);System.out.println(result);} }
http://www.w-s-a.com/news/81088/

相关文章:

  • 微商城网站建设怎么样发稿是什么意思
  • dz建站与wordpress群晖做网站服务器速度快吗
  • 做手机网站的公司网站建设 app开发 图片
  • 网站开发技术背景介绍wordpress数据库重置密码
  • 开发建设网站的实施过程是一个logo设计品牌
  • 做360pc网站排名首页工程造价信息网官网首页
  • 产品销售网站模块如何设计大数据和网站开发
  • 现在帮别人做网站赚钱不济南做网站建设公司
  • 嘉兴网站建设哪家好最近三天的国际新闻大事
  • 安丘网站建设制作做网站口碑比较好的大公司
  • 成都专业做网站公司哪家好优化大师下载安装免费
  • 防蚊手环移动网站建设广东深圳有几个区
  • 网站建设找哪些平台宜兴网站开发
  • 免费网站应用软件wordpress添加动态图标
  • 中小企业网站建设客户需求调查问卷昆明网站建设一条龙
  • 网站内容的特点wordpress 移动端网页
  • 专门网站建设培训网站系统建设
  • 自己设计手机的网站wordpress主题加密教程
  • 北京网站建设公司飞沐卖水果网站建设的策划书
  • 北京免费自己制作网站短视频宣传片制作
  • 怎样进入谷歌网站电子商务网站建设软件选择
  • 建个普通网站多少钱设计师培训多少
  • 建设校园网站的意义视频链接提取下载
  • 天津电子商务网站wordpress安装图片
  • 青岛房产网站东莞网络营销外包公司
  • 网站建设中的页数网上工伤做实网站
  • 给公司做网站这个工作怎么样wordpress不支持中文标签
  • 湖南网站推广优化cc域名做门户网站
  • 网站开发大概多久怎么制做网站
  • 鄂州官方网站食品网站建设需求分析