基于HMM隐马尔可夫模型的汉子拼音输入法程序
原理及模型介绍
(一)HMM模型
对于一个随机事件,有一个可以观测到的值序列:
该事件的每一个观察到的值都对应一个生成他的状态
,则其背后存在一个状态序列:
假设1:(马尔科夫假设)每一个状态的值都与其前n个状态的值相关
假设2:(不动性假设)状态与具体的时间无关
假设3:(输出独立性假设)输出只与当前状态有关
则一个HMM模型是一个五元组
其中
解码问题:对于给定的模型和观察值序列
,求出最大可能性的状态序列
。
(二)拼音转汉字算法设计
拼音转汉字即对应HMM模型的解码问题。由已知的语料库训练出来汉字到汉字的转移概率和汉字到拼音的发射概率,然后用户输入拼音序列为已知的观察值序列,求大嘴可能性的汉字状态序列。
用一个简单的例子来表示这个识别的过程及原理。
若用户想在计算机得到汉字“我爱中国”,则需要往键盘敲入“wo ai zhong guo”这四个英文字符串。从HMM模型出发,“wo ai zhong guo”是观测值序列,如下观测流程图。
图1 我爱中国汉字拼音输入HMM观测过程
图中蓝色圆圈为隐藏的状态,即汉字,橙色圆圈代表可以观测到观测值,拼音。联系HMM模型,汉字“我”到汉字“爱”的过程是一个转移过程,如果用二元语法模型,则汉字“爱”在“我”的出现情况下有一个转移概率,如后汉字分析同理。同时,汉字我到拼音“wo”有一个发射过程,也有一个概率。则上图可变化为基于概率的识别流程图,如下。