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

时间:2018-05-04 09:22:57

标签: nlp stanford-nlp probability hidden-markov-models markov-models

如何确定句子“什么是猫”的概率?与相关的PCFG:

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

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

模型中的每个节点都是“what”,“is”,“a”,“cat”? ,如何建模PCFG节点之间的概率连接?

1 个答案:

答案 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。

编辑:更正的树木。