算法概述
分词算法常用的方法是基于统计的机器学习算法。可以使用 隐马尔科夫模型(HMM) 来实现分词。
隐马尔科夫模型的基本思想是假设一个序列是由一个隐藏的马尔科夫链生成的,而每个状态对应的观察值是该序列中的一个观察符号。在分词中,每个状态对应一个词,而每个观察符号对应一个字符。
对于给定的训练集 D = w 1 , w 2 , … , w n D={w_1,w_2,\ldots,w_n} D=w1,w2,…,wn,我们可以使用 Baum-Welch 算法 来估计模型的参数 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)。其中, A A A 是状态转移矩阵, B B B 是观察符号概率矩阵, π \pi π 是初始状态概率向量。
给定一个待分词的序列 O = x 1 , x 2 , … , x m O={x_1,x_2,\ldots,x_m} O=x1,x2,…,xm,使用维特比算法来求出最可能的状态序列 Q ∗ = q 1 , q 2 , … , q m Q^*={q_1,q_2,\ldots,q_m} Q∗=