假设我有一个概率分布列表(其和为1)。我想用这个列表创建一个ProbDistI对象。如何使用NLTK的ProbDistI类(在probability模块下)创建包含此分布的对象?我查看了这里列出的文档(Link),看起来所有方法都提取了一些与已经具有概率分布的对象相关的值。
有没有使用ProbDistI的例子?我到处找了找,在网上找不到任何资源。
谢谢!

最佳答案

据我所知,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的类

关于python - 如何使用Python nltk的ProbDistI类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21980086/

10-12 14:13