Ich erstelle Prototypen für eine Anwendung und benötige ein Sprachmodell, um die Ratlosigkeit einiger generierter Sätze zu berechnen.
Gibt es ein geschultes Sprachmodell in Python, das ich problemlos verwenden kann? So etwas Einfaches wie
model = LanguageModel('en')
p1 = model.perplexity('This is a well constructed sentence')
p2 = model.perplexity('Bunny lamp robert junior pancake')
assert p1 < p2
Ich habe mir einige Frameworks angesehen, konnte aber nicht finden, was ich will. Ich weiß, dass ich so etwas verwenden kann:
from nltk.model.ngram import NgramModel
lm = NgramModel(3, brown.words(categories='news'))
Dies verwendet eine gute Turing-Wahrscheinlichkeitsverteilung für Brown Corpus, aber ich suchte nach einem gut ausgearbeiteten Modell für einen großen Datensatz, wie den 1b-Wörter-Datensatz. Etwas, dem ich die Ergebnisse für eine allgemeine Domain wirklich vertrauen kann (nicht nur Nachrichten)