利用 隐马尔科夫模型(HMM) 的解码能力,能从一个观察序列(字符串序列)解码成另一个隐藏状态序列(分词符号序列)。
解释
将训练数据按照 BMES 标记集合转换成隐藏状态序列。一般情况下使用 BMES
标记体系作为隐藏序列的体系。
BMES 标记体系
BMES 分别是 Begin
/ Middle
/ End
/ Single
的缩写,分别代表着所标记的字符是一个词语的 开始字符
/ 中间字符
/ 结尾字符
/ 单个字符
(也就是说这个词只由一个字符构成)。
举例来说:
我
这个词对应的 BMES 标记为S
我们
这个词对应的 BMES 标记为BE
老爷爷
这个词对应的 BMES 标记为BME
风调雨顺
这个词对应的 BMES 标记为BMME
得到训练数据后,可以统计出 HMM 的两个参数表。得到的 HMM 参数后可以利用 Viterbi 算法解码出隐藏状态序列,再按照隐藏状态序列反向将字符串分割成词语
示例
以 我们在野生动物园玩
为例, 假设 HMM 解码得到的隐藏状态序列为 BESBMMMES
则会被分成 我们
(BE
) / 在
(S
) / 野生动园
(BMMME
) / 玩
(S
)
优化方案
为了增加处理 OOV 的能力,对于没有出现在训练数据集的字符,每个隐藏状态都有一个非常小的 Emission Probability, 这样可以增加模型的鲁棒性。
关联算法
CRF
的基本想法与此算法类似,但性能更加强劲。