哥伦比亚大学 NLP 第三章(第二部分)

目录

  • 概率上下文无关
  • CKYCKYCKY 算法

本部分关于上下文无关相关符号的约定均基于第一部分,本部分将继续沿用不再定义
第三章第一部分传送门:https://blog.csdn.net/scanf_yourname/article/details/86777756

概率上下文无关文法(PCFGs)(PCFGs)(PCFGs)

为什么引入概率上下文无关文法?

  • 我们之前讲过与上下文无关文法,它的问题是会因为生成的分析树结构不同,也就是句式结构的不同引起歧义。
  • 我们现在考虑一种方法解决这个问题,就是概率与上下文无关文法。在现实生活中,我们在面对一个歧义句的时候能够分辨那个是正确的语意,在很多情况下是因为有的句式结构下产生的句子是不符合逻辑的。所以,概率与上下文无关文法的目的就是为每一种可行的句式加上一个概率以判断什么是合理的句式结构。

定义概率上下文无关文法

  • 概率上下文无关文法继承了上下文无关文法的四元组,在此基础之上PCFGPCFGPCFG为RRR中的每一个映射关系定义一个条件概率q(βj∣αi)q(\beta_{j}|\alpha_{i})q(βj​∣αi​),其中αiϵV\alpha_{i}\epsilon Vαi​ϵV,βjϵ∑\beta_{j}\epsilon \sumβj​ϵ∑,αi→βjϵR\alpha_{i}\rightarrow\beta_{j}\epsilon Rαi​→βj​ϵR。
    意味映射关系αi→βj\alpha_{i}\rightarrow\beta_{j}αi​→βj​出现的概率为q(βj∣αi)q(\beta_{j}|\alpha_{i})q(βj​∣αi​)
    规定:∑j=0maxq(βj∣αi)=1\sum_{j=0}^{max} q(\beta_{j}|\alpha_{i})=1∑j=0max​q(βj​∣αi​)=1
  • 由于之前规定的左侧优先原则,我们便可根据上面的条件概率计算出每一种结构对应的概率,从而估计最可能结构。
    假设ttt是一种可能存在的分析树结构,根据左侧优先原则,那么它的每一步映射都是确定的:
    α1→β1\alpha_{1}\rightarrow\beta_{1}α1​→β1​,α1→β1......\alpha_{1}\rightarrow\beta_{1}......α1​→β1​......αn→βn\alpha_{n}\rightarrow\beta_{n}αn​→βn​
    则这颗分析树对应的概率P(t)=∏i=1nq(βi∣αi)P(t)=\prod_{i=1}^{n}q(\beta_{i}|\alpha_{i})P(t)=∏i=1n​q(βi​∣αi​)
    假设我们要列举所以可能的分析树比较他们的概率,这个所有生成树构成的集合是τ(s)\tau(s)τ(s),Tϵτ(s)T\epsilon\tau(s)Tϵτ(s)
    最终我们要求的就是所有可能分析树概率最大者:
    argmaxtϵτ(s)p(t)arg max_{t\epsilon \tau(s) p(t)}argmaxtϵτ(s)p(t)​

    上图给出了求解右侧分析树概率的方法,按照树的先序遍历首先是S→VPS\rightarrow VPS→VP,再依次是VP→VerbVP\rightarrow VerbVP→Verb,Verb→Book.....Verb\rightarrow Book.....Verb→Book.....,Noun→fightNoun\rightarrow fightNoun→fight。我们就按照这个顺序将所有的概率乘到一起得到最后的概率。

如何通过数据学习一个PCFGPCFGPCFG模型

  • 数据来源:TreebankTreebankTreebank,分析树的数据,数据规模是500005000050000,数据是手工标记的分析树。400004000040000数据作为训练集,240024002400作为测试集,其他可能做交叉验证集了。
  • 确定集合RRR: RRR是所有训练集数据中涉及到的映射(α→β)(\alpha \rightarrow \beta )(α→β)的集合。
  • 确定q(β∣α):q(\beta|\alpha):q(β∣α):这里采用似然估计用样本概率估计总体概率,公式如下:
    qML(β∣α)=Count(α→β)Count(α)q_{ML}(\beta|\alpha)=\frac{Count(\alpha \rightarrow \beta )}{Count(\alpha )}qML​(β∣α)=Count(α)Count(α→β)​

CKYCKYCKY 算法

CKYCKYCKY 算法是做什么的?

  • 我们之前只是定义了一个分析树的概率大小,但是分析树的构建实际上是多种多样的,但是我们自然希望能够找到概率最大的那颗分析树,我们可以通过CKYCKYCKY算法实现这一目的。

CKYCKYCKY 算法的思想

  • CKYCKYCKY是一个动态规划的算法,最终目标是求解maxtϵτ(s)p(t)max_{t\epsilon \tau(s)}p(t)maxtϵτ(s)​p(t)
  • 首先是定义一些符号:
    n=n=n=句子中单词的个数
    ωi=\omega_{i}=ωi​=句子中的第iii个单词
    V=V=V=句中非终结符的集合
    S=S=S=句子/分析树的开始符
    π[i,j,X]\pi[i,j,X]π[i,j,X]这是一个动态规划表,这个表中记录的是从单词ωi\omega_{i}ωi​到单词ωj\omega_{j}ωj​之间包含非终结符XXX的概率最大值,其中iϵ[1,n],jϵ[1,n],i≤ji\epsilon[1,n],j\epsilon[1,n],i\leq jiϵ[1,n],jϵ[1,n],i≤j且Xϵ[ωi,ωj],XϵVX\epsilon[\omega_{i},\omega_{j}],X\epsilon VXϵ[ωi​,ωj​],XϵV
    比如:π(2,5,NP)\pi(2,5,NP)π(2,5,NP)代表的意思就是从第二个单词到第五个单词间包含非终结符NPNPNP的最大概率。
    所有有了上述定义我们就把问题归结为求解π(1,n,S)\pi(1,n,S)π(1,n,S)
  • 初始条件:
    π(i,i,X)=q(X→ωi)\pi(i,i,X)=q(X\rightarrow \omega_{i})π(i,i,X)=q(X→ωi​) 其中(iϵ[i,n],XϵN)(i\epsilon[i,n],X\epsilon N)(iϵ[i,n],XϵN)
    如果没有存在从XXX直接或间接生成ωi\omega_{i}ωi​的文法那么q(X→ωi)=0q(X\rightarrow \omega_{i})=0q(X→ωi​)=0
  • 状态转移方程:
    π(i,j,X)=maxX→YZϵR,sϵ[i...(j−1)](q(X→YZ)∗π(i,s,Y)∗π(s+1,j,Z))\pi(i,j,X)=max_{X\rightarrow Y Z \epsilon R,s\epsilon[i...(j-1)]}(q(X\rightarrow YZ)*\pi(i,s,Y)*\pi(s+1,j,Z))π(i,j,X)=maxX→YZϵR,sϵ[i...(j−1)]​(q(X→YZ)∗π(i,s,Y)∗π(s+1,j,Z))
    这个区间dpdpdp感觉那状态转移方程描述好苍白啊,我觉得特别像最短路的迪杰斯特拉算法,同样是跑三层的循环,其中两层负责控制区间的两个端点i,ji,ji,j,第三层负责在区间中间扫一遍,看看加入XXX这个非终结符后,是否存在一个新的解析方法概率更大。

    上图是课件中的一个例子,我们现在要计算π(3,8,VP)\pi(3,8,VP)π(3,8,VP),如右侧所示VPVPVP具有两种映射方式,我们依次对每一种映射方式重复下面的过程:对于一种映射关系,我们用变量sss遍历端点i,ji,ji,j的每一种情况,如上图的前三行所示,实际上一共涉及五种情况。这样这两种映射关系实际上就一共有十种情况。这十种情况都是能够计算出一个具体的概率值的,而π(3,8,VP)\pi(3,8,VP)π(3,8,VP)取他们中最大值

CKYCKYCKY算法的具体实现

  • 输入:一个句子s=x1...xns=x_{1}...x_{n}s=x1​...xn​和一个概率上下文无关模型(包括那五元组)
  • 初始化:
    π(i,i,X)=q(X→ωi)\pi(i,i,X)=q(X\rightarrow \omega_{i})π(i,i,X)=q(X→ωi​) ififif X→ωiϵRX\rightarrow \omega_{i}\epsilon RX→ωi​ϵR
    π(i,i,X)=0\pi(i,i,X)=0π(i,i,X)=0 otherwiseotherwiseotherwise
  • 算法实现过程

    循环的最外层是区间的长度由111到n−1n-1n−1,在长度确定的条件下不断更改区间的端点并通过状态转移方程更新π\piπ的值。这里需要注意的是在更新π\piπ值的同时不要忘了更新它对应的分析树,因为最后我们要得到的不是最大值,而是其对用的分析树结构。

哥伦比亚大学 NLP 第三章(第二部分)相关推荐

  1. 新视野大学英语第三版第二册视听说答案

    新视野大学英语第三版第二册视听说答案 Unit 1 Sharing Listening Viewing Unit test Unit 2 Sharing Viewing Presenting Unit ...

  2. 新视野大学英语第三版第二册视听说

    新视野大学英语第三版第二册视听说答案 新视野大学英语第三版第二册视听说答案 Unit 1 Sharing Listening Viewing Unit test Unit 2 Sharing View ...

  3. 【数据聚类】第三章第二节2:K-Means算法及其Python实现(算法实现、结果展示)

    pdf下载(密码:7281) 本文上接:[数据聚类]第三章第二节1:K-Means算法及其Python实现(距离度量方式.目标函数和算法流程) 本文下接:[数据聚类]第三章第二节3:K-Means算法 ...

  4. 计算机第三章ppt课件ppt,计算机操作系统(大学课程)第三章幻灯片课件.ppt

    计算机操作系统(大学课程)第三章幻灯片课件.ppt 2.成组调度 应用程序A 应用程序B Cpu1 线程1 线程1 Cpu2 线程2 空闲 Cpu3 线程3 空闲 Cpu4 线程4 空闲 时间 1/2 ...

  5. 大学物理第三章笔记——高等农林院校基础课程教程系列

    第三章 热物理学 文章目录 第三章 热物理学 第一节 热力学第一定律 (一)热力学系统与外界 (二)状态参量与平衡态 (三)准静态过程与非准静态过程 (四)热力学第一定律 第二节 热力学第一定律的应用 ...

  6. 慕课乐学python单元测试答案_中国大学慕课第三章单元测试答案_乐学软件工程免费答案...

    佩戴铂金的好处有哪些 人教版八年级下册思想品德全品学练考第七课第1课时财产属于谁答案 白金项链变黑了怎么办,如何清洗 白金的种类有哪些 天津少儿医保如何结算报销? 铂金和白金哪个贵,需注意什么 黄金项 ...

  7. 2021年美国最佳学府排行榜:普林斯顿大学、哈佛大学、哥伦比亚大学列前三

    全球教育排名权威机构<美国新闻与世界报道>(U.S. News & World Report)发布了2021年最佳学府排行榜. 2021年<美国新闻与世界报道>最佳学府 ...

  8. 高红梅:第三章 第二节 身份焦虑与英雄梦

    第二节 身份焦虑与英雄梦 海明威一生都在世界各地旅行,其足迹遍及欧洲.非洲.美洲和亚洲,有世界公民的美誉.正如学者卡洛斯·贝克(Baker ,Carlos)所言,"早在他五十五岁荣获诺贝尔文 ...

  9. Effective Modern C++ 第三章第二节,C++新特性

    Chapter 3-2: Moving to Modern C++ Item 11: Prefer deleted functions to private undefined ones C++中,有 ...

最新文章

  1. python相同程序执行结果不同_原理相同只是精简了的python代码,运行结果不同是为什么...
  2. sql分类及基本sql操作,校对规则(mysql学习笔记二)
  3. OpenCV gapi模块绘制的实例(附完整代码)
  4. python前端接口_Python接口自动化——Web接口
  5. SAP UIVeri5 跳过检查 Google Chrome driver 版本检查的方法
  6. Python基础语法学习整理
  7. python——asyncio模块实现协程、异步编程(一)
  8. quagga源码分析--大内总管zebra
  9. mfc在调整界面时左边的控件会丢失_Qt项目中如何完成一个漂亮的界面
  10. Asp.net中Global.asax
  11. Atitit springcloud的艺术 attilax总结 目录 1.1. 服务治理:Spring Cloud Eureka 39 注册中心 1 1.2. 第4章 客户端负载均衡:Spring
  12. python for spss statistics_IBM SPSS Statistics 与用户自定义 Python 模块的集成及分析
  13. 使用hping3进行DoS攻击
  14. mysql 格林时间转换_oracle中将格林威治时间转化为一般时间
  15. 钢七连实战教学  老师和学生的差别
  16. 3.4.1 在物理层扩展以太网
  17. 笔记本电脑如何玩游戏不卡顿,提升自己的笔记本性能!开启高性能模式的方法
  18. CSS基础:浅谈position
  19. 2018年下半年教师资格证报考攻略
  20. 超详细的JavaFX项目的创建、构建、打包教程

热门文章

  1. Android视频编辑SDK免费版,Android视频编辑SDK
  2. iOS--常见的几种数据存储方式
  3. 工程训练大赛物流小车_宁大机械学子在工程训练省赛中斩获佳绩,取得历史性突破...
  4. 佛心禅语净灵台-转载
  5. 淘宝滑块的解决方法和api接口
  6. 有位程序员写了部「修仙小说版」编程教程!网友:蚌埠住了 ....
  7. B站马士兵python入门基础版详细笔记(4)
  8. azdb文件怎么打开_az mysql db
  9. 最新界面很漂亮的在线工具箱,包含站长工具箱等等功能
  10. MATLAB中关于patch的用法(涉及vertice,faces等的基础的介绍)