使用词汇 PCFG 生成有意义的短语

Use lexical PCFG for generating meaningful phrase

我如何利用词法 PCFG 来生成语法,从而生成更有意义的句子。 我可以使用 NLTK 库从 CFG 语法生成短语,但大多数短语没有意义,尽管它在语法上是正确的。

 s=("""
    S -> PRP RB VP
    VP -> VBP NP
    NP -> JJ NNS
    RB -> 'forcefully'|'strongly'|'rerely'
    PRP -> 'we'|'you'|'he'
    VBP -> 'actuarize'|'support'|'condemn'
    JJ -> 'black|fair'
    NNS -> 'markets'
    """)
#load into the grammar

grammar=CFG.fromstring(s)
for sentence in generate(grammar,depth=10):
    print(' '.join(sentence))

句法语法会生成符合语法的句子,但不能保证句子有意义。真的,没有办法造出具有语义意义的句子——这需要计算机比目前更深入地理解它所说的意思。您可以尝试将您的 CFG 与 n-gram 语言模型相结合,这应该会创建更多局部连贯的句子,但仍然不一定是全局连贯的。