HanLP分词工具中的ViterbiSegment分词流程( 四 )

List<Vertex> combineByCustomDictionary(List<Vertex> vertexList DoubleArrayTrie<CoreDictionary.Attribute> dat final WordNet wordNetAll) ,

如果indexMode=0 , 即系统处于普通分词模式 , 对应方法为

List<Vertex> combineByCustomDictionary(List<Vertex> vertexList DoubleArrayTrie<CoreDictionary.Attribute> dat) 。

从调用的方法我们不难看出 , 全切分时系统会根据CustomDictionary.txt添加分词路径 。 而普通切分时 , 系统会根据CustomDictionary.txt合并路径 。 这也就是为什么有的时候明明已经在CustomDictionary.txt中添加了新词却不生效的原因 , 因为一旦根据CoreNatureDictionary.txt构建了词图就不会再有新的路径插到已有分词路径中间 , 此时就去查找并修改CoreNatureDictionary.txt中的相关字或词吧 。

(3)维特比选择最优路径

对应方法为List<Vertex> viterbi(WordNet wordNet) , 至此就得到了一个粗分的分词结果 。 需要注意HanLP的Viterbi分词只是用viterbi方法求解最优路径 , 并不是隐马 。

推荐阅读