前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自然语言处理(三)语言模型

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

作者头像
JNJYan
发布2019-01-18 10:01:22
8250
发布2019-01-18 10:01:22
举报

语言模型基本概念

用数学的方法描述语言规律,即用句子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胡玥老师主讲)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 语言模型基本概念
    • n元文法(n-gram)
      • 语言模型参数估计
        • 参数估计
        • 数据平滑
      • 性能评价
        • 语言模型应用
          • 改进的语言模型
            • n-gram存在的问题
            • 基于缓存的语言模型
            • 基于混合方法的语言模型
        • 参考资料
        相关产品与服务
        NLP 服务
        NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档