sensitive-word
sensitive-word 基于 DFA 算法實現的高性能敏感詞工具。
創作目的
實現一款好用敏感詞工具。
基于 DFA 算法實現,目前敏感詞庫內容收錄 6W+(源文件 18W+,經過一次刪減)。
后期將進行持續優化和補充敏感詞庫,并進一步提升算法的性能。
希望可以細化敏感詞的分類,感覺工作量比較大,暫時沒有進行。
v0.10.0 先添加對應的臟詞分類接口,后續有時間完善對應的實現和詞典。
敏感詞標簽
說明
有時候我們希望對敏感詞加一個分類標簽:比如社情、暴/力等等。
這樣后續可以按照標簽等進行更多特性操作,比如只處理某一類的標簽。
支持版本:v0.10.0
入門例子
接口
這里只是一個抽象的接口,用戶可以自行定義實現。比如從數據庫查詢等。
public interface IWordTag {/*** 查詢標簽列表* @param word 臟詞* @return 結果*/Set<String> getTag(String word);}
配置文件
我們可以自定義 dict 標簽文件,通過 WordTags.file() 創建一個 WordTag 實現。
- dict_tag_test.txt
五星紅旗 政治,國家
格式如下:
敏感詞 tag1,tag2
實現
具體的效果如下,在引導類設置一下即可。
默認的 wordTag 是空的。
String filePath = "dict_tag_test.txt";
IWordTag wordTag = WordTags.file(filePath);SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance().wordTag(wordTag).init();Assert.assertEquals("[政治, 國家]", sensitiveWordBs.tags("五星紅旗").toString());;
后續會考慮引入一個內置的標簽文件策略。
拓展閱讀
敏感詞工具實現思路
DFA 算法講解
敏感詞庫優化流程
java 如何實現開箱即用的敏感詞控臺服務?
開源地址
其他很多特性以前介紹過,不再贅述。
感興趣的話,前往開源地址:
https://github.com/houbb/sensitive-word