中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

sae wordpress 圖片北京網(wǎng)站優(yōu)化站優(yōu)化

sae wordpress 圖片,北京網(wǎng)站優(yōu)化站優(yōu)化,免費(fèi)咨詢(xún)律師在線(xiàn),微信小程序如何做文章目錄 敏感詞過(guò)濾方案一:正則表達(dá)式方案二:基于DFA算法的敏感詞過(guò)濾工具框架-sensitive-wordspringboot集成sensitive-word步驟一:引入pom步驟二:自定義配置步驟三:自定義敏感詞白名單步驟四:核心方法測(cè)…

文章目錄

  • 敏感詞過(guò)濾
  • 方案一:正則表達(dá)式
  • 方案二:基于DFA算法的敏感詞過(guò)濾工具框架-sensitive-word
    • springboot集成sensitive-word
      • 步驟一:引入pom
      • 步驟二:自定義配置
      • 步驟三:自定義敏感詞+白名單
      • 步驟四:核心方法測(cè)試

敏感詞過(guò)濾

敏感詞過(guò)濾通常是指從文本中檢測(cè)并移除或替換掉被認(rèn)為是不適當(dāng)、冒犯性或違反特定社區(qū)準(zhǔn)則的詞匯。這個(gè)過(guò)程常用于在線(xiàn)平臺(tái)、論壇、社交媒體和聊天系統(tǒng)等,以確保交流環(huán)境的健康和積極.

方案一:正則表達(dá)式

實(shí)現(xiàn)敏感詞過(guò)濾.只適合于敏感詞較少、文本量較少的場(chǎng)合,并且無(wú)法處理同音字、錯(cuò)別字等,案例:

public static void main(String[] args) {String text = "這是一個(gè)包含敏感詞匯的文本,例如色情、賭博等。";String[] sensitiveWords = {"色情", "賭博"};for (String word : sensitiveWords) {text = filterSensitiveWords(text, word);}System.out.println("過(guò)濾后的文本: " + text);testSensitiveWordFrame();}/*** 方案一:正則表達(dá)式實(shí)現(xiàn)敏感詞過(guò)濾.只適合于敏感詞較少、文本量較少的場(chǎng)合,并且無(wú)法處理同音字、錯(cuò)別字等.** @param text* @param sensitiveWord* @return*/public static String filterSensitiveWords(String text, String sensitiveWord) {Pattern pattern = Pattern.compile(sensitiveWord);Matcher matcher = pattern.matcher(text);return matcher.replaceAll("***");}

方案二:基于DFA算法的敏感詞過(guò)濾工具框架-sensitive-word

 * 6W+ 詞庫(kù),且不斷優(yōu)化更新* 基于 DFA 算法,性能較好* 基于 fluent-api 實(shí)現(xiàn),使用優(yōu)雅簡(jiǎn)潔* 支持敏感詞的判斷、返回、脫敏等常見(jiàn)操作* 支持全角半角互換* 支持英文大小寫(xiě)互換* 支持?jǐn)?shù)字常見(jiàn)形式的互換* 支持中文繁簡(jiǎn)體互換* 支持英文常見(jiàn)形式的互換* 支持用戶(hù)自定義敏感詞和白名單* 支持?jǐn)?shù)據(jù)的數(shù)據(jù)動(dòng)態(tài)更新,實(shí)時(shí)生效

springboot集成sensitive-word

步驟一:引入pom

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

步驟二:自定義配置

@Configuration
public class MySensitiveWordBs {@Autowiredprivate MyWordAllow myWordAllow;@Autowiredprivate MyWordDeny myWordDeny;@Autowiredprivate MyWordReplace myWordReplace;/*** 初始化引導(dǎo)類(lèi)** @return 初始化引導(dǎo)類(lèi)* @since 1.0.0*/@Beanpublic SensitiveWordBs sensitiveWordBs() {SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance()
//                .wordAllow(WordAllows.chains(WordAllows.defaults(), myWordAllow)) // 設(shè)置多個(gè)敏感詞,系統(tǒng)默認(rèn)和自定義
//                .wordDeny(WordDenys.chains(WordDenys.defaults(), myWordDeny))     // 設(shè)置多個(gè)敏感詞,系統(tǒng)默認(rèn)和自定義.wordAllow(WordAllows.chains(myWordAllow))  // 自定義.wordDeny(WordDenys.chains(myWordDeny))     // 自定義.wordReplace(myWordReplace)                                        // 自定義替換規(guī)則.ignoreCase(true)           // 忽略大小寫(xiě).ignoreWidth(true)          // 忽略半角圓角.ignoreNumStyle(true)       // 忽略數(shù)字的寫(xiě)法.ignoreChineseStyle(true)   // 忽略中文的書(shū)寫(xiě)格式.ignoreEnglishStyle(true)   // 忽略英文的書(shū)寫(xiě)格式.ignoreRepeat(true)         // 忽略重復(fù)詞.enableNumCheck(true)       // 是否啟用數(shù)字檢測(cè)。默認(rèn)連續(xù) 8 位數(shù)字認(rèn)為是敏感詞.enableEmailCheck(true)     // 是有啟用郵箱檢測(cè).enableUrlCheck(true)       // 是否啟用鏈接檢測(cè).init();return sensitiveWordBs;}
}

步驟三:自定義敏感詞+白名單

/*** 自定義非敏感詞* 注意每一行為一個(gè)非敏感詞,單行不能只包括空格,否則,也會(huì)把空格識(shí)別為非敏感詞*/
@Component
@Slf4j
public class MyWordAllow implements IWordAllow {@Overridepublic List<String> allow() {List<String> allowWords = new ArrayList<>();try {ClassPathResource resource = new ClassPathResource("myAllowWords.txt");Path myAllowWordsPath = Paths.get(resource.getUrl().toURI());allowWords = Files.readAllLines(myAllowWordsPath, StandardCharsets.UTF_8);} catch (IOException ioException) {log.error("讀取非敏感詞文件錯(cuò)誤:{}", ioException);} catch (URISyntaxException e) {throw new RuntimeException(e);}return allowWords;}
}
@Component
@Slf4j
public class MyWordDeny implements IWordDeny {@Overridepublic List<String> deny() {List<String> denyWords = new ArrayList<>();try {ClassPathResource resource = new ClassPathResource("myDenyWords.txt");Path myAllowWordsPath = Paths.get(resource.getUrl().toURI());denyWords = Files.readAllLines(myAllowWordsPath, StandardCharsets.UTF_8);} catch (IOException ioException) {log.error("讀取敏感詞文件錯(cuò)誤:{}", ioException);} catch (URISyntaxException e) {throw new RuntimeException(e);}return denyWords;}
}
/*** 自定義敏感詞對(duì)應(yīng)的替換值.* 場(chǎng)景說(shuō)明:有時(shí)候我們希望不同的敏感詞有不同的替換結(jié)果。比如【游戲】替換為【電子競(jìng)技】,【失業(yè)】替換為【靈活就業(yè)】。*/
@Configuration
public class MyWordReplace implements IWordReplace {@Overridepublic void replace(StringBuilder stringBuilder, final char[] rawChars, IWordResult wordResult, IWordContext wordContext) {String sensitiveWord = InnerWordCharUtils.getString(rawChars, wordResult);if ("zhupeng".equals(sensitiveWord)) {stringBuilder.append("朱鵬");} else {// 其他默認(rèn)使用 * 代替int wordLength = wordResult.endIndex() - wordResult.startIndex();for (int i = 0; i < wordLength; i++) {stringBuilder.append('-');}}}
}

步驟四:核心方法測(cè)試

public class SensitiveWordController {@Autowiredprivate MyWordReplace myWordReplace;@Autowiredprivate SensitiveWordBs sensitiveWordBs;private static final String text = "五星紅旗迎風(fēng)飄揚(yáng),毛主席的畫(huà)像屹立在天安門(mén)前,zhuzhuhzu";@GetMapping("/pattern")public void testSensitiveWord2() {String text = "這是一個(gè)包含敏感詞匯的文本,例如色情、賭博等。";String[] sensitiveWords = {"色情", "賭博"};for (String word : sensitiveWords) {text = filterSensitiveWords(text, word);}System.out.println("過(guò)濾后的文本: " + text);}/*** 方案二:基于DFA算法的敏感詞過(guò)濾工具框架-sensitive-word:https://github.com/houbb/sensitive-word* 6W+ 詞庫(kù),且不斷優(yōu)化更新* 基于 DFA 算法,性能較好* 基于 fluent-api 實(shí)現(xiàn),使用優(yōu)雅簡(jiǎn)潔* 支持敏感詞的判斷、返回、脫敏等常見(jiàn)操作* 支持全角半角互換* 支持英文大小寫(xiě)互換* 支持?jǐn)?shù)字常見(jiàn)形式的互換* 支持中文繁簡(jiǎn)體互換* 支持英文常見(jiàn)形式的互換* 支持用戶(hù)自定義敏感詞和白名單* 支持?jǐn)?shù)據(jù)的數(shù)據(jù)動(dòng)態(tài)更新,實(shí)時(shí)生效*/@GetMapping("/filter")public void testSensitiveWord() {System.out.println("SensitiveWordHelper.contains(text) = " + SensitiveWordHelper.contains(text));System.out.println("SensitiveWordHelper.findAll(text) = " + SensitiveWordHelper.findAll(text));System.out.println("SensitiveWordHelper.replace(text,myWordReplace) = " + SensitiveWordHelper.replace(text, myWordReplace));// 如果自定義敏感詞,不要使用SensitiveWordHelper的方法,要使用SensitiveWordBsSystem.out.println("sensitiveWordBs.contains(text) = " + sensitiveWordBs.contains(text));System.out.println("sensitiveWordBs.findAll(text) = " + sensitiveWordBs.findAll(text));System.out.println("sensitiveWordBs.replace(text) = " + sensitiveWordBs.replace(text));}
}
http://www.risenshineclean.com/news/36429.html

相關(guān)文章:

  • 學(xué)做蛋糕網(wǎng)站如何讓自己網(wǎng)站排名提高
  • 針對(duì)網(wǎng)站做搜索引擎做優(yōu)化網(wǎng)盤(pán)資源共享網(wǎng)站
  • 微交易網(wǎng)站建設(shè)實(shí)時(shí)積分榜
  • 溫州龍灣做網(wǎng)站2022年最好用的搜索引擎
  • wordpress搜索產(chǎn)品偽靜態(tài)博客seo優(yōu)化技術(shù)
  • 政府門(mén)戶(hù)網(wǎng)站建設(shè)的意義電腦培訓(xùn)學(xué)校
  • 無(wú)錫知名網(wǎng)站制作百度網(wǎng)站打不開(kāi)
  • 網(wǎng)站設(shè)計(jì)過(guò)程中需要注意的問(wèn)題網(wǎng)站網(wǎng)頁(yè)的優(yōu)化方法
  • 網(wǎng)站開(kāi)發(fā)的作用建站之星
  • 做論壇網(wǎng)站需要什么備案網(wǎng)站友鏈交換平臺(tái)
  • 做網(wǎng)站網(wǎng)絡(luò)營(yíng)銷(xiāo)策略有哪幾種
  • 福永網(wǎng)站設(shè)計(jì)多少錢(qián)seo入門(mén)免費(fèi)教程
  • 北京自助模板建站黑馬程序員培訓(xùn)機(jī)構(gòu)在哪
  • 學(xué)生做的網(wǎng)站成品網(wǎng)絡(luò)客服
  • 西安微網(wǎng)站制作網(wǎng)上廣告宣傳怎么做
  • 畢業(yè)設(shè)計(jì)網(wǎng)站成品百度接單平臺(tái)
  • 做B2C獨(dú)立網(wǎng)站的話(huà)需要做海外倉(cāng)嗎人際網(wǎng)絡(luò)營(yíng)銷(xiāo)2900
  • 高端電子網(wǎng)站建設(shè)谷歌官方seo入門(mén)指南
  • 子目錄 獨(dú)立的網(wǎng)站網(wǎng)上怎么發(fā)布廣告
  • 網(wǎng)站源碼破解版網(wǎng)站關(guān)鍵詞優(yōu)化排名外包
  • 金融投資公司網(wǎng)站模板網(wǎng)站工具查詢(xún)
  • 江蘇省城鄉(xiāng)建設(shè)官網(wǎng)站免費(fèi)私人網(wǎng)站建設(shè)
  • wordpress文章全部刪除優(yōu)化seo深圳
  • 不建網(wǎng)站如何做淘寶客社交網(wǎng)絡(luò)推廣方法
  • 江陰外貿(mào)網(wǎng)站制作福州網(wǎng)站建設(shè)
  • 修改網(wǎng)站圖標(biāo)卡一卡二卡三入口2021
  • 浙里建官方網(wǎng)站百度指數(shù)的主要功能有
  • 手機(jī)端網(wǎng)站開(kāi)發(fā)長(zhǎng)沙網(wǎng)站seo方法
  • 美食網(wǎng)站的設(shè)計(jì)與制作友情鏈接方面pr的選擇應(yīng)該優(yōu)先選擇的鏈接為
  • 怎樣做原創(chuàng)短視頻網(wǎng)站百度關(guān)鍵詞工具