N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑
转载自时空霹雳
古德-图灵(Good-Turing)估计法是很多平滑技术的核心,于1953年有古德(I.J.Good)引用图灵(Turing)的方法而提出来的。其基本思想是:利用频率的类别信息来平滑频率。对于任何发生r次数的n元语法,都假设它发生了r*次。
其中,nr是训练语料中正好发生r次的N元组的个数。也就是说,发生r次的N元组的调整由发生r次的N元组与发生r+1次的N元组两个类别共同决定。统计数为r*次的N元组,其概率为:
我们注意到:
也就是说,N等于这个分布中最初的统计。那样,样本中所有事件的概率之和为
因此,可以这样说我们把你n1/N的概率剩量分配给未见事件。为了更好地理解古德-图灵(Good-Turing)估计法,以一个例子来讲解。
训练集合:T={<s>what is it what is small?}|T|=8
验证集合:V={what is it small ? <s> flying birds are a bird.}, |V|=12
在训练集合上,我们得到:p(<s>)=p(it)=p(small)=p(?)=0.125, p(what)=p(is)=0.25,其他为0
如果不经过平滑处理,则验证集上两句子的概率分别为:p(what is it?)=(0.25*2)*(0.125*2)≈0.001 p(it is flying.)=0.125*0.25*(0*2)=0
现在用古德-图灵算法进行平滑处理,如下:
首先计算,各发生r次N元组类别的数目,依次为 N(0)=6,N(1)=4,N(2)=2,N(i)=0 ,i>2:
其次,重新估计各概率值。
对于发生0次的事件概率:Pr(.)=p(flying)=p(birds)=p(are)=p(bird)=p(a)= (0+1)*N(0+1)/(8*N(0))=1*4/(8*6)≈0.083
对于发生1次的时间概率:Pr(it)=p(<s>)=p(small)=p(?)=(1+1)*N(1+1)/(8*N(1))=2*2 /(8*4)=0.125
对于发生两次的时间概率:Pr(what)=Pr(is)=(2+1)*N(2+1)/(8*N(2))=3*0/(8*2)=0: 保持原值0.25
归一化处理,6*P0+4*P1+2*P2=1.5。.
所以,归一化处理后,p’(it)=p’(<s>)=p’ (small)=p’(?)= 0.125/1.5 ≈0.08, p’(what)=p’(is)= 0.25/1.5 ≈0.17,
p’(.)=p’(birds)=p’(are)=p’(bird)=p’(a) = 0.083/1.5 ≈0.06
因此:p’(what is it?)=(0175*2)*(0.08*2)≈0.0002 p’(it is flying.) ≈ 0.08*0.17*(0.06*2)≈0.00004
http://www.taodudu.cc/news/show-1025129.html
相关文章:
- 知识图谱基础
- 知识图谱存储与搜索
- 词汇挖掘与实体识别(未完)
- 二、语言模型
- 三、自然语言分类
- nlp中的经典深度学习模型(一)
- nlp中的经典深度学习模型(二)
- nlp中的经典模型(三)
- 再看机器翻译
- 文本生成模型
- ⼤规模⽆监督预训练语⾔模型与应⽤(上)
- transformer bert GPT(未完)
- 再谈BERT
- mac下pip install 安装只能选择python2.7的问题
- pytorch自定义模型执行过程
- 知识图谱需要解决的问题
- pytorch中的squeeze和unsqueeze
- 图谱问答-理解query
- 图谱问答-句子向量模型部署项目总结(未完)
- 基于知识图谱的问答系统实践
- 理解transformer
- NLG模块实现(未完成)
- 什么是word2vector
- 第三课 SVM(2)
- 总和最大区间问题
- learning to rank评价指标
- Jelinek-Merer与Absolute discounting 平滑方法
- 三种平滑方法
- 从决策树到xgboost(一)
- 从决策树到xgboost(二)
N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑相关推荐
- memcpy(cv::Mat.data,unsigned char *,320x240),保存数据失真问题解决方法
1.memcpy(unsigned char *C,cv::Mat.data A,,320x240),首先A是图像完整的,通过copy到C中的时候,再copy到新的cv::Mat 图像的对象上时,图像 ...
- sqoop导入数据常见问题解决方法
sqoop导入数据常见问题解决方法 参考文章: (1)sqoop导入数据常见问题解决方法 (2)https://www.cnblogs.com/chaojibaidu/p/11071132.html ...
- React中使用useState数据异步问题解决方法
产生问题: 在React的函数组件中使用useState进行数据存储,导致数据异步,不能及时获取当前最新的数据. 原因: 这是因为React里事件分为合成事件和原生事件,合成事件和钩子函数都是异步的, ...
- 进原神显示服务器错误黑屏,《原神》数据异常怎么办 数据异常问题解决方法...
本次给大家带来的是原神中游戏数据异常报错的解决方法,今天很多玩家在游戏过程中遇到了这样的问题,碰到这样的情况应该怎么解决呢?这里给大家详细介绍,希望能帮助到各位有需要的玩家. 原神游戏数据异常怎么办 ...
- 数据不平衡问题解决方法——欠采样
对于二分类问题,正负样本比例为1:2.1:3.2:3都是可以接受的,但如果正负样本数量相差较大,比如1:10.1:13比例,则需要考虑进行重采样.数据量较大的情况下,使用欠采样方法较为合适. 本文使用 ...
- unity结合MMD发布android不显示模型不播放动画问题解决方法
今天在将MMD与unity结合,制作Easy AR的时候. 在PC端,模型可以正常显示,但是发布Android后,遇到了两个问题: MMD模型无法显示 MMD模型显示后,不能正常播放动作. 首先,我们 ...
- 不会做特征工程的 AI 研究员不是好数据科学家!上篇 - 连续数据的处理方法 本文作者:s5248 编辑:杨晓凡 2018-01-19 11:32 导语:即便现代机器学习模型已经很先进了,也别
不会做特征工程的 AI 研究员不是好数据科学家!上篇 - 连续数据的处理方法 雷锋网(公众号:雷锋网) AI 科技评论按:眨眼间我们就从人工特征.专家系统来到了自动特征.深度学习的人工智能新时代,众多 ...
- springMVC保存数据到mysql数据库中文乱码问题解决方法
springMVC保存数据到mysql数据库中文乱码问题解决方法 参考文章: (1)springMVC保存数据到mysql数据库中文乱码问题解决方法 (2)https://www.cnblogs.co ...
- php post 丢失,php post大量数据时发现数据丢失问题解决方法,post数据丢失_PHP教程...
php post大量数据时发现数据丢失问题解决方法,post数据丢失 解决办法: 在php.ini中将max_input_vars调大改为5000就可以了 原因追查: from的enctype=&qu ...
最新文章
- BIZTALK项目中WEB引用WEBSERVICES服务时候报错
- 比特币钱包(5) BIP44 账户表示形式
- 杭电1260java实现
- oracle虚拟机 centos6.5,虚拟机oracle virtualbox 上安装centos6.5 网络设置
- mysql 存储过程死循环_pl/sql存储过程loop死循环
- 《运营之光》《策略产品经理》《推荐系统实践》读书笔记随笔
- 直播丨抢鲜体验-openGauss入门
- 【声学基础】概述——吸收
- Python组合数据类型:序列sequence,列表list、元组tuple
- “我用 72 小时复刻了一个 ClubHouse”
- iss版本服务器读取_【IIS7服务器管理工具下载】IIS7服务器管理 v2.1.9 官方版-开心电玩...
- Storm实践2-【storm实时排序TopN】 - TOP10
- 解决方案-Visual Studio设置通用配置(包含路径+依赖库)
- 简单!Python+OpenCV三步去除水印
- sikuli实现百度云批量离线下载
- java 月份缩写_实训汇编语言设计——输入1-12 ,显示月份缩写
- cad面积计算机,用cad计算多个面积的方法步骤
- 【绿盟】检测到目标Strict-Transport-Security响应头缺失
- 2020年起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)考试技巧
- PVI(pvifa计算公式)