字典樹 敏感詞過濾

2021-08-28 21:09:19 字數 1199 閱讀 7904

在**開發中,通常會對使用者發布的問題、文章等內容進行文字過濾操作,倘若用傳統的字元比較篩選或者kmp演算法,顯然時間效率上遠遠達不到要求,因此引入字典樹(字首樹),即現將要遮蔽的敏感詞通過字典樹的形式儲存起來,再通過對使用者發布的內容進行搜尋遍歷打碼等操作,將處理後的內容發布在網頁上。

字典樹的結構如下:

private class tirenode 

public tirenode getsubnode(character key)

public boolean iskeywordend()

public void setkeywordend(boolean end)

}

//增加敏感詞

private void addword(string linetxt)

tempnode = node;

if (i == linetxt.length() - 1)

}}public string filter(string text)

stringbuilder result = new stringbuilder();

string replacement = "***"; //打碼

tirenode tempnode = rootnode; //從根節點出發

int begin = 0; //從句子的第乙個字元開始

int position = 0; //指向當前位置

while (position < text.length())

position++;

continue;

}tempnode = tempnode.getsubnode(c);

if (tempnode == null) else if (tempnode.iskeywordend()) else

}return result.tostring();

}

public static void main(string args)
輸出結果如下:

敏感詞過濾

最近需要實現對聊天裡的敏感詞過濾,要求比較簡單,只需要對字型檔中存在的關鍵字進行匹配,所以不需要非常複雜的實現,但是需要能夠快速地對乙個關鍵字集合進行匹配。搜了一下相關的資料,比較簡單的乙個演算法是使用aho corasick演算法,以下簡稱ac演算法。該演算法的基本思想中包含了kmp演算法,即利用...

敏感詞過濾

敏感詞過濾 防沉迷,基本所有上線系統都會用的基礎功能吧,網上挺多 的,也很多種方式,看的有點繞寫了個自己感覺比較乾淨清楚的,結構也比較簡單,記錄一下insert 和 審查 檢查 都是遞迴,效率還好,win release版本5700的樣本,length 1000的 str 大概0.2ms支援比如敏感...

敏感詞過濾

分享乙個敏感詞過濾方法 1 public class wordfiltercontroller basecontroller 225 result str result 2627 if s filters null 28 3132 bool check false 33 foreach string...