민감 어 검출 알고리즘 소결
본 고 는 민감 한 단어 나 더러 운 단어 검출 알고리즘 을 간단하게 소개 한다.
고전 AC 알고리즘
전형 적 인 AC 알고리즘 은 세 부분 으로 구성 되 어 있 으 며, goto 표, fail 표 와 output 표 는 모두 네 가지 구체 적 인 알고리즘 을 포함 하고 있 으 며, 각각 세 장의 검색 표를 계산 하 는 알고리즘 과 AC 알고리즘 자 체 를 포함한다.
goto trie
) trie , ,AC ,
) 일반 DFA 알고리즘
결정적 으로 가난 한 자동 동기 가 있 습 니 다. 정규 표현 식 의 일치, 최 장 왼쪽 자식 일치 에 사 용 됩 니 다.
hashmap 사용 하기
public void createKeyWord(String keyWord) {
Map nowMap = sensitiveWordMap;
for (Character c : keyWord.toCharArray()) {
Object obj = nowMap.get(c);
if (obj == null) {
Map 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; //
private List subNodes; //
private boolean isLast;// false
public WordNode(int value) {
this.value = value;
}
public WordNode(int value, boolean isLast) {
this.value = value;
this.isLast = isLast;
}
//......
}
doc
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.