如何用隐马尔可夫模型解决分词问题
假设状态值集合 S =( B , M , E , S ),每个状态代表的是该字在词语中的位置, B 代表是词语中的起始字, M 代表是词语中的中间字, E 代表是词语中的结束字, S 代表是单字成词,观察值集合 K ={所有的汉字}。那么中文分词的问题就是通过观察序列来预测出最优的状态序列。
比如观察序列为:
O=“数据分析师是通过运用业务数据来指导业务运行的一种新兴岗位”
如果我们已经有了一个训练好的HMM分词模型,那么就可以预测状态序列为:
Q=“BMMMESBEBEBMMESBEBEBESBEBMME”。
根据这个状态序列我们可以进行切词:
BMMME/S/BE/BE/BMME/S/BE/BE/BE/S/BE/BMME/。
所以切词结果如下:
数据分析师/是/通过/运用/业务数据/来/指导/业务/运行/的/一种/新兴岗位
因为HMM分词算法是基于字的状态(BEMS)来进行分词的,所以很适合用于新词发现,某一个新词只要做好状态标记,比如“BMME”,就算它没有在历史词典中出现过,HMM分词算法也能将它识别出来。
这个算法的关键是得到状态序列,这就需要进行算法训练。