2015-10-26 2 views
0

Как я могу использовать лексический PCFG для генерации грамматики и, следовательно, с чувством большего смысла. Я могу генерировать фразы из грамматики CFG, используя библиотеку NLTK, но большинство выражений не имеет смысла, хотя ее грамматически правильно.Использовать лексический PCFG для генерации значащей фразы

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)) 

ответ

2

синтаксический грамматик генерирует грамматические предложения, но это не дает никаких гарантий, что предложения имеют смысл. На самом деле, невозможно сделать предложения, которые дают смысловой смысл - это потребует, чтобы компьютер понял смысл того, что он говорит, на более глубоком уровне, чем это возможно в настоящее время. Вы можете попытаться объединить свой CFG с моделью языка n-gram, которая должна создавать более локальные когерентные предложения, но все же не обязательно глобально согласованные.

+0

Не могли бы вы направить меня к документу или документу об этом. – aman

+1

Если я помню, [этот документ] (http://dl.acm.org/citation.cfm?id=2591256) имел как языковую модель, так и синтаксическую (зависимую) грамматику. Но опять же, он работал только в очень ограниченной области и имел некоторые указания относительно того, каково должно быть содержание высказывания. –

Смежные вопросы