最短路径分词的原理是:首先,对句子进行原子切分,然后根据大词典,构造一个有向无环图,俗称DAG(Directed Acyclic Graph),每个可能分词对应DAG的一条边,每条边有一定的权重。因此,分词问题转化成了求DAG中起点到终点的最短路径问题。
根据DAG边的权重特点,有两类分词方式:
一种是,基于规则的,假设所有边的权重都一样(据说是汉语最少词表达出来的句子最合理,但缺乏严谨依据),它已分出来的词总个数最少为最终目的。但这会产生很多歧义的划分。
另一种是,基于统计的,即根据大规模的语料,计算出“权重”,这种权重计算可借助2-gram语言模型来进行,即统计相邻两个词出现的概率。最终,也是通过viterbi算法来解码求得最短路径。
借用码农场的图为例:
1、找出所有可能的分词,形成词图。
2、根据大规模语料,利用最大似然估计求得词转移的概率,即DAG中的权重。
3、viterbi算法解码。
参考码农场的文章:维特比算法在分词中的应用、词图的生成