假设我有一个概率分布列表(其总和为1)。我想使用该列表来创建ProbDistI对象。如何使用NLTK的ProbDistI类(在概率模块下)创建包含此分布的对象?我查看了这里列出的文档(Link),看起来所有方法都提取了一些与已经具有概率分布的对象相关的值。
是否有使用ProbDistI的示例?我看了一遍,无法在网上找到任何资源。
谢谢!
答案 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
的类