NLTK-从概率上下文无关语法(PCFG)生成文本

时间:2019-02-17 16:27:26

标签: python nltk grammar

我有一个上下文无关的语法,并用它来创建句子(在python中使用NLTK)。

assignment_history

这很容易并且有效。但是现在,我想在特殊情况下添加概率,以便根据给定概率的随机因素,我生成的故事的结局可以是好是坏。

我找不到任何这样做的示例,当我将PCFG馈入nltk.parse.generate时,它会将其视为CFG。

希望你能帮助我!

1 个答案:

答案 0 :(得分:2)

nltk.parse.generate.generate不会产生随机句子。它返回一个迭代器,该迭代器精确地生成每个可能的句子一次,直到生成请求数量的句子为止。可以限制最大派生深度,但是生成是深度优先的。它不会按派生深度对句子进行排序。

您可以找到source code here;不难看出它在做什么。

因此,它完全是确定性的,永远不会重复。如果您想要(可能是无限的)随机选择的句子流,则必须编写自己的生成器。