使用词汇 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 语言模型相结合,这应该会创建更多局部连贯的句子,但仍然不一定是全局连贯的。
我如何利用词法 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 语言模型相结合,这应该会创建更多局部连贯的句子,但仍然不一定是全局连贯的。