您好,登錄后才能下訂單哦!
平時工作中,只要涉及到用戶可以自由發(fā)言(博客、文檔、論壇),就要考慮內容的敏感性處理。
sensitive-word 基于 DFA 算法實現(xiàn)的高性能敏感詞工具。工具使用 java 實現(xiàn),幫助我們解決常見的問題。
6W+ 詞庫,且不斷優(yōu)化更新
基于 DFA 算法,性能較好
基于 fluent-api 實現(xiàn),使用優(yōu)雅簡潔
支持敏感詞的判斷、返回、脫敏等常見操作
支持全角半角互換
JDK1.7+
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>sensitive-word</artifactId>
<version>0.0.4</version>
</dependency>
SensitiveWordBs
作為敏感詞的引導類,核心方法如下:
方法 | 參數(shù) | 返回值 | 說明 |
---|---|---|---|
newInstance() | 無 | 引導類 | 初始化引導類 |
contains(String) | 待驗證的字符串 | 布爾值 | 驗證字符串是否包含敏感詞 |
findAll(String) | 待驗證的字符串 | 字符串列表 | 返回字符串中所有敏感詞 |
replace(String, char) | 使用指定的 char 替換敏感詞 | 字符串 | 返回脫敏后的字符串 |
replace(String) | 使用 * 替換敏感詞 |
字符串 | 返回脫敏后的字符串 |
所有測試案例參見 SensitiveWordBsTest
final String text = "五星紅旗迎風飄揚,毛主席的畫像屹立在天安門前。";
Assert.assertTrue(SensitiveWordBs.newInstance().contains(text));
final String text = "五星紅旗迎風飄揚,毛主席的畫像屹立在天安門前。";
String word = SensitiveWordBs.newInstance().findFirst(text);
Assert.assertEquals("五星紅旗", word);
final String text = "五星紅旗迎風飄揚,毛主席的畫像屹立在天安門前。";
List<String> wordList = SensitiveWordBs.newInstance().findAll(text);
Assert.assertEquals("[五星紅旗, 毛主席, 天安門]", wordList.toString());
final String text = "五星紅旗迎風飄揚,毛主席的畫像屹立在天安門前。";
String result = SensitiveWordBs.newInstance().replace(text);
Assert.assertEquals("****迎風飄揚,***的畫像屹立在***前。", result);
final String text = "五星紅旗迎風飄揚,毛主席的畫像屹立在天安門前。";
String result = SensitiveWordBs.newInstance().replace(text, '0');
Assert.assertEquals("0000迎風飄揚,000的畫像屹立在000前。", result);
后續(xù)的諸多特性,主要是針對各種針對各種情況的處理,盡可能的提升敏感詞命中率。
這是一場漫長的***之戰(zhàn)。
final String text = "fuCK the bad words.";
String word = SensitiveWordBs.newInstance().findFirst(text);
Assert.assertEquals("fuCK", word);
final String text = "fuck the bad words.";
String word = SensitiveWordBs.newInstance().findFirst(text);
Assert.assertEquals("fuck", word);
數(shù)字的轉換處理
繁簡體互換
重復詞
停頓詞
拼音互換
用戶自定義敏感詞和白名單
文字鏡像翻轉
敏感詞工具實現(xiàn)思路
DFA 算法講解
敏感詞庫優(yōu)化流程
停止詞的思考記錄
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。