如何预测一个句子的概率?

How to predict probability of a sentence?

如何判断一个句子出现的概率"what is a cat"?与关联的 PCFG :

Rule , Probability
S -> NP VB
NN -> CAT , 1
DT -> what , 1
VB->is , .5
VB->be , .5

这个带句子的pcfg如何表示为隐马尔可夫模型?

模型中的每个节点是 "what" , "is" , "a" , "cat" ? ,如何从 PCFG 中对节点之间的概率连接进行建模?

PCFG 定义 (i) 分析树上的分布和 (ii) 句子上的分布。

PCFG给出的解析树的概率是:

其中解析树 t 被描述为规则的多重集 r (这是一个多重集,因为一个规则可以用于多个次导出一棵树)。

要计算 句子 的概率,您必须考虑推导句子的所有可能方法并对它们的概率求和。

其中表示t的终端串(yield)就是句子s.

在你的例子中,"what is a cat" 的概率是 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

句子"they can fish"有两种可能的解析树:

(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 页),Michael Collins 的 pdf。

编辑:更正树。