テキスト コーパスでトライグラム言語モデルをトレーニングしようとしていて、KN 平滑化を実行したいと考えています。どうやら、「nltk.trigrams」は文字レベルでこれを行います。どうすれば単語レベルでこれを行うことができ、KN 平滑化も実行できるのだろうかと考えていました。これは私が書いたコードで、動作しません:
with open('file.txt',"r",encoding = "ISO-8859-1") as ff:
text = ff.read()
word_tok = tknzr.tokenize(text)
ngrams = nltk.trigrams(word_tok)
freq_dist = nltk.FreqDist(ngrams)
kneser_ney = nltk.KneserNeyProbDist(freq_dist)
print(kneser_ney.prob('you go to'))
エラーが発生します:
Expected an iterable with 3 members.