通常情况下,我们在做语音识别的时候,一般是以下的一个流程:

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(1)

这里最主要的是依靠两个模型:声学模型和语言模型,声学模型接收我们说话的音频,输出的结果为拼音,而从拼音转换到文字,这个就需要语言模型来进行操作。也就是这一篇文章的核心,基于马尔可夫的拼音文字转换方法。

一:拼音到文字的Markov模型推导

Markov模型的特点是某一状态的发生概率仅其以前的状态有关,而和其他状态无关

,这一点在语言学中称为左语境约束,左语境约束这一点很好理解,因为我们的文字读写习惯都是从左到右,因此你现在读到的文字语境会受到你刚刚读到的文字的约束。

前提假设:

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(2)

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(3)

综上所述:可以通过下边的图片来解释这个流程,其中方块表示输入的拼音,圆形表示同音字,箭头表示对外转移概率(没有箭头表示转移概率为0)

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(4)

二:动态规划的算法求解

包括最大似然估计,很多方法都可以解决寻找路径的问题。需要通过对观察到的数据来进行概率判断下一时刻最可能的状态,从拼音到汉字的转换过程可以看做是在一个有向图中,求解概率最大路径的问题。可以用维特比(Viterb)算法:

假设:我们观察到的是拼音:

但是观测序列中序列排序很复杂,比如wo可能有三种可能:喔、我、沃,如下图所示:

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(5)

现在变成了最大概率问题,把概率最大的理解为路径最短,转换为了求解最短路径问题

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(6)

算法求解:

1:A->B

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(7)

2:A->B->C

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(8)

3:A->B->C->D

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(9)

4:A->B->C->D->E

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(10)

最终就得到了A->E的最短路径A->B1->C2->D2->E1,至此,找到了wo ai zhong guo对应的概率最大的中文汉字组合为:我爱中国。

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(11)

三:系统结构

参考https://github.com/letiantian/Pinyin2Hanzi项目代码。罗列系统结构:

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(12)

用户输入拼音串后,会学习语料库,然后通过维特比算法去求解最大解,,并

将形成最大值的状态串接起来作为输出 。

四:实验结果

nlp常用文本处理模型 基于Markov的拼音汉字转换方法(13)

代码学习部分放在下一篇

五:参考文章

1:基于词词同现概率的拼音汉字自动转换方法。马少平老师

2:如何通俗地讲解 viterbi 算法?

https://www.zhihu.com/question/2013

,