如何使用Python nltk的ProbDistI类

时间:2014-02-24 06:06:11

标签: python nltk probability

假设我有一个概率分布列表(其总和为1)。我想使用该列表来创建ProbDistI对象。如何使用NLTK的ProbDistI类(在概率模块下)创建包含此分布的对象?我查看了这里列出的文档(Link),看起来所有方法都提取了一些与已经具有概率分布的对象相关的值。

是否有使用ProbDistI的示例?我看了一遍,无法在网上找到任何资源。

谢谢!

1 个答案:

答案 0 :(得分:1)

据我所知,ProbDistI类是一个接口,其他类实现它。也就是说,每个分发类必须具有ProbDistI接口的方法,如prob(),max()等。您可以直接在code中查找它。

这样做的原因可能是一般的分布太复杂而无法描述为对象,而分布的特殊情况更容易描述。例如,您可以启动实现ProbDistI的UniformProbDist类。

from nltk.probability import UniformProbDist as U
UD=U([1,2,3,4])

现在你有一个统一的发行版UD。使用UD.prob(1)你得到0.25

实现ProbDistI的分发类的另一个示例是DictionaryProbDist。您可以创建与上一示例相同的分发:

from nltk.probability import DictionaryProbDist as D
DD=D({1:0.25,2:0.25,3:0.25,4:0.25})
print D.prob(1)
>>> 0.25

有关创建分发的其他方法,您可以直接在code中查找以下行:

class DictionaryProbDist(ProbDistI):

这是一个实现接口ProbDistI

的类