Mam problem z NLTK w Pythonie, w szczególności z metodą .generate().Generowanie losowych zdań z własnego tekstu w języku NLTK w Pythonie?
generowanie (self, długość = 100)
Print losowy tekst, wygenerowane przy użyciu modelu języka trygram.
Parametry:
* length (int) - The length of text to generate (default=100)
Oto uproszczona wersja tego, co mam próby.
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)
Będzie zawsze generować
Building ngram index...
The quick brown
None
W przeciwieństwie do budowania losowy zdanie z tych słów.
Oto moje wyjście kiedy robię
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
Znowu zaczynasz z tym samym tekstem, ale następnie zmieniając go. Próbowałem także użyć pierwszego rozdziału z 1984 Orwella. Znowu, zawsze zaczyna się od pierwszych 3 tokenów (z których jednym jest w tym przypadku spacja) i , a następnie przechodzi do losowego generowania tekstu.
Co ja tu robię źle?
NLTK używa kontekstu słów do określenia ich użycia. Na przykład mają na przykład cały tekst "Moby Dick" w NLTK. Korzystanie z generowania tego wygeneruje zdania brzmiące w Meville. Więc jeśli nie wiesz czegoś, czego nie robię, zakładam, że nie chcesz uciec się do słów, ponieważ początkowy kontekst jest znaczący. –
masz rację. Jeśli przetasujesz słowa, tracisz informacje, którymi są trygramy. – Mastermind