上QQ阅读APP看书,第一时间看更新
2.5 有限状态机
可以用有限状态机实现模糊查询。例如,查找编辑距离相似的单词。
org.apache.lucene.util.automaton包含有限状态机的实现。BasicAutomata.makeChar()方法生成接收单个字符的自动机。
Automaton a = BasicAutomata.makeChar('W'); //创建一个字符W组成的自动机
如果从同一个状态接收同样的输入后可以任意到达多个不同的状态,这样的有限状态机叫作非确定有限状态机。如果从一个状态接收一个输入后只能到达某一个状态,这样的有限状态机叫作确定有限状态机。上面的有限状态机a是一个确定的有限状态机。
可以用BasicOperations.run方法测试自动机是否能够接收输入字符串。
System.out.println(BasicOperations.run(a, "W")); //输出true