Мне очень нужна помощь, чтобы понять процесс оценки вероятности. Так я вычислил счетчик биграмм в корпусе:Биграмм и вероятность триграмм python
import nltk
bigram_p = {}
for sentence in corpus:
tokens = sentence.split()
tokens = [START_SYMBOL] + tokens #Add a start symbol
#so the first word would count as bigram
bigrams = (tuple(nltk.bigrams(tokens)))
for bigram in bigrams:
if bigram not in bigram_p:
bigram_p[bigram] = 1
else:
bigram_p[bigram] += 1
for bigram in bigram_p:
if bigram[0] == '*':
bigram_p[bigram] = math.log(bigram_p[bigram]/unigram_p[('STOP',)],2)
else:
bigram_p[bigram] = math.log(bigram_p[bigram]/unigram_p[(word[0],)],2)
, но я получаю KeyError - ошибку домена математики - и я не могу понять, почему. Просьба объясняет мне мою ошибку и что с ней делать.
спасибо! Это помогло! – Repzz
@Repzz Если этот ответ помог вам решить вашу проблему, пожалуйста [примите это] (http://stackoverflow.com/help/accepted-answer). – memoselyk