自然语言处理4-1:语言模型之Noisy Channel Model
Noisy Channel Model其实就是指的下面这个公式:
$$ P(text|source) = \frac{P(source|text)P(text)}{P(source)} $$
因为P(source)是一个固定的值,所以又可以写成:
$$ P(text|source) \propto P(source|text)P(text)$$
在上式中,source是一个信号源,text是我们需要转换成的文本,例如在拼写纠错中,source是输入的单词,text是正确的单词;在机器翻译中,source是待翻译的语言,text是翻译的目标语言;语音识别中,source是语音信号,text是对应的文本。很容易理解, P(source|text)可以看成是文本和信号的相似度,称为“翻译模型”或者“识别模型”,例如,在拼写纠错中,P(source|text)可以表示编辑距离,或者可以表示,当一个人想要输入text结果输入成了source的概率。而P(text)可以看成text这个文本是否常见,例如,在拼写纠错中,我们要寻找输入单词对应的正确的单词,除了需要和输入单词的编辑距离越小越好,还需要正确单词越常见越好。例如,如果有个人输入“jappy”,那么他有可能是想输入“happy”,也有可能是想输入“pappy”,虽然“happy”,“pappy”和“jappy”的编辑距离一样,但是由于happy更常用,所以正确单词是happy更有可能。P(text)就是衡量文本的正确性或者常用概率的,称为“语言模型”
其一个具体的应用就是在前面写到的拼写纠错。在拼写纠错中,
$$ P(正确单词|输入单词) \propto P(输入单词|正确单词)P(正确单词)$$