专栏首页算法工程师的养成之路自然语言处理(三)语言模型

自然语言处理(三)语言模型

语言模型基本概念

用数学的方法描述语言规律,即用句子S=w1,w2…wnS = w_1,w_2\dots w_nS=w1​,w2​…wn​的概率p(S)p(S)p(S)刻画句子的合理性.

对语句合理性判断:

  • 规则法:判断是否合乎语法、语义(定性分析)
  • 概率统计法:通过可能性大小来判断(定量计算)

模型思想: p(S)=p(w1)p(w2∣w1)…p(wn∣w1…wn−1)=∑i=1np(wi∣w1⋯w−1)p(S) = p(w_1)p(w_2|w_1)\dots p(w_n|w_1\dots w_{n-1}) = \sum_{i=1}^np(w_i|w_1\cdots w_{-_1})p(S)=p(w1​)p(w2​∣w1​)…p(wn​∣w1​…wn−1​)=i=1∑n​p(wi​∣w1​⋯w−1​​) 当i=1i=1i=1时,p(w1∣w0)=p(w1)p(w_1|w_0) = p(w_1)p(w1​∣w0​)=p(w1​)

输入:句子S

输出:句子概率p(S)p(S)p(S)

参数:p(wi∣w1,…wi−1)p(w_i|w1,\dots w_{i-1})p(wi​∣w1,…wi−1​)

计算第iii个统计基元,如果共有LLL个不同的基元,那么第iii个基元将会有LiL^iLi种不同的历史情况. 如果L=5000, m=3,参数的数目将达到1250亿!而一个汉语句子平均有有22个词/字!

解决方法: 采用马尔可夫方法:假设任意一个词wiw_iwi​出现的概率只与它前面的wi−1w_{i-1}wi−1​有关.

n元文法(n-gram)

一个词有前面的n-1个词决定.

理论上,n越大越好,但同样参数也会增多,通常采用3元文法.

语言模型参数估计

参数估计

通过模型训练获取模型中所有的模型参数即条件概率.

参数的学习方法:最大似然估计MLE

由于语料是有限的,不可能包含所有可能出现的词的组合,因此在必然存在零概率问题.

数据平滑

基本思想

调整最大似然估计的概率值,使零概率增加,非零概率下调.

基本目标

测试样本的语言模型越小越好

基本约束:

∑wjp(wi∣w1,w2…wi−1)=1\sum_{w_j}p(w_i|w_1,w_2\dots w_{i-1})=1wj​∑​p(wi​∣w1​,w2​…wi−1​)=1

方法

  • 加1法 每一种情况出现的次数都加1
  • 减值法/折扣法 修改训练样本中事件的实际技术,使样本中的事件概率之和小于1,剩余的概率分配给未见概率. Good-Turing、Back-off、绝对减值、线性减值
  • 删除插值法 用低阶文法估计高阶文法,即当3-gram的值不能从训练数据中估计时,采用2-gram代替.

性能评价

  1. 实用方法
  2. 理论方法 计算模型对于测试样本的困惑度,n-gram对于英文文本的困惑度一般为50~10000,对应于交叉熵范围为6-10bits/word.

语言模型应用

  1. 计算句子概率
  2. 给定若干词,预测下一个词

改进的语言模型

n-gram存在的问题

  1. 对语料敏感,训练参数难以反映不同领域之间语言规律上的差异.
  2. 某些在文本中很少出现,但在某局部文本中大量出现的情况.

基于缓存的语言模型

在文本中刚刚出现过的词在后边的句子中再次出现的可能性往往较大,比标准的n-gram模型预测的概率要大.

自适应方法

  • 将k个最近出现过的词存于一个缓存中,作为独立的训练数据.
  • 通过这些数据,计算动态频度分布数据.
  • 将动态频度分布数据与静态分布数据通过线性插值的方法结合 p^cache](wi∣w1i−1)=1/K∑j=i−ki−1Iwj=wip^(wi∣w1i−1)=λp^cache(wi∣w1i−1)+(1−λ)p^n−gram(wi∣wi−n+1i−1)\hat{p}_{}cache](w_i|w_1^{i-1}) = 1/K\sum_{j=i-k}^{i-1}I_{w_j=w_i}\\ \hat{p}(w_i|w_1^{i-1}) = \lambda\hat{p}_{cache}(w_i|w_1^{i-1}) + (1-\lambda)\hat{p}_{n-gram}(w_i|w_{i-n+1}^{i-1}) p^​​cache](wi​∣w1i−1​)=1/Kj=i−k∑i−1​Iwj​=wi​​p^​(wi​∣w1i−1​)=λp^​cache​(wi​∣w1i−1​)+(1−λ)p^​n−gram​(wi​∣wi−n+1i−1​) 其中,0&lt;λ&lt;10&lt;\lambda&lt;10<λ<1,为插值系数,可以通过EM算法求得.

基于混合方法的语言模型

大规模训练语料来自不同领域,在主体、风格都有一定的差异,而测试预料通常是同源的,为了获得最佳性能,语言模型必须适应各种不同类型的语料对齐性能的影响.

自适应方法

  • 将训练语料聚为n类,语言模型划分成n个子模型.
  • 确定适当的训练语料子集,并利用这些预料建立特定的语言模型.
  • 在模型运行时识别测试预料的主题或主题的集合.
  • 整个语言模型的概率通过下面的线性插值公式计算得到. p^(wi∣w1i−1)=∑j=1nλjp^Mj(wi∣w1i−1)\hat{p}(w_i|w_1^{i-1}) = \sum_{j=1}^n\lambda_j\hat{p}_{M_j}(w_i|w_1^{i-1})p^​(wi​∣w1i−1​)=j=1∑n​λj​p^​Mj​​(wi​∣w1i−1​) 其中0&lt;λj&lt;1,∑j=1nλj=10&lt;\lambda_j&lt;1,\sum_{j=1}^n\lambda_j = 10<λj​<1,∑j=1n​λj​=1 λ\lambdaλ值可以通过EM算法计算,对测试预料达到最小困惑度.

参考资料

中国科学院大学-NLP课程课件(IIE胡玥老师主讲)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 中科院陆汝钤获吴文俊人工智能最高成就奖,百度王海峰获吴文俊人工智能杰出贡献奖

    AI 科技评论消息,12 月 9 日上午,被誉为「中国智能科学技术最高奖」的吴文俊人工智能科学技术奖在苏州举行颁奖典礼。本届吴文俊人工智能奖共对 70 项人工智...

    AI科技评论
  • 和日本萌妹一起读深度学习最新论文,阅读难度会降低吗?

    这是日语 twitter 上,一个很受欢迎的科技 twitter 主@_Ryobot 对之前自己推送的论文介绍,和自然语言处理知识漫画介绍的一个整理。比较有意思...

    大数据文摘
  • 零AI基础,教你搭建一个讨女友欢心的聊天机器人

    最近我身边的后端小哥哥心态有点崩,女朋友控诉他老加班不回微信,闹分手!我给他出一招,找个聊天机器人啊,兄弟,加班恋爱两不误,皆大欢喜啊。小哥哥一听,嘿,有谱。

    小小詹同学
  • 和日本萌妹一起读深度学习最新论文,阅读难度会降低吗?

    这是日语 twitter 上,一个很受欢迎的科技 twitter 主@_Ryobot 对之前自己推送的论文介绍,和自然语言处理知识漫画介绍的一个整理。比较有意思...

    zenRRan
  • 深度学习的NLP工具

    为什么最新的模型结果这么难以复现?为什么去年可以工作的代码和最新发布的深度学习框架不适配?为什么一个很直白的基线这么难以建立?在今天的世界中,这些都是自然语言处...

    AI研习社
  • 你说“神马”?非正式汉语数据集资源上线,帮你训练网络语言处理

    NLP是个好东西,但是汉语文化实在是博大精深,连长辈都看不懂网络词语,想让机器理解它们就更难了。

    量子位
  • 专访 | Recurrent AI:呼叫系统的「变废为宝」

    自然语言处理是一个庞大的领域,比如普通文本与对话就是两个不同的领域,对话领域里,任务型对话又不同于闲聊型对话,问答式对话又不同于协作型对话……

    机器之心
  • 2018,一文看尽AI发展真相(上)

    虽然少了去年动辄“超越人类”的锐气,但“辅助人类”的人工智能,如今究竟发展到什么程度?就让我们在2018即将结束的时候,来一个简单的回顾。

    新智元
  • 数据科学大佬的简历上都有哪些技能?

    如果你是一个数据科学的求职者,那么你一定想知道在你的简历上应该写些什么技能会有更大的概率接到面试。如果你想进入这个领域,你可能已经多次想要知道哪些技术可以成为一...

    用户2769421
  • 为什么说 NLP 将是未来数据领域的珠峰?

    人工智能或许是人类最美好的梦想之一。追溯到公元前仰望星空的古希腊人,当亚里士多德为了解释人类大脑的运行规律而提出了联想主义心理学的时候,他恐怕不会想到,两千多年...

    CSDN技术头条

扫码关注云+社区

领取腾讯云代金券