Классификация эмоций с использованием NRC Lexicon на Python

Опубликовано: 15 Февраля, 2022

В реальных проектах распознавание эмоций часто бывает только началом проекта. Тогда написание целого кода не только увеличит время, но и снизит эффективность.

NRCLexicon - это одобренный MIT проект pypi Марка М. Бейли, который предсказывает настроения и эмоции данного текста. Пакет содержит около 27000 слов и основан на лексике влияния Национального исследовательского совета Канады (NRC) и наборах синонимов WordNet библиотеки NLTK.

Установка:

Чтобы установить этот модуль, введите следующую команду в терминале.

 pip install NRCLex

Даже после установки этого модуля ошибка MissingCorpusError может возникать во время работы программ. Поэтому рекомендуется также установить textblob.download_corpora , используя следующую команду в командной строке.

 python -m textblob.download_corpora

Подход:

  • Импортировать модуль

Python3

# Import required modules
from nrclex import NRCLex
  • Назначить вводимый текст

Python3

# Assinging list of words
text = ["hate", "lovely", "person", "worst"]
  • Создайте объект NRCLex для каждого вводимого текста.

Python3

for i in range(len(text)):
    
    # creating objects
    emotion = NRCLex(text[i])
  • Применяйте методы для классификации эмоций.
Старший Метод Описание
1 эмоция. слова Вернуть список слов.
2 эмоции. предложения Список возвращаемых предложений.
3 Emotion.affect_list Вернуться список аффектов.
4 Emotion.affect_dict Вернуть словарь влияния.
5 эмоция.raw_emotion_scores Верните грубые эмоциональные подсчеты.
6 эмоция.top_emotions Верните высшие эмоции.
7 Emotion.affect_frequencies Возвратите аффектные частоты.
  • Измеряемые эмоциональные аффекты включают следующее:
  1. страх
  2. злость
  3. ожидание
  4. доверять
  5. сюрприз
  6. положительный
  7. отрицательный
  8. грусть
  9. отвращение
  10. радость

Ниже представлена реализация.

Пример 1:

Based on the above approach, the below example classifies various emotions using top_emotions.

Python3

# Import module
from nrclex import NRCLex
  
# Assign list of strings
text = ["hate", "lovely", "person", "worst"]
  
# Iterate through list
for i in range(len(text)):
  
    # Create object
    emotion = NRCLex(text[i])
  
    # Classify emotion
    print(" ", text[i], ": ", emotion.top_emotions)

Выход:

Пример 2:

Here a single emotion love is classified using all the methods of NCRLex module.

Python3

# Import module
from nrclex import NRCLex
  
# Assign emotion
text = "love"
  
# Create object
emotion = NRCLex(text)
  
# Using methods to classigy emotion
print(" ", emotion.words)
print(" ", emotion.sentences)
print(" ", emotion.affect_list)
print(" ", emotion.affect_dict)
print(" ", emotion.raw_emotion_scores)
print(" ", emotion.top_emotions)
print(" ", emotion.affect_frequencies)

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.