如何使用Java實現AC自動機全文檢索實例
來源:文萃谷 2.39W
導語:如何使用Java實現AC自動機全文檢索,下面是小編給大家推薦的代碼實現過程,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。
第一步,構建Trie樹,定義Node類型:
/**
* Created by zhaoyy on 2017/2/7.
*/
interface Node {
char value();
boolean exists();
boolean isRoot();
Node parent();
Node childOf(char c);
Node fail();
void setFail(Node node);
void setExists(boolean exists);
void add(Node child);
List<Node> children();
}
第二步,實現兩種Node,如果詞彙全是可打印的ASCII字符,就採用AsciiNode,否則(比如包含漢字),使用基於hash表的ode;這兩種Node均集成自AbstractNode:
/**
* Created by zhaoyy on 2017/2/8.
*/
abstract class AbstractNode implements Node {
private static final char EMPTY = '