Какова вероятность того, что "начать" будет дано?

Using an NLTK Conditional Frequency Distribution and the nltk.bigrams function, train a bigram model on the Genesis:

text = nltk.corpus.genesis.words('english-kjv.txt')
bigrams = nltk.bigrams(text)
cfd = nltk.ConditionalFreqDist(bigrams)
Answer the following questions

What is the Probability of ‘begining’ given ‘the’?
What is the probability of ‘the’?

Примечание: вероятности, которые вы даете в качестве ответа, ДОЛЖНЫ быть вероятностями, вычисляемыми из этого корпуса.

Привет, кто-нибудь может мне помочь? это в книге НЛТК. Когда я получил это, я получил 78%, что не имеет смысла. Я пытаюсь вычислить это в Python.

1 ответ

Решение

Существует какая-то разница между probability of 'beginning' intersect 'the'

p('beginning','the')

а также probability of 'beginning' given 'the':

p('beginning'|'the') = p('beginning','the') / p('the')

пытаться:

from collections import Counter

import nltk

text = nltk.corpus.genesis.words('english-kjv.txt')
bigrams = nltk.bigrams(text)
cfd_bigrams = Counter(bigrams)
cfd_unigrams = Counter(list(text))

print "p('said','unto') =", cfd_bigrams[u'said', u'unto'] / float(sum(cfd_bigrams.values()))

print "p('said'|'unto') =", (cfd_bigrams[u'said', u'unto'] / float(sum(cfd_bigrams.values()))) / cfd_unigrams[u'unto']

print "p('beginning','the') =", cfd_bigrams[u'beginning', u'the']

[из]:

p('said','unto') = 0.00397649844738
p('said'|'unto') = 6.73982787691e-06
p('beginning','the') = 0
Другие вопросы по тегам