вероятность подсчета слов при данной полярности - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть 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
...