如何使用拉普拉斯平滑实现条件概率分布

时间:2019-12-06 05:38:14

标签: python nltk probability

我有大量的数据,我正在尝试建立一种语言模型。基本上我需要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.

感谢您的帮助。

0 个答案:

没有答案