如何确定句子“什么是猫”的概率?与相关的PCFG:
Rule , Probability
S -> NP VB
NN -> CAT , 1
DT -> what , 1
VB->is , .5
VB->be , .5
这个带句子的pcfg如何表示为隐马尔可夫模型?
模型中的每个节点都是“what”,“is”,“a”,“cat”? ,如何建模PCFG节点之间的概率连接?
答案 0 :(得分:4)
PCFG定义(i)解析树上的分布和(ii)句子上的分布。
PCFG给出的解析树的概率为:
其中解析树 t 被描述为多个规则 r (它是一个多重集,因为可以多次使用规则来派生树)。 / p>
要计算句子的概率,您必须考虑推导句子的每种可能方式,并总结其概率。
其中表示 t 的终端字符串(yield)是句子 s 。
在您的示例中,“什么是猫”的概率为0,因为您无法使用语法生成它。这是玩具语法的另一个例子:
Rule Probability
S -> NP VP 1
NP -> they 0.5
NP -> fish 0.5
VP -> VBP NP 0.5
VP -> MD VB 0.5
VBP -> can 1
MD -> can 1
VB -> fish 1
“他们可以捕鱼”这句话有两种可能的解析树:
(S (NP they) (VP (MD can) (VB fish)))
(S (NP they) (VP (VBP can) (NP fish)))
概率:
S NP VP MD VB
1 * 0.5 * 0.5 * 1 * 1 = 1 / 4
和
S NP VP VBP NP
1 * 0.5 * 0.5 * 1 * 0.5 = 1 /8
所以它的概率是两个解析树的总和或概率(3/8)。
事实证明,在一般情况下,枚举句子的每个可能的解析树计算成本太高。 但是,有一种O(n ^ 3)算法可以有效地计算总和:inside-outside algorithm(参见第17-18页),迈克尔柯林斯的pdf。
编辑:更正的树木。