摘要:序本文簡(jiǎn)單介紹下敏感詞或者臟詞檢測(cè)算法。經(jīng)典算法經(jīng)典的算法由三部分構(gòu)成,表,表和表,共包含四種具體的算法,分別是計(jì)算三張查找表的算法以及算法本身。表是由模式集合中的所有模式構(gòu)成的狀態(tài)轉(zhuǎn)移自動(dòng)機(jī)。
序
本文簡(jiǎn)單介紹下敏感詞或者臟詞檢測(cè)算法。
經(jīng)典AC算法經(jīng)典的AC算法由三部分構(gòu)成,goto表,fail表和output表,共包含四種具體的算法,分別是計(jì)算三張查找表的算法以及AC算法本身。
goto表是由模式集合P中的所有模式構(gòu)成的狀態(tài)轉(zhuǎn)移自動(dòng)機(jī)。(goto表就是一棵trie樹(shù))
failure表作用是在goto表中匹配失敗后狀態(tài)跳轉(zhuǎn)的依據(jù),這點(diǎn)與KMP中next表的作用相似。(這個(gè)表是trie樹(shù)沒(méi)有的,加了這個(gè)表,AC自動(dòng)機(jī)就看起來(lái)不像一棵樹(shù),而像一個(gè)圖)
output表示輸出,又稱:emits,即代表到達(dá)某個(gè)狀態(tài)后某個(gè)模式串匹配成功
普通DFA算法AC自動(dòng)機(jī)本質(zhì)上來(lái)說(shuō)是一種基于trie樹(shù)的kmp算法,AC算法需要三個(gè)函數(shù)來(lái)進(jìn)行字符串匹配,而且這三個(gè)函數(shù)的求解都和一個(gè)確定的DFA(有限狀態(tài)自動(dòng)機(jī))有關(guān)。
使用hashmap確定性有窮自動(dòng)機(jī),用于正則表達(dá)式的匹配,最長(zhǎng)左子式匹配
public void createKeyWord(String keyWord) { Map nowMap = sensitiveWordMap; for (Character c : keyWord.toCharArray()) { Object obj = nowMap.get(c); if (obj == null) { Map使用自定義數(shù)據(jù)結(jié)構(gòu)childMap = new HashMap<>(); childMap.put("isEnd", "false"); nowMap.put(c, childMap); nowMap = childMap; } else { nowMap = (Map) obj; } } nowMap.put("isEnd", "true"); }
public class WordNode { private int value; // 節(jié)點(diǎn)名稱 private ListdocsubNodes; // 子節(jié)點(diǎn) private boolean isLast;// 默認(rèn)false public WordNode(int value) { this.value = value; } public WordNode(int value, boolean isLast) { this.value = value; this.isLast = isLast; } //...... }
字符串多模式匹配:AC算法
Java實(shí)現(xiàn)DFA算法對(duì)敏感詞、廣告詞過(guò)濾功能
敏感詞過(guò)濾的算法原理之 Aho-Corasick 算法
敏感詞過(guò)濾的算法原理之DFA算法
AC自動(dòng)機(jī)和Fail樹(shù)
基于雙數(shù)組的AC匹配算法學(xué)習(xí)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70247.html
摘要:人工智能技術(shù)的初步應(yīng)用隨著網(wǎng)絡(luò)強(qiáng)國(guó)戰(zhàn)略思想加強(qiáng)網(wǎng)絡(luò)內(nèi)容建設(shè)等指導(dǎo)思想的推出和強(qiáng)化,內(nèi)容安全已經(jīng)成為互聯(lián)網(wǎng)企業(yè)生存和發(fā)展的生命線。 歡迎訪問(wèn)網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)。 10月16日,2018年 AIIA人工智能開(kāi)發(fā)者大會(huì)在蘇州舉辦。會(huì)議邀請(qǐng)了國(guó)內(nèi)外人工智能產(chǎn)業(yè)知名人物、國(guó)家政府主管部門(mén)、行業(yè)內(nèi)頂尖企業(yè)、知名學(xué)者代表、開(kāi)源社區(qū)優(yōu)秀貢獻(xiàn)團(tuán)隊(duì)及個(gè)人,共同交流了技術(shù)現(xiàn)狀趨勢(shì)、生態(tài)...
摘要:基于深度學(xué)習(xí)的語(yǔ)義匹配語(yǔ)義匹配技術(shù),在信息檢索搜索引擎中有著重要的地位,在結(jié)果召回精準(zhǔn)排序等環(huán)節(jié)發(fā)揮著重要作用。在美團(tuán)點(diǎn)評(píng)業(yè)務(wù)中主要起著兩方面作用。 寫(xiě)在前面美團(tuán)點(diǎn)評(píng)這兩年在深度學(xué)習(xí)方面進(jìn)行了一些探索,其中在自然語(yǔ)言處理領(lǐng)域,我們將深度學(xué)習(xí)技術(shù)應(yīng)用于文本分析、語(yǔ)義匹配、搜索引擎的排序模型等;在計(jì)算機(jī)視覺(jué)領(lǐng)域,我們將其應(yīng)用于文字識(shí)別、目標(biāo)檢測(cè)、圖像分類、圖像質(zhì)量排序等。下面我們就以語(yǔ)義匹配、圖...
摘要:在樹(shù)中,每個(gè)節(jié)點(diǎn)表示一個(gè)狀態(tài),每條邊表示一個(gè)字符,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)經(jīng)過(guò)的邊即表示一個(gè)詞條。查找一個(gè)詞條最多耗費(fèi)的時(shí)間只受詞條長(zhǎng)度影響,因此的查找性能是很高的,跟哈希算法的性能相當(dāng)。 Last-Modified: 2019年5月10日15:25:35 參考文章 c++ 使用map實(shí)現(xiàn)Trie樹(shù) 關(guān)鍵詞過(guò)濾擴(kuò)展,用于檢查一段文本中是否出現(xiàn)敏感詞,基于Double-Array Trie...
摘要:異步事件處理本項(xiàng)目涉及到多種異步事件的處理。即是的粉絲,是的關(guān)注對(duì)象。模式定義優(yōu)缺點(diǎn)推事件觸發(fā)后廣播給所有粉絲。具體來(lái)說(shuō),推模式就是事件觸發(fā)后產(chǎn)生,觸發(fā)事件的用戶下所有粉絲的實(shí)現(xiàn)中都存入該的。 項(xiàng)目源代碼已托管在 Github,歡迎 Star、Fork。 Q & A 問(wèn)答社區(qū) QA 是一個(gè)基于 B/S 架構(gòu)而設(shè)計(jì)開(kāi)發(fā)的社區(qū)網(wǎng)站。 showImg(https://segmentfault...
閱讀 661·2021-11-24 09:39
閱讀 3506·2019-08-30 15:53
閱讀 2543·2019-08-30 15:44
閱讀 3261·2019-08-30 12:54
閱讀 2233·2019-08-29 12:23
閱讀 3329·2019-08-26 14:05
閱讀 2130·2019-08-26 13:36
閱讀 3461·2019-08-26 13:33