Estoy creando prototipos de una aplicación y necesito un modelo de lenguaje para calcular la perplejidad en algunas oraciones generadas.
¿Hay algún modelo de lenguaje entrenado en Python que pueda usar fácilmente? Algo simple como
model = LanguageModel('en')
p1 = model.perplexity('This is a well constructed sentence')
p2 = model.perplexity('Bunny lamp robert junior pancake')
assert p1 < p2
He visto algunos marcos pero no he podido encontrar lo que quiero. Sé que puedo usar algo como:
from nltk.model.ngram import NgramModel
lm = NgramModel(3, brown.words(categories='news'))
Esto utiliza una buena distribución de probabilidad de turing en Brown Corpus, pero estaba buscando un modelo bien diseñado en algún conjunto de datos grande, como el conjunto de datos de 1b palabras. Algo en lo que realmente puedo confiar en los resultados para un dominio general (no solo noticias)