nltk.probability.MutableProbDist

class nltk.probability.MutableProbDist[source]

Bases: ProbDistI

An mutable probdist where the probabilities may be easily modified. This simply copies an existing probdist, storing the probability values in a mutable dictionary and providing an update method.

__init__(prob_dist, samples, store_logs=True)[source]

Creates the mutable probdist based on the given prob_dist and using the list of samples given. These values are stored as log probabilities if the store_logs flag is set.

Parameters
  • prob_dist (ProbDist) – the distribution from which to garner the probabilities

  • samples (sequence of any) – the complete set of samples

  • store_logs (bool) – whether to store the probabilities as logarithms

max()[source]

Return the sample with the greatest probability. If two or more samples have the same probability, return one of them; which sample is returned is undefined.

Return type

any

samples()[source]

Return a list of all samples that have nonzero probabilities. Use prob to find the probability of each sample.

Return type

list

prob(sample)[source]

Return the probability for a given sample. Probabilities are always real numbers in the range [0, 1].

Parameters

sample (any) – The sample whose probability should be returned.

Return type

float

logprob(sample)[source]

Return the base 2 logarithm of the probability for a given sample.

Parameters

sample (any) – The sample whose probability should be returned.

Return type

float

update(sample, prob, log=True)[source]

Update the probability for the given sample. This may cause the object to stop being the valid probability distribution - the user must ensure that they update the sample probabilities such that all samples have probabilities between 0 and 1 and that all probabilities sum to one.

Parameters
  • sample (any) – the sample for which to update the probability

  • prob (float) – the new probability

  • log (bool) – is the probability already logged

SUM_TO_ONE = True

True if the probabilities of the samples in this probability distribution will always sum to one.

discount()

Return the ratio by which counts are discounted on average: c*/c

Return type

float

generate()

Return a randomly selected sample from this probability distribution. The probability of returning each sample samp is equal to self.prob(samp).