Классификация эмоций с использованием 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 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:
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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.