Генерация предложений * Случайно * Учитывая CFG - PullRequest
0 голосов
/ 03 октября 2019

Я хочу генерировать предложения случайно из заданной контекстно-свободной грамматики.

Случайно является важной частью, потому что моя грамматика довольно большая, и NLTK генерируетвсе возможные высказывания, которые не соответствуют рекурсиям (т. е. E -> A E) и занимают слишком много времени, чтобы генерировать "интересные" высказывания за короткое время (интересное в отличие от других высказываний, предшествующих текущему).

Есть ли какие-либоБиблиотеки Python для этого? Спасибо!

1 Ответ

0 голосов
/ 03 октября 2019

NLTK не предоставляет метод для генерации случайных предложений из грамматики, хотя, как указано в этом связанном вопросе SO, Как использовать NLTK для генерации предложений из индуцированной грамматики? , он может генерировать случайныепредложения из триграмм.

Если вы хотите написать свою собственную функцию Python, вас может заинтересовать статья 1997 года Брюса Маккензи, Генерация строк в произвольном порядке из контекстно-свободной грамматики . (Я нашел ссылку в этот ответ на другой вопрос SO .) Алгоритм включает предварительные вычисления весов на этапе предварительной обработки O (N 2 ) и требует, чтобы грамматика не имела эпсилонproductions (производства, которые расширяются до пустой строки).

...