내가 아는 한 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
그래서 인터페이스에서 ProbDistI를 사용하는 클래스에 있어야하는 동작 유형을 적용합니까? – OfLettersAndNumbers
. 모든 배포에는 특정 메소드가 있어야한다는 것을 강요합니다. –