自然语言处理(九)——数据平滑
一、概念
什么是数据平滑?我通过一个例子来解释一下。假设有如下语料库:
{
今天 天气 不错,
天气 晴朗,
晴朗 的 天气,
}
如果要计算句子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平滑方法的基本思想,平滑的方法有很多,这里就不再全部深究,上述的平滑方法也没有很精细的阐述,本文可能有错误之处,望各位同行看到的话不吝赐教,拜谢。
参考的书目有:宗成庆《统计自然语言处理》
自然语言处理(九)——数据平滑相关推荐
- 自然语言处理之数据平滑方法
在自然语言处理中,经常要计算单词序列(句子)出现的概率估计.但是,算法训练的时候,预料库中不可能包含所有可能出现的序列,因此为了防止对训练样本中为出现的新序列概率估计值为零,人们发明了不少可以改善估计 ...
- 自然语言处理基础(4)--数据平滑技术
n元语法模型中,在统计结果中出现了零概率事件反映语言的规律性,即这种现象本来就不该出现,但更多的时候是由于语言模型的训练文本T的规模以及其分布存在着一定的局限性和片面性.这就是所谓的"数据稀 ...
- oracle tns 代理配置_OGG实现Oracle到MySQL数据平滑迁移
技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移 - 爱可生开源社区opensource.actionsky.com 一.OGG概述 OGG全称为Oracle GoldenGate, ...
- 三维数据平滑处理_你该如何正确的处理思看科技三维扫描仪得到的数据?
其他行业至少在三维扫描领域没有说过,无论设备的精度有多高,被扫描产品的3D数据都会不可避免地引入数据误差,尤其是靠近锐利边缘和边界的测量数据.可能会导致点周围的曲面补丁偏离原始曲面,因此通常需要通过以 ...
- Java平滑处理什么意思_为何要进行数据平滑处理?
平滑处理,可使分类器的学习更加准确,我们会首先把label给.这一步很容易会被忽略,导致模型的结果总是达不到一定标准. 使用最有逼格的 log1p, 也就是 log(x+1),避免了复值的问题. PS ...
- 区别于传统低效标注,两种基于自然语言解释的数据增强方法
本文内容整理自 PaperWeekly 和 biendata 在 B 站组织的直播回顾,点击文末阅读原文即可跳转至 B 站收看本次分享完整视频录像,如需嘉宾课件,请在 PaperWeekly 公众号回 ...
- 今晚直播 | 清华大学NLP组秦禹嘉:基于自然语言解释的数据增强
「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...
- PW Live直播 | 清华大学NLP组秦禹嘉:基于自然语言解释的数据增强
「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...
- 怎么进行数据平滑滤波_气相色谱数据处理方法 EWG1990仪器学习网
2018/12/29 作者/EWG1990仪器学习网 本节涉及气相色谱仪的几种常用检测器(TCD.FID.ECD.FPD.NPD等)的数据采集和数据分析,这类信号不包含质谱.光谱类的辅助信息,其关键在 ...
最新文章
- linux monitor模式,ubuntu14.04 安装linux-802.11n csitool Monitor模式
- Python可视化应用实战-三万字长文(建议收藏)matplotlib可视化实例,实操有效
- 线程池 ManualResetEvent
- HTTP菜鸟教程速查手册
- android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission
- 仿Linux中的cp操作
- python elasticsearch dsl_python 查询 elasticsearch 常用方法(Query DSL)
- 详细图解MySQL(win7x64 5.7.16版本)下载、安装、配置与使用
- Arduino教程六—DS1302时钟模块
- 浅谈P2P终结者原理及其突破
- 灵活好用,GIF 屏幕录制工具
- jQuery 之过滤选择器
- Floating-Point overflow and underflow
- 蓝牙3.0/4.0/5.0联系与区别
- 让linux识别html,8 款浏览器对 HTML5 支持评测
- Java SSM面试篇
- LC145 Binary Tree Postorder Traversal
- 104、二氧化碳气体灭火系统的灭火机理
- linux应用程序固件升级,升级软件包
- U盘损坏如何修复,三个方法任你选!
热门文章
- Tomcat+Servlet面试题都在这里(修订版)
- 基于arduino、ros手柄控制机械臂
- 单身程序狗解决了一个技术难题后,没有妹子可以炫耀,怎么办?
- gif图用photoshop快速抽帧,压缩,去底,修改时间
- 原来自动驾驶离不开OpenStack
- 动态规划专题(三)——数位DP
- HPD2368计算机上没有打印机,HPD2368打印机显示堵纸了,打印不了, – 手机爱问
- 2.4 放大电路静态工作点的稳定
- Spring Security (一) : 设置登录账号密码的三种方式
- angular 中如何实现多态与继承