字首樹:
(1)名稱:Trie、字典樹、查找樹
(2)特點:查找效率高,消耗記憶體大
(3)應用:字元串檢索、詞頻統計、字元串排序等
敏感詞過濾器:
(1)定義字首樹
(2)根據敏感詞,初始化字首樹
(3)編寫過濾敏感詞的方法
在resources下建立一個存放敏感詞的檔案sensitive-words.txt
賭博
嫖娼
吸毒
開票
在util包下建立一個SensitiveFilter類,加上@Component注解,并加上構造方法後初始化注解@PostConstruct來加載敏感詞檔案sensitive-words.txt。
@PostConstruct
public void init() {
try(
InputStream is = this.getClass().getClassLoader().getResourceAsStream("sensitive-words.txt"); //放在這個小括号裡,編譯的時候會自動finally
//擷取類加載檔案夾下resources下的sensitive-words.txt
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
){
String keyword;
while((keyword = reader.readLine()) != null){
// 添加到字首樹
this.addKeyword(keyword);
}
}catch(IOException e){
logger.error("過濾敏感詞檔案失敗:" + e.getMessage());
}
}