原文链接:

PCFG中inside和outside算法详解 - WeiYang Blog

inside-outside算法是用来预测一棵句法分析树的概率的算法,算法建立在文法是乔姆斯基范式(CFG)的基础之上,CFG的定义见维基百科。一棵句法分析树的potential定义为它包含的产生式的potential乘积,在PCFG中表示概率,在CRF-CFG中表示特征集合的分数。

inside-outside算法需要定义两个变量:

  • 定义为内部的potential之和,即以 为根结点,短语为 的所有可能的子树的potential之和。
  • 定义为外部的potential之和,即以 为根结点,短语为 的所有可能的子结构的potential之和。

给定文法CFG,输入字符串 ,计算inside和outside值。

inside

初始化:
如果 ,那么 。否则就等于0。
其中 为potential值。

类似于CKY算法,自底向上计算inside值:

outside

初始化:
,其余都等于0。

outside值要分为两部分计算:

第一部分是 ,如上图所示。

第二部分是 ,如上图所示。

和inside相反,通过自顶向下计算outside值:

应用

所有可能的句法树potential之和为:

包含产生式 的所有可能句法树potential之和是:

存在非终结符 ,且短语是 的所有可能句法树potential之和是:

PCFG参数估计

参数估计的目的就是为了估计出PCFG的概率 ,使得所有句子的概率之和最大,采用的是EM迭代法。
首先定义:

这里 是随机初始化的,满足归一化条件就行。
对于语料库的每一条句子,可以计算出:

然后算出期望,更新概率,迭代就行了。

CRF-CFG参数估计

首先定义:

其中 为特征函数。
那么我们的目的就是训练特征参数
然后定义似然函数为

求偏导为

这里可能有人看不懂,似然函数和偏导是怎么来的呢?下面我详细写一下过程。

似然函数:

所以偏导为:

所以偏导就是这么来的。

PCFG中inside和outside算法详解相关推荐

  1. 聚类 python_python中实现k-means聚类算法详解

    算法优缺点: 优点:容易实现 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢 使用数据类型:数值型数据 算法思想 k-means算法实际上就是通过计算不同样本间的距离来判断他们的相近关系的,相近 ...

  2. 机器学习、深度学习中常用的优化算法详解——梯度下降法、牛顿法、共轭梯度法

    一.梯度下降法 1.总述: 在机器学习中,基于基本的梯度下降法发展了三种梯度下降方法,分别为随机梯度下降法,批量梯度下降法以及小批量梯度下降法. (1)批量梯度下降法(Batch Gradient D ...

  3. OpenCV中直方图反向投影算法详解与实现

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自:opencv学堂 一:直方图交叉 OpenCV中直方图反向 ...

  4. C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法

    选择法排序 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序.从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最 ...

  5. 深度学习中的Adam优化算法详解

    Adam论文:https://arxiv.org/pdf/1412.6980.pdf (一).什么是Adam算法? Adam(Adaptive momentum)是一种自适应动量的随机优化方法(A m ...

  6. 最小生成树-Prim算法详解(含全部代码)

    目录 适用条件 测试所用图 算法详解 Prim算法代码 全部代码 实验结果 适用条件 加权连通图 测试所用图 所用原图及生成过程 其中,(a) 为原图,圆圈里面是节点的名称,边上的数字是边的权值.由实 ...

  7. C++中的STL算法详解

    1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...

  8. java break 在if 中使用_java中使用国密SM4算法详解

    前言 上次总结了一下加密算法的分类(加密算法有集中形式,各有什么不同?),现在我们用java语言实现一下SM4:无线局域网标准的分组数据算法.对称加密,密钥长度和分组长度均为128位. ps:我们既可 ...

  9. 多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解

    多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解 1. 概览 在开始具体讨论卡尔曼滤波和匈牙利算法之前,首先我们来看一下基于检测的目标跟踪算法的大 ...

  10. 9. PKI - 三种密钥交换算法详解(RSA DHE ECDHE)及他们在SSL/TLS协议中的应用

    9. PKI - 三种密钥交换算法详解(RSA& DHE& ECDHE)及他们在SSL/TLS协议中的应用 RSA密钥交换算法 DHE密钥交换算法 ECDHE密钥交换算法 参考 密钥交 ...

最新文章

  1. erlang的tcp服务器模板
  2. 使用axis开发web service服务端
  3. java面向对象认定的特征_Java面向对象的三大特征(一)
  4. gtk移植到嵌入式_物联网时代的盛行,应届毕业生是学嵌入式好呢,还是安卓或ios呢?...
  5. Android事件分发溯源详解
  6. sql 中CURSOR 的使用
  7. VS调试异常代码 HRESULT:0x80070057 (E_INVALIDARG)解决方法
  8. Atitit 数据类型体系图 目录 1. 系统常用的数据类型 1 2. H5 form表单新数据类型 2 2.1. TML5 新的 Input 类型 2 2.2. HTML5 的新的表单元素: 2
  9. 微信小程序地图实现展示路线路
  10. vue3-antd-admin开源学习-后台管理框架
  11. html 倒计时弹出框,javascript实现倒计时提示框
  12. BOS启动的客户端,打开序时簿只显示一行
  13. 新浪再传将被转手 盛大卖股TOM集团接盘?
  14. 2021美赛C题解题记录(内含完整代码)
  15. django前戏准备
  16. 数据库系统原理与应用教程(081)—— MySQL 视图(View)的创建与使用
  17. 【Python爬虫】淘宝商品比价定向爬虫
  18. 扩展坞可以把手机投到显示器吗_华为P20投屏助手,绿联USB-C扩展坞使用说明
  19. OSChina 周二乱弹 —— 我的手机指纹解锁和别人不一样
  20. Incapsula的全球网络地图

热门文章

  1. Swift 06.Closures
  2. NSString的形式--可变字符串--查方法
  3. 写在2012的最后一天
  4. Java内部类(转)
  5. 【转载】HBase实践 | 使用Spark分析云HBase的数据
  6. 【求助】C# Charting控件 画散点图,当所有的点X=0时,X轴的位置画错了,代码如下...
  7. 关于Android Studio使用高德地图地位
  8. 将输入的字符串进行大写格式化
  9. [老文章搬家] 插件化软件设计的头疼问题以及可能的解决思路
  10. 第二届360杯全国大学生信息安全技术大赛_几道小题解析