转载自 NLP Coursera By Michael Collins - Week1
NLP Coursera By Michael Collins - Week1
构建模型框架 - Markov Process
毕竟是机器学习嘛,所以第一步,先要把实际问题转化成数学模型。
在NLP中,一般使用的都是概率模型,即把语言模型变成概率论范畴。
比如说,现在有一段语音,说的很含糊,没有听清楚,好像是“like your”,又好像是“lie cured”。
那么到底是哪一种呢?我们就看在现有的语料库中,到底是“like your”出现的概率大,还是“lie cured”的概率大。
于是就把语音识别问题转变成了一个概率问题:输入一串字符,输出这串字符组合在一起的概率,如果概率大,就是正确的句子。
下面构建这个模型
至此,模型框架搭建完毕,但是参数还没有设定好。
也就是说,现在如果向模型中随便输入一个句子,要求输出的结果是这个句子出现的概率。
那么我们就需要事先知道模型中,每一个p(w|u,v)。
用如下方式来计算:
对于上面的计算方法,不能解决出现概率为0,但实际这句句子是合理的情况。
下面介绍两种方法,来对上面的计算方法进行改进:
第一种是Linear Interpolation:
这里的三个系数用下面的方法进行选择:
其实这个方法就是将三种计算概率的方式线性结合起来,具体的结合方式有很多种,上面只是其中一种。
上面这个方法中的三个系数和概率本身没有关系,但是更好的方法是让他们有关系:
bucketing法:对不同范围内的counts,使用不同的系数
将三个系数都写成同一个参数的线性组合:
第二种是Discounting Method:
这个方式就是,从概率不为0的情况中分出一部分的概率给概率为0的情况。
至此为止,整个模型搭建完毕。
评价模型
一般情况下:
当服从均匀分布的时候:
以上就是这一周的课程中讲的内容。notes中的内容和这个一样,基本没有什么补充。
下面用一张流程图来总结一下整个模型的构建过程。