У меня есть 2 словаря: count ['pos'] (слова в положительных твитах и их числа) и count ['neg'] (то же самое для отрицательных твитов). Вопрос просит меня определить функцию, которая дает мне P (слово | полярность). Мой код на самом деле работает, но не дает мне желаемого ответа.
possum=sum(counts['pos'].values())
negsum=sum(counts['neg'].values())
def get_word_prob(counts, word, polarity):
"""
calculates the probability of a word given a polarity
Parameters:
counts (dict): the dictionaries 'pos' and 'neg' which count word occurances
word (str): the word you want to get the probability for
polarity (str): wither 'pos' or 'neg'
Returns:
probability (float): the probability of a word given a polarity
"""
# Your code goes here
if word not in counts[polarity]:
return 0
if word in counts['pos']:
probability = counts['pos'][word] / possum
if word in counts['neg']:
probability = counts['neg'][word] / negsum
#Divide the count of the given word by the total sum
return probability # P(word|polarity)
print(get_word_prob(counts, "great", "pos")) # should print 0.00255902660421998
print(get_word_prob(counts, "glad", "neg")) # should print 0.00012164155275442091
print(get_word_prob(counts, "wugs", "neg")) # should print 0
Имейте в виду, что я могу изменить только этот раздел:
if word not in counts[polarity]:
return 0
if word in counts['pos']:
probability = counts['pos'][word] / possum
if word in counts['neg']:
probability = counts['neg'][word] / negsum