Prototypuję aplikację i potrzebuję modelu językowego, aby obliczyć zakłopotanie w przypadku niektórych wygenerowanych zdań.
Czy istnieje jakiś wyuczony model języka w Pythonie, którego można łatwo używać? Coś prostego jak
model = LanguageModel('en')
p1 = model.perplexity('This is a well constructed sentence')
p2 = model.perplexity('Bunny lamp robert junior pancake')
assert p1 < p2
Patrzyłem na niektóre frameworki, ale nie mogłem znaleźć tego, czego chcę. Wiem, że mogę użyć czegoś takiego:
from nltk.model.ngram import NgramModel
lm = NgramModel(3, brown.words(categories='news'))
Wykorzystuje to dobry rozkład prawdopodobieństwa Turinga na Korpusie Browna, ale szukałem dobrze spreparowanego modelu na dużym zestawie danych, takim jak zestaw danych 1b słów. Coś, czemu mogę zaufać wynikom dla domeny ogólnej (nie tylko wiadomości)