目录
1.语法树示例
比如一句话,Microsoft is located in Redmond,通过对不同词性的定义,以及词性之间,词性和词汇的生成,所得到的一棵树。如下图所示:
2.语法
这之中的语法就是什么词性能够生成的内容,词性既能够生成词性,也能够生成单词。
当词性生成词性的时候,也就是中间的节点,这里在转换的时候也可以对其加上概率值,表示一个词性生成其他词性的概率是多少,这个概率可以通过训练得到。
3.语法树的评估
有了PCFG所对应的各个概率,给出一棵树后,将每一个概率相乘即可。可通过PCFG生成多棵语法树,然后挑选出概率最高的。
4.DP算法选最好的树
这里对树的挑选,使用的是CKY算法,其背后的逻辑是动态规划。
CKY算法的要求:右边不能出现两个项。
我们从最下面的叶节点,往上一步步计算。
比如有4个词:fish, people, fish, tanks,什么样的结构生成这四个词的概率最大?
首先对最底层的四个词,哪些路径可以生成这个词?概率是多少?这个路径又是由哪些路径生成的?概率是多少?
其次,将四个词两两结合:fish+people, people+fish, fish+tanks,哪些路径可以结合并且由一个词性生成?概率是多少?
再往下,把四个词中的三个结合:
(fish+people)+fish, tanks
fish+(people+fish), tanks
fish, (people+fish)+tanks
fish, people+(fish+tanks)
同样的计算所有可能的结构以及概率
按照以上的方式一步一步计算所有的路径,得到对应的概率,计算完毕之后,倒着推,得到概率最高的路径。