我有大量的数据,我正在尝试建立一种语言模型。基本上我需要P(word_i | word_j)。为此,我创建了一个二元组列表。 即
bigrams = [("I","like"),("like","to"),("to","eat)...]
现在下面的代码使用MLE创建所需的语言模型
cfreq_2gram = nltk.ConditionalFreqDist(bigrams)
lm = nltk.ConditionalProbDist(cfreq_2gram, nltk.MLEProbDist)
一个人可以访问它
lm["my"].prob("own")
我面临的问题是我想应用Laplace平滑而不是MLEProbDistribution。但是当我做这样的事情
lm = nltk.ConditionalProbDist(cfreq_2gram, nltk.LaplaceProbDist)
访问lm中的某些单词对时出现上述错误
ValueError: A Laplace probability distribution must have at least one bin.
感谢您的帮助。