Как повысить точность и четкость анализа настроений с помощью Supervised Learning - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть тренировка набора данных фильмов IMDB размером примерно 80 МБ, я занимаюсь анализом настроений на тестовых данных, связанных с фильмами.Я пытался использовать бухты Navie и SVM (SK-learn) для анализа настроений, но пока не могу повысить точность результатов.

Я пробовал эти методы https://colab.research.google.com/drive/1yIMLlYhhl6QOj1wpjW-Zka0cLOYk7Jg7

https://medium.com/@media_73863/fasttext-sentiment-analysis-for-tweets-a-straightforward-guide-9a8c070449a2

но пока я не могу получить точность более 75%

# Экранирование символов HTML

 tweet = BeautifulSoup(tweet).get_text()
    #Special case not handled previously.
    tweet = tweet.replace('\x92',"'")
    #Removal of hastags/account
    tweet = ' '.join(re.sub("(@[A-Za-z0-9]+)|(#[A-Za-z0-9]+)", " ", tweet).split())
    #Removal of address
    tweet = ' '.join(re.sub("(\w+:\/\/\S+)", " ", tweet).split())
    #Removal of Punctuation
    tweet = ' '.join(re.sub("[\.\,\!\?\:\;\-\=]", " ", tweet).split())
    #Lower case
    tweet = tweet.lower()
    #CONTRACTIONS source: https://en.wikipedia.org/wiki/Contraction_%28grammar%29
    CONTRACTIONS = load_dict_contractions()
    tweet = tweet.replace("’","'")
    words = tweet.split()
    reformed = [CONTRACTIONS[word] if word in CONTRACTIONS else word for word in words]
    tweet = " ".join(reformed)
    # Standardizing words
    tweet = ''.join(''.join(s)[:2] for _, s in itertools.groupby(tweet))
    #Deal with smileys
    #source: https://en.wikipedia.org/wiki/List_of_emoticons
    SMILEY = load_dict_smileys()  
    words = tweet.split()
    reformed = [SMILEY[word] if word in SMILEY else word for word in words]
    tweet = " ".join(reformed)
    #Deal with emojis
    tweet = emoji.demojize(tweet)
    #Strip accents
    tweet= strip_accents(tweet)
    tweet = tweet.replace(":"," ")
    tweet = ' '.join(tweet.split())

ТЕКУЩИЙ РЕЗУЛЬТАТ

precision    recall  f1-score   support

           0       0.74      0.75      0.75       814
           1       0.77      0.76      0.77       892

   micro avg       0.76      0.76      0.76      1706
   macro avg       0.76      0.76      0.76      1706
weighted avg       0.76      0.76      0.76      1706

Ожидается увеличение до 90%

ССЫЛКА НА ПОЛНЫЙ КОД https://drive.google.com/file/d/1dsnv86Rgu-NOXnLY1fbvRfN3Homb541K/view?usp=sharing

...