一、概念

什么是数据平滑?我通过一个例子来解释一下。假设有如下语料库:

{

今天 天气 不错,

天气 晴朗,

晴朗 的 天气,

}

如果要计算句子s=“晴朗天气”的概率(用二元语法模型,自然语言处理(七)已经介绍过),有如下计算过程。

p(天气 | 晴朗)  = c(晴朗天气)/ c(晴朗)  =  = 0

显然上面计算得到的概率不怎么准确,晴朗天气总有出现的可能,最起码概率应该大于0。

为了解决这种问题,数据平滑就有了用武之地,数据平滑的作用把概率为0的变为概率较小的非0概率。最后可能还有一个疑问,句子的概率是0就0呗,为什么要平滑?实际上在语音识别中如果识别到句子的概率是0,那么就识别失败了,不管如何都要识别出一个结果,所以不能让句子的概率成为0。

知道了数据平滑的目的和用途,就该了解,数据平滑到底怎么个平滑?怎么消除0概率?其实平滑的方法有很多,接下来介绍一些常用方法。

二、数据平滑方法

加1法:这个方法是用于n元语法模型的比较简单的方法,就是计算频率时,每个二元语法出现的次数加1。公式如下:

上面的 |V| 指的是所有不同基元的个数,对下面这个语料库来说:

{

今天 天气 不错,

天气 晴朗,

晴朗 的 天气,

}

|V| = 5。这时候采用平滑的方法要计算句子s=“晴朗天气”的概率:

p( 天气 | <BOS> )  = 

p( 天气 | 晴朗 )  = 

p( <EOS> |  天气 )  = 

因此,这是句子s出现的概率为p(s) = 。通过数据平滑,就解决了概率为0问题。不过加1法算出的概率有时候并不准确,甚至于原始求概率相差较大,因此,又出现了其他的方法来解决。

加法平滑法:同上面的加1法类似,这个方法只不过是加一个,且。这个的值并没法求,可以把它当做一个超参数。

古德—图灵估计法:这个计算方法,要改变出现r次的n元语法为r*次。。这里的是指训练语料库中恰好出现r次的n元语法的数目。出现r次的n元语法的概率:。其中。这些公式的推算这里就不加证明了,这些都是最后推出的结果可以直接用来计算。下面这个例子是教材上的例子。这里就不一一推敲了。

总之这个古德-图灵估计法是将部分的概率分配到了未出现的事件,这样的话就不会出现概率为0的事件。下图是一个示意图,至于为什么概率总和是被均分的,就不再证明。

JEM平滑方法:这个方法解决的问题主要是古德-图灵方法中概率总和是被均分。假如有如下语料库:

{

今天 天气 不错,

天气 晴朗,

晴朗 的 天气,

}

如果计算“晴朗天气”和“晴朗云彩”两个句子的概率,显而易见如果用古德-图灵平滑法,两个句子的概率是一样的。然而根据常识来看,晴朗天气出现的概率要远远大于晴朗云彩。JEM平滑方法就是要解决这个问题。

JEM平滑方法在二元模型中加入一个一元模型。一元模型为:

将二元文法模型和一元文法模型进行线性插值:

这时“天气”的概率就远远大于“云彩”的概率,因此,这时“晴朗天气”和“晴朗云彩”两个句子的概率就不会相等均分,而是合乎常理的概率。

这就是JEM平滑方法的基本思想,平滑的方法有很多,这里就不再全部深究,上述的平滑方法也没有很精细的阐述,本文可能有错误之处,望各位同行看到的话不吝赐教,拜谢。

参考的书目有:宗成庆《统计自然语言处理》

自然语言处理(九)——数据平滑相关推荐

  1. 自然语言处理之数据平滑方法

    在自然语言处理中,经常要计算单词序列(句子)出现的概率估计.但是,算法训练的时候,预料库中不可能包含所有可能出现的序列,因此为了防止对训练样本中为出现的新序列概率估计值为零,人们发明了不少可以改善估计 ...

  2. 自然语言处理基础(4)--数据平滑技术

    n元语法模型中,在统计结果中出现了零概率事件反映语言的规律性,即这种现象本来就不该出现,但更多的时候是由于语言模型的训练文本T的规模以及其分布存在着一定的局限性和片面性.这就是所谓的"数据稀 ...

  3. oracle tns 代理配置_OGG实现Oracle到MySQL数据平滑迁移

    技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移 - 爱可生开源社区​opensource.actionsky.com 一.OGG概述 OGG全称为Oracle GoldenGate, ...

  4. 三维数据平滑处理_你该如何正确的处理思看科技三维扫描仪得到的数据?

    其他行业至少在三维扫描领域没有说过,无论设备的精度有多高,被扫描产品的3D数据都会不可避免地引入数据误差,尤其是靠近锐利边缘和边界的测量数据.可能会导致点周围的曲面补丁偏离原始曲面,因此通常需要通过以 ...

  5. Java平滑处理什么意思_为何要进行数据平滑处理?

    平滑处理,可使分类器的学习更加准确,我们会首先把label给.这一步很容易会被忽略,导致模型的结果总是达不到一定标准. 使用最有逼格的 log1p, 也就是 log(x+1),避免了复值的问题. PS ...

  6. 区别于传统低效标注,两种基于自然语言解释的数据增强方法

    本文内容整理自 PaperWeekly 和 biendata 在 B 站组织的直播回顾,点击文末阅读原文即可跳转至 B 站收看本次分享完整视频录像,如需嘉宾课件,请在 PaperWeekly 公众号回 ...

  7. 今晚直播 | 清华大学NLP组秦禹嘉:基于自然语言解释的数据增强

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  8. PW Live直播 | 清华大学NLP组秦禹嘉:基于自然语言解释的数据增强

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  9. 怎么进行数据平滑滤波_气相色谱数据处理方法 EWG1990仪器学习网

    2018/12/29 作者/EWG1990仪器学习网 本节涉及气相色谱仪的几种常用检测器(TCD.FID.ECD.FPD.NPD等)的数据采集和数据分析,这类信号不包含质谱.光谱类的辅助信息,其关键在 ...

最新文章

  1. linux monitor模式,ubuntu14.04 安装linux-802.11n csitool Monitor模式
  2. Python可视化应用实战-三万字长文(建议收藏)matplotlib可视化实例,实操有效
  3. 线程池 ManualResetEvent
  4. HTTP菜鸟教程速查手册
  5. android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission
  6. 仿Linux中的cp操作
  7. python elasticsearch dsl_python 查询 elasticsearch 常用方法(Query DSL)
  8. 详细图解MySQL(win7x64 5.7.16版本)下载、安装、配置与使用
  9. Arduino教程六—DS1302时钟模块
  10. 浅谈P2P终结者原理及其突破
  11. 灵活好用,GIF 屏幕录制工具
  12. jQuery 之过滤选择器
  13. Floating-Point overflow and underflow
  14. 蓝牙3.0/4.0/5.0联系与区别
  15. 让linux识别html,8 款浏览器对 HTML5 支持评测
  16. Java SSM面试篇
  17. LC145 Binary Tree Postorder Traversal
  18. 104、二氧化碳气体灭火系统的灭火机理
  19. linux应用程序固件升级,升级软件包
  20. U盘损坏如何修复,三个方法任你选!

热门文章

  1. Tomcat+Servlet面试题都在这里(修订版)
  2. 基于arduino、ros手柄控制机械臂
  3. 单身程序狗解决了一个技术难题后,没有妹子可以炫耀,怎么办?
  4. gif图用photoshop快速抽帧,压缩,去底,修改时间
  5. 原来自动驾驶离不开OpenStack
  6. 动态规划专题(三)——数位DP
  7. HPD2368计算机上没有打印机,HPD2368打印机显示堵纸了,打印不了, – 手机爱问
  8. 2.4 放大电路静态工作点的稳定
  9. Spring Security (一) : 设置登录账号密码的三种方式
  10. angular 中如何实现多态与继承