Estou prototipando um aplicativo e preciso de um modelo de linguagem para calcular a perplexidade em algumas frases geradas.
Existe algum modelo de linguagem treinado em python que eu possa usar facilmente? Algo simples como
model = LanguageModel('en')
p1 = model.perplexity('This is a well constructed sentence')
p2 = model.perplexity('Bunny lamp robert junior pancake')
assert p1 < p2
Eu olhei para algumas estruturas, mas não consegui encontrar o que quero. Eu sei que posso usar algo como:
from nltk.model.ngram import NgramModel
lm = NgramModel(3, brown.words(categories='news'))
Isso usa uma boa distribuição de probabilidade de turing no Brown Corpus, mas eu estava procurando por um modelo bem trabalhado em alguns grandes conjuntos de dados, como o conjunto de dados 1b words. Algo em que posso confiar nos resultados de um domínio geral (não apenas notícias)