CFG与PCFGs算法详解
文章目录
前言
原先的笔记记在了one-note上,所以就用图片的形式分享吧,见谅.
本文基于学长发的Michael Collins关于PCFG的slides,做一个总结(翻译)。主要介绍了CFG的概念与问题,具体介绍了PCFG的概念、训练过程(不实)和解码过程(CKY算法)。inside算法一笔带过,因为它与CKY算法大抵一致,而关于inside的一些思考补充在了"补充二中"。
后续的博文将会继续介绍inside-outside algorithm以及它在diora模型中的应用。特别是inside-outside,发现百度上只有一家之言,关键我自己是看不懂那个的,因为我太菜了。所以我希望之后的博文里,能够继续用白话来详细解释inside-outside算法。
CFG
CFG的基础介绍
CFG的派生过程
CFG的含糊性问题
PCFGs
PCFG的基础介绍
在将训练之前,这里先解决上面的问题一:
PCFG的训练过程(问题二的解答)
这部分是我天马行空了? 学长给的回答,我放在了补充里(补充一)
PCFG的解码(parsing)过程——CKY解码(问题三的解答)
inside算法
那它有什么用呢?——计算期望!这部分学长给的回答在补充里。
inside-outside
待补充
补充
补充一:关于PCFGs的参数训练问题:
没有我想的那么"天马行空"
补充二:修正关于inside algorithm:
确实它跟CKY基本一样,但它有一些别的用处:
- 单单这个inside, 主要就是计算那个pi(i, j, X): 在句子第i个词到第j个词这个区间上的以X为root的所有tree的score和(概率和)
- 用处的话, ouside里面会计算一个类似形式的值, 代表句子除了(X, i, j)这个区间外, 所有partial tree的概率和.
- 然后用这俩个值可以计算一些期望. 例如(i, j)这个区间的树是以X为根的概率.
- 也可以用来计算当前的PCFG在目前这个句子上所有可能得parse tree里出现某条rule的期望值(可以用来无监督地训练参数)