国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java DFA算法案例詳解

瀏覽:3日期:2023-12-07 09:21:12
1.背景

項目中需要對敏感詞做一個過濾,首先有幾個方案可以選擇:

直接將敏感詞組織成String后,利用indexOf方法來查詢。 傳統的敏感詞入庫后SQL查詢。 利用Lucene建立分詞索引來查詢。 利用DFA算法來進行。

首先,項目收集到的敏感詞有幾千條,使用a方案肯定不行。其次,為了方便以后的擴展性盡量減少對數據庫的依賴,所以放棄b方案。然后Lucene本身作為本地索引,敏感詞增加后需要觸發更新索引,并且這里本著輕量原則不想引入更多的庫,所以放棄c方案。于是我們選定d方案為研究目標。

2.DFA算法簡介

DFA全稱為:Deterministic Finite Automaton,即確定有窮自動機。其特征為:有一個有限狀態集合和一些從一個狀態通向另一個狀態的邊,每條邊上標記有一個符號,其中一個狀態是初態,某些狀態是終態。但不同于不確定的有限自動機,DFA中不會有從同一狀態出發的兩條邊標志有相同的符號。

Java DFA算法案例詳解

簡單點說就是,它是是通過event和當前的state得到下一個state,即event+state=nextstate。理解為系統中有多個節點,通過傳遞進入的event,來確定走哪個路由至另一個節點,而節點是有限的。

3.敏感詞搜尋中的DFA算法3.1敏感詞庫構造描述

以王八蛋和王八羔子兩個敏感詞來進行描述,首先構建敏感詞庫,該詞庫名稱為SensitiveMap,這兩個詞的二叉樹構造為:

 Java DFA算法案例詳解

用hash表構造為:

 Java DFA算法案例詳解

3.2基于敏感詞庫收索算法的描述

以上面例子構造出來的SensitiveMap為敏感詞庫進行示意,假設這里輸入的關鍵字為:王八不好,流程圖如下:

  Java DFA算法案例詳解

4.代碼編寫4.1構造敏感詞實現代碼

Java DFA算法案例詳解

4.2實現敏感詞查詢代碼

Java DFA算法案例詳解

5.優化思路5.1敏感詞中間填充無意義字符問題

對于“王*八&&蛋”這樣的詞,中間填充了無意義的字符來混淆,在我們做敏感詞搜索時,同樣應該做一個無意義詞的過濾,當循環到這類無意義的字符時進行跳過,避免干擾。

5.2敏感詞用拼音或部分用拼音代替

兩種解決思路:一種是最簡單是遇到這類問題,先豐富敏感詞庫進行快速解決。第二種是判斷時將敏感詞轉換為拼音進行對比判斷。

不過目前這兩種方案均不能徹底很好的解決該問題,此類問題還需進一步研究。

到此這篇關于Java DFA算法案例詳解的文章就介紹到這了,更多相關Java DFA算法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 99精品国产在现线免费 | 日本三级11k影院在线 | 香蕉福利久久福利久久香蕉 | 久久久久久青草大香综合精品 | 亚洲性综合 | 91看片淫黄大片.在线天堂 | 国产高清在线精品一区a | 国产精品久久久久久久人热 | 小明台湾成人永久免费看看 | 爱爱毛片 | 欧美同性videos在线可播放 | 制服诱惑中文字幕 | 久久99精品久久久久久秒播 | 国产欧美日韩一区二区三区在线 | 色本道| 玖草在线| 9191精品国产观看 | 亚洲狠狠ady亚洲精品大秀 | 久久九九视频 | 欧美成 人h版在线观看 | 日韩欧美黄色 | 成年视频国产免费观看 | 久久久精品成人免费看 | 一级日韩 | 国产91精品久久久久999 | 日韩欧美理论片 | 成人午夜在线观看 | 国产欧美曰韩一区二区三区 | 欧美成人免费在线观看 | 国产日产欧产精品精品推荐在线 | 欧美亚洲日本一区二区三区浪人 | 国产精品热久久毛片 | 日韩精品一区二区三区乱码 | 久久精品视屏 | 51国产偷自视频区视频手机播器 | 国产成人精品视频频 | 美女免费毛片 | 美国毛片aaa在线播放 | 久久精品爱 | 一级a做爰片欧欧美毛片4 | 免费a级黄毛片 |