自然语言处理(八)——语言模型性能评价
一、概念
信息熵:熵这个概念是香农从热力学中引进的,热力学中的熵是代表分子状态混乱程度,在信息论中熵又称为自信息,可以视为描述一个随机变量的不确定性的数量。它表示信源X每发一个符号(不论发什么符号)所提供的平均信息量。一个随机变量的熵越大,它的不确定性越大,那么,正确估计其值的可能性就越小。越不确定的随机变量越需要大的信息量用以确定其值。
这是宗成庆老师的书《统计自然语言处理》里面的解释,光看这些高深莫测的话,我反正是一知半解,举一个例子来解释一下
明天的太阳仍然升起,这个事件发生的概率极其大,因此这件事的不确定性就很小,所以这件事所对应的熵很小,这件事的判断根本不需要其他信息,我们不需要看SCI论文,不需要查阅太阳的资料。所以熵越小,不确定性越小,我们所需要的信息就少。再比如明天下雨这个事件,这个的不确定性就比较大,气象站就需要通过观测云量,温度等信息来确定这个事件发生的概率。显而易见,这个事件的熵就会变大。以上就是关于熵的阐述,那么熵的大小到底怎么计算,自然也有公式:
H(x) =—() 。以下的例子是宗成庆老师书上的例子,也比较容易看懂,这里就不再细细道来。只是最后的编码,原则就是出现概率大的可以少用几位数,出现概率小的,多用几位数,这样就可以保证最终用的编码长度最短。
联合熵和条件熵:同熵类似,联合熵的计算方法和熵的计算方法思想相同,不同的知识联合熵多了一个随机变量。公式如下:
X,Y是两个离散型随机变量X,Y~P(x)。那么X,Y的联合熵H(X,Y) = 。
条件熵H(Y | X) = 。
最后,联合熵可以通过条件熵推导出,具体过程就不细细道来,直接上公式,联合熵的计算第二个公式:
H(X,Y) = H(X) + H(Y | X)
将上述公式推广到一般情况如下图:
相对熵:这个概念是用来衡量两个概率分布之间的差异。p(x)是理想的模型,q(x)是用来逼近的,相对熵越接近0越好。计算如下:
设 p(x)、q(x) 是 离散随机变量 X中取值的两个概率分布,则 p 和 q 的相对熵是:
交叉熵:交叉熵越小,语言模型越好。首先,交叉熵的理想计算公式为
H(X,q) =
近似逼近后:
困惑度:困惑度这个指标顾名思义,困惑度越小,说明这个语言模型越好,计算方法是:
最后,本片文章并没有举出具体的概率分布来求各个指标,只是罗列总结一下各指标的计算方法和所代表的意义。具体例子下一篇再进行计算。
参考的书目:《统计自然语言处理》宗成庆
自然语言处理(八)——语言模型性能评价相关推荐
- 自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)
分类目录:<自然语言处理从入门到应用>总目录 语言模型(Language Model,LM)(也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的自然语言处理任务.利用语 ...
- 自然语言处理之语言模型与词向量
自然语言处理之语言模型与词向量原理 语言模型 基于语法的语言模型 在研究机器如何"理解"自然语言之前,不妨先看看人们是怎么理解自己的语言的.根据语言学(Linguistics) ...
- 【LM】(八)语言模型评价指标——困惑度Perplexity原理及代码
0.语言模型 语言模型(Language Model,LM),基于统计的语言模型,给出一句话的前k个词,预测第k+1个词,即求第k+1个词出现的概率p(xk+1|x1,x2,...,xk).在深度网络 ...
- 自然语言处理(NLP)-语言模型【用来判断一句话语法上是否通顺】:N-gram语言模型(基于语料库的统计结果)--> N-gram神经网络语言模型 【语言模型的评估(①:PPL困惑度;②:BPC)】
统计语言模型实际上是一个概率模型,所以常见的概率模型都可以用于求解这些参数 常见的概率模型有:N-gram 模型.决策树.最大熵模型.隐马尔可夫模型.条件随机场.神经网络等 目前常用于语言模型的是 N ...
- 【自然语言处理】自然语言处理(NLP)知识结构总结
感谢原创博主,转自:https://blog.csdn.net/meihao5/article/details/79592667 自然语言处理知识太庞大了,网上也都是一些零零散散的知识,比如单独讲某些 ...
- 如何学习自然语言处理:一本书和一门课
关于"如何学习自然语言处理",有很多同学通过不同的途径留过言,这方面虽然很早之前写过几篇小文章:<如何学习自然语言处理>和<几本自然语言处理入门书>,但是更 ...
- 自然语言处理基本问题
自然语言处理知识太庞大了,网上也都是一些零零散散的知识,比如单独讲某些模型,也没有来龙去脉,学习起来较为困难,于是我自己总结了一份知识体系结构,不足之处,欢迎指正.内容来源主要参考黄志洪老师的自然语言 ...
- python自然语言处理路线图_python自然语言处理(一)
自言语言处理基础知识 参考:https://blog.csdn.net/meihao5/article/details/79592667 英文资料: http://github.com/lovesof ...
- 《统计自然语言处理》知识结构总结
一.自然语言处理概述 1)自然语言处理:利用计算机为工具,对书面实行或者口头形式进行各种各样的处理和加工的技术,是研究人与人交际中以及人与计算机交际中的演员问题的一门学科,是人工智能的主要内容. 2) ...
- 自然语言处理训练营NLP--笔记
一.分词 1.1 规则分词 目的:按照最大匹配法(最长字数)分词 参考网址:https://blog.csdn.net/weixin_44735126/article/details/10094182 ...
最新文章
- 解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法
- Mybatis 使用的 9 种设计模式,真是太有用了~
- 追加内容到文件末尾的几种常用方法
- 玩转python(2)多线程的历史2
- 【LeetCode】【HOT】31. 下一个排列
- 微软发布 PowerToys 0.12.0,带来批量处理工具和暗黑模式
- python 计算机程序设计-计算机程序设计(Python)
- centos7 禁止ip访问_centos7下使用iptables屏蔽所有中国IP
- 海量数据处理 算法总结
- 软件工程——数据字典
- 计算机用户里的AppData,AppData是什么意思,Appdata文件夹可以删除吗?
- Mac outlook设置自动回复
- 微型计算机能直接识别并执行的语言,微处理器能直接识别并执行的命令语言称为...
- wordpress插件_您应该知道的2018年10个高级WordPress插件
- macbook卡在进度条开不了机_苹果电脑开机一直停留在加载进度条当中是怎么回事...
- 常用MIME类型(Mp4的mime类型设置)
- 如何把产品打造成有生命的品牌
- MTK平台开机初始化时 camera驱动流程|MTK camera调试常见几十种问题处理方法
- Localizing oscillatory sources using beamformer techniques:part 1
- 13/6/21 Hella Intern Interview