我有一个上下文无关的语法,并用它来创建句子(在python中使用NLTK)。
assignment_history
这很容易并且有效。但是现在,我想在特殊情况下添加概率,以便根据给定概率的随机因素,我生成的故事的结局可以是好是坏。
我找不到任何这样做的示例,当我将PCFG馈入nltk.parse.generate时,它会将其视为CFG。
希望你能帮助我!
答案 0 :(得分:2)
nltk.parse.generate.generate
不会产生随机句子。它返回一个迭代器,该迭代器精确地生成每个可能的句子一次,直到生成请求数量的句子为止。可以限制最大派生深度,但是生成是深度优先的。它不会按派生深度对句子进行排序。
您可以找到source code here;不难看出它在做什么。
因此,它完全是确定性的,永远不会重复。如果您想要(可能是无限的)随机选择的句子流,则必须编写自己的生成器。