1.先解释何为CFG及PCFG:

一个栗子:

2.CKY算法(或称CYK算法)

“在计算机科学领域,CYK算法(也称为Cocke–Younger–Kasami算法)是一种用来对 上下文无关文法(CFG,Context Free Grammar)进行语法分析(parsing)的算法。该算法最早由John Cocke, Daniel Younger and Tadao Kasami分别独立提出,其中John Cocke还是1987年度的图灵奖得主。CYK算法是基于动态规划思想设计的一种自底向上语法分析算法。”

CYK算法可以在O(n3)的时间内得出结果。

CKY算法:

CYK处理的CFG必须是CNF形式的。所以算法首先要把非CNF形式的CFG转化到(弱等价)CNF形式。CYK是一种自底向上的算法。

乔姆斯基范式:

乔姆斯基范式:CNF

或者,ABC都为非终结符,为终结符。

那个这个CFG就是采用CNF形式的,可见CNF语法都是二分叉的。任何语法都可以转化成一个弱等价的CNF形式,具体方法如下:(之后会有拓展版的,不只二元了,还有空的与一元的。)

方法:

 CKY算法用于PCFG下的句法分析

实现句子fish people fish tanks的句法树分析,实现最可能的统计句法树。

基于概率的上下文无关语法(PCFG) 是一个五元组, 其定义为(T,  N,S,R,P). 可以看到, 这基本上与 CFG 类似, 只是多出来一个元素 p, 表示在语料中规则出现的概率. 使用p 可以定义一棵语法树出现的概率为树中所有规则出现概率之积. 这样, 当一个句子在可选的范围内有多棵可能的语法树时, 我们选择先验概率大的那棵树, 这样能最大程度避免解析错误。其中,

N代表非终结符集合

T代表终结符集合

S代表初始非终结符

R代表产生规则集

P 代表每个产生规则的统计概率

栗子:

拓展版:加入了一元。

CKY:

动态规划:

具体算法(类似填表的方法):

贴一个:

维基百科的CYK算法用于CFG。

https://en.wikipedia.org/wiki/CYK_algorithm#/media/File:CYK_algorithm_animation_showing_every_step_of_a_sentence_parsing.gif

第一部分:

下载stanford-parser-full-2018-10-17.zip

解压:打开eclipse创建一个项目,导入在build path中引入stanford-parser-3.9.2-models.jar,stanford-parser.jar, slf4j-api.jar等相关库.

调参:

主要代码:

结果:

句法树:

GUI界面:

相关教程连接:

http://www.cnblogs.com/Denise-hzf/p/6612574.html

第二部分:

Python3.5,pycharm.

动态规划PCFG+CKY程序:

链接:

http://f.dataguru.cn/thread-693052-1-1.html

PCFG 的训练

  对于 PCFG 中的 CFG 部分, 一般是由领域相关的专家给出的, 例如英语专家规定英语的 CFG. 而PCFG 中的 p 是从语料中统计而来. 运用最大似然估计, 可以有: P(X -> Y) = count(X->Y)/count(X)

注意到, 规则中包括终端词与非终端词两种元素. 在一个适当规模的语料中, 我们可以认为所有的非终端词都会出现, 但是认为所有的终端词都会出现却是不现实的(想一下我们常听到的那个美国农民日常使用的英语单词只有数千个, 而所有的英语单词却有数万个的情况). 当语料中没有出现, 而在我们的测试样本中却出现了少见的单词时, PCFG 会对所有的语法树都给出概率为0的估计, 这对 PCFG 的模型是一个致命的问题.通常的补救措施是, 对语料中所有单词出现次数进行统计, 然后将出现频率少于 t 的所有单词都换成同一个 symbol. 在进行测试时, 先查找测试句子中的所有单词是否在句子中出现, 若没有出现, 则使用 symbol 代替. 通过这种方法, 可以避免 PCFG 模型给出概率为0 的估计, 同时也不会损失太多的信息.

自然语言处理(NLP)-统计句法分析(CKY算法用于PCFG下的句法分析)相关推荐

  1. NLP:自然语言处理技术领域的代表性算法概述(技术迭代路线图/发展时间路线)、四大技术范式变迁概述(统计时代→大模型时代)、四个时代的技术方法论探究(少数公司可承担的训练成本原因)之详细攻略

    NLP:自然语言处理技术领域的代表性算法概述(技术迭代路线图/发展时间路线).四大技术范式变迁概述(统计时代→大模型时代).四个时代的技术方法论探究(少数公司可承担的训练成本原因)之详细攻略 目录 一 ...

  2. Interview之NLP:人工智能领域求职岗位—自然语言处理NLP算法工程师职位的简介、薪资介绍、知识结构之详细攻略

    Interview之NLP:人工智能领域求职岗位-自然语言处理NLP算法工程师职位的简介.薪资介绍.知识结构之详细攻略 目录 自然语言处理NLP算法工程师的职位简介 1.资讯指数 2.各大公司的具体职 ...

  3. 2021年自然语言处理(NLP)算法学习路线!

    NLP近几年非常火,且发展特别快.像BERT.GPT-3.图神经网络.知识图谱等技术应运而生.我们正处在信息爆炸的时代.面对每天铺天盖地的网络资源和论文.很多时候我们面临的问题并不是缺资源,而是找准资 ...

  4. 自然语言处理NLP——GSDMM用于短文本聚类

    目录 系列文章目录 一.论文与算法介绍 1.论文背景与简介 2.电影分组过程模拟GSDMM聚类 3.算法模型与流程 4.论文结果与分析 二.GSDMM模型复现(MGP过程) 1.核心思想 2.实现过程 ...

  5. 自然语言处理NLP(8)——句法分析b:完全句法分析

    在上一部分中,我们简单介绍了完全句法分析的概念,并详细介绍了句法分析的基础:Chomsky形式文法(自然语言处理NLP(7)--句法分析a:Chomsky(乔姆斯基)形式文法). 在这一部分中,我们将 ...

  6. 自然语言处理NLP算法总结(持续更新)

    2019独角兽企业重金招聘Python工程师标准>>> 分词 最大匹配法(机械分词) n-gram 参考 hmm 参考 crf 词性标注 crf 命名实体识别NER CRF biLS ...

  7. 自然语言处理NLP星空智能对话机器人系列:第21章:基于Bayesian Theory的MRC文本理解基础经典模型算法详解

    自然语言处理NLP星空智能对话机器人系列: 第21章:基于Bayesian Theory的MRC文本理解基础经典模型算法详解 1,Bayesian prior在模型训练时候对Weight控制.训练速度 ...

  8. 自然语言处理NLP中文分词,词性标注,关键词提取和文本摘要

    NLP相关工具包的介绍 1.1 jieba "结巴"中文分词,理念是做最好的 Python 中文分词组件. 支持三种分词模式: (1)精确模式,试图将句子最精确地切开,适合文本分析 ...

  9. 人工智能自然语言处理NLP入门教程

    导读:自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域. 语言是人类区别其他动物的本质特性.在所有生物中,只有人类才具有语言能力.人类的多种智能都与 ...

最新文章

  1. Mysqli的批量CRUD数据
  2. python语法基础题输出倒三角图案,【趣味shellamp;amp;python】倒三角控制台输出图形...
  3. windows窗体继承问题
  4. 《系统集成项目管理工程师》必背100个知识点-82风险的特性
  5. PHP大文件分片上传
  6. numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy
  7. POJ 2485 Highways(最小生成树 Prim)
  8. jquery:使用 SoundManager 2 创建简单的网页音频播放器
  9. javascript 事件冒泡和事件代理
  10. uploadify 上传时丢失session
  11. 整理学习之深度可分离卷积
  12. linux启动exe程序命令行参数,Linux可执行文件的启动及命令行参数和环境变量的传递...
  13. 苹果Macbook电脑无法进入系统
  14. windows笔记本触摸板的快捷键教程
  15. 让QQ群昵称色变的神奇代码
  16. 域名实名认证多长时间_域名的实名认证需要多少时间
  17. 厦大计算机学院2018夏令营6,厦门大学信息学院(国家示范性软件学院)2020暑期夏令营报名指南(6月30日申请截止)...
  18. wifi大师分销多开v3.1.5安装教程附带源码
  19. 京东 ChubaoFS 分布式文件系统分析
  20. 第一部份1:JMF基础原理与相关术语介绍 。。。。快速了解JMF有什么相关内容

热门文章

  1. 关于步进电机励相数、拍数、励磁方式、编码
  2. 今天我们来聊聊,如何做好第三方系统对接
  3. 仿微信翻译----本地短信翻译。
  4. RatingDapp 数据周报 (2019/3/24 ~ 3/30)
  5. QGIS编译---QGIS2.14.16 + Qt4.8.6 + VS2010 ---32位版本
  6. 除夕跨年烟花特效[原创]
  7. 全球最值得模仿的230个网站
  8. python打印九九乘法表到文件_99乘法表打印_python怎么打印九九乘法表
  9. Unity设置字体颜色渐变
  10. docker+robot framework+selenium并发web应用UI自动化测试实践