NLP(四):语言模型

版权声明:尊重知识产权与劳动成果 https://blog.csdn.net/hzk1562110692/article/details/88672558

这是一系列自然语言处理的介绍,本文不会涉及公式推导,主要是一些算法思想的随笔记录。
适用人群:自然语言处理初学者,转AI的开发人员。
编程语言:Python
参考书籍:《数学之美》
参考教程:
《机器读心术之自然语言处理》

形式语言的缺点

  1. 对于像汉语,英语这样的大型自然语言系统,难以构造精确的文法;
  2. 不符合人类学习语言的习惯;
  3. 有些句子语法正确(符合文法),但在语义上却不可能,形式语言无法排出这些句子。

解决方向:基于大量语料,采用统计学手段建立模型

统计语言模型

统计语言模型( Statistical Language Model),是今天所有自然语言处理的基础,并且广泛应用于机器翻译、语音识别、印刷体或手写体识别、拼写纠错、汉字输入和文献查询。

一个句子是否合理,就看它的可能性大小如何。至于可能性就用概率来衡量。
在这里插入图片描述

模型的训练,零概率问题和平滑方法在这里插入图片描述

古德-图灵估计
古德-图灵估计可以解决n元语法模型(n-gram)中的数据的稀疏问题。主要的思想是把非零的n元语法的概率降低匀给一些低概率n元语法,以修改最大似然估计与真实概率之间的偏离

语料的选取

  1. 如果训练语料和模型应用的领域相脱节,那么模型的效果往往会大打折扣;
  2. 训练数据通常是越多越好
  3. 在1、2情况下(训练数据和应用数据一致并且训练量足够大的情况下),训练语料的噪音高低也会对模型的效果产生一定的影响,因此,在训练之前有时需要对训练数据进行预处理。在成本不高的情况下,有必要对训练数据进行过滤。

语言模型性能评价

语言模型评价指标Perplexity
语言模型的性能通常用交叉熵和**复杂度(perplexity)**来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。平滑是指对没观察到的N元组合赋予一个概率值,以保证词序列总能通过语言模型得到一个概率值。

猜你喜欢

转载自blog.csdn.net/hzk1562110692/article/details/88672558