Классификация эмоций с использованием NRC Lexicon на Python
В реальных проектах распознавание эмоций часто бывает только началом проекта. Тогда написание целого кода не только увеличит время, но и снизит эффективность.
NRCLexicon - это одобренный MIT проект pypi Марка М. Бейли, который предсказывает настроения и эмоции данного текста. Пакет содержит около 27000 слов и основан на лексике влияния Национального исследовательского совета Канады (NRC) и наборах синонимов WordNet библиотеки NLTK.
Установка:
Чтобы установить этот модуль, введите следующую команду в терминале.
pip install NRCLex
Даже после установки этого модуля ошибка MissingCorpusError может возникать во время работы программ. Поэтому рекомендуется также установить textblob.download_corpora , используя следующую команду в командной строке.
python -m textblob.download_corpora
Подход:
- Импортировать модуль
Python3
# Import required modulesfrom nrclex import NRCLex |
- Назначить вводимый текст
Python3
# Assinging list of wordstext = ["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:
Based on the above approach, the below example classifies various emotions using top_emotions.
Python3
# Import modulefrom nrclex import NRCLex # Assign list of stringstext = ["hate", "lovely", "person", "worst"] # Iterate through listfor 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 modulefrom nrclex import NRCLex # Assign emotiontext = "love" # Create objectemotion = NRCLex(text) # Using methods to classigy emotionprint("
", 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.