У меня возникают проблемы с NLTK под Python, в частности методом .generate().Создание случайных предложений из пользовательского текста в NLTK Python?
генерации (самостоятельная, длина = 100)
печати случайный текст, сгенерированный с использованием модели языка Триграмма.
Параметры:
* length (int) - The length of text to generate (default=100)
Вот упрощенная версия того, что я пытаюсь.
import nltk
words = 'The quick brown fox jumps over the lazy dog'
tokens = nltk.word_tokenize(words)
text = nltk.Text(tokens)
print text.generate(3)
Это всегда генерировать
Building ngram index...
The quick brown
None
В отличие от построения случайной фразы из слов.
Вот мой выходной, когда я
print text.generate()
Building ngram index...
The quick brown fox jumps over the lazy dog fox jumps over the lazy
dog dog The quick brown fox jumps over the lazy dog dog brown fox
jumps over the lazy dog over the lazy dog The quick brown fox jumps
over the lazy dog fox jumps over the lazy dog lazy dog The quick brown
fox jumps over the lazy dog the lazy dog The quick brown fox jumps
over the lazy dog jumps over the lazy dog over the lazy dog brown fox
jumps over the lazy dog quick brown fox jumps over the lazy dog The
None
Опять же, начиная с того же самого текста, но затем изменяя его. Я также попытался использовать первую главу из 1984 года Оруэлла. Снова, что всегда начинается с первых 3 жетонов (один из которых является пространством в этом случае) и , тогда продолжает случайное генерирование текста.
Что я здесь делаю неправильно?
NLTK использует контекст слов для определения их использования. Например, они имеют весь текст «Моби Дика» в NLTK для примера. Использование генерации с этим будет генерировать звуковые предложения Meville. Поэтому, если вы не знаете чего-то, чего я не знаю, я предполагаю, что вы не хотите прибегать к словам, потому что исходный контекст является значительным. –
Вы правы. Если вы перетасовываете слова, вы теряете информацию о том, что все триграммы. – Mastermind