2014-02-24 4 views
2

확률 분포 목록이 있다고 가정합니다 (이 합계는 1입니다). 이 목록을 사용하여 ProbDistI 개체를 만들고 싶습니다. NLTK의 ProbDistI 클래스 (확률 모듈 아래)를 사용하여이 분포가 포함 된 객체를 만드는 방법은 무엇입니까? 여기에 나열된 설명서 (Link)를 검토 한 결과, 모든 방법이 이미 확률 분포가있는 객체와 관련된 일부 값을 추출하는 것처럼 보입니다.Python nltk의 ProbDistI 클래스 사용 방법

ProbDistI를 사용하는 예제가 있습니까? 나는 모든 것을 조사해 보았고 온라인에서 자원을 찾는 데 어려움이있었습니다.

감사합니다.

답변

1

내가 아는 한 ProbDistI 클래스는 인터페이스이며, 다른 클래스는이를 구현합니다. 즉, 각 분배 클래스는 prob(), max() 등과 같은 ProbDistI 인터페이스의 메소드를 가져야합니다. code에서 직접 볼 수 있습니다.

이렇게 만들어진 이유는 일반적으로 배포본이 너무 복잡해서 배포판의 특수한 경우를 설명하기가 쉽지 않기 때문일 수 있습니다. 예를 들어, ProbDistI를 구현하는 UniformProbDist 클래스를 시작할 수 있습니다.

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

이제 유니폼 배포 UD가 있습니다. UD.prob (1)로 0.25를 얻습니다.

ProbDistI를 구현하는 배포 클래스의 또 다른 예로 DictionaryProbDist가 있습니다. 당신은 앞의 예에서와 동일한 분포를 생성 할 수 있습니다 :이 같은 라인에 대한 검색 code에서 직접 볼 수 있었다 분포를 생성하는 또 다른 방법을

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 

:

class DictionaryProbDist(ProbDistI): 

클래스는 그 그 인터페이스를 구현합니다. ProbDistI

+0

그래서 인터페이스에서 ProbDistI를 사용하는 클래스에 있어야하는 동작 유형을 적용합니까? – OfLettersAndNumbers

+0

. 모든 배포에는 특정 메소드가 있어야한다는 것을 강요합니다. –

관련 문제