Clasificación de emociones usando NRC Lexicon en Python

Muchas veces, para proyectos del mundo real, el reconocimiento de emociones suele ser solo el comienzo del proyecto. Ese tiempo escribiendo un código completo en eso no solo aumentará el tiempo sino que también se obstaculizará la eficiencia. 

NRCLexicon es un proyecto pypi aprobado por el MIT de Mark M. Bailey que predice los sentimientos y la emoción de un texto determinado. El paquete contiene aproximadamente 27.000 palabras y se basa en el léxico de afecto del Consejo Nacional de Investigación de Canadá (NRC) y en los conjuntos de sinónimos de WordNet de la biblioteca NLTK .

Instalación:

Para instalar este módulo, escriba el siguiente comando en la terminal. 

pip install NRCLex

Incluso después de la instalación de este módulo, MissingCorpusError puede ocurrir mientras se ejecutan programas. Por lo tanto, se recomienda instalar también textblob.download_corpora utilizando el siguiente comando en el símbolo del sistema. 

python -m textblob.download_corpora

Acercarse: 

  • Importar el módulo

Python3

# Import required modules
from nrclex import NRCLex
  • Asignar texto de entrada

Python3

# Assigning list of words
text = ['hate', 'lovely', 'person', 'worst']
  • Cree un objeto NRCLex para cada texto de entrada.

Python3

for i in range(len(text)):
   
    # creating objects
    emotion = NRCLex(text[i])
  • Aplicar métodos para clasificar las emociones.
Sr. Método Descripción
1 emoción.palabras  Devolver lista de palabras.
2 emociones.frases Lista de frases de retorno.
3 emoción.affect_list Lista de efectos de retorno.
4 emoción.affect_dict Diccionario de afecto de retorno.
5 emoción.raw_emotion_scores Devuelve los recuentos emocionales en bruto.
6 emoción.top_emotions Devuelve las emociones más altas.
7 emoción.affect_frequencies Frecuencias de efecto de retorno.
  • Los afectos emocionales medidos incluyen lo siguiente:
  1. miedo
  2. enfado
  3. anticipación
  4. confianza
  5. sorpresa
  6. positivo
  7. negativo
  8. tristeza
  9. asco
  10. alegría

A continuación se muestra la implementación.

Ejemplo 1:

Basado en el enfoque anterior, el siguiente ejemplo clasifica varias emociones usando 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('\n\n', text[i], ': ', emotion.top_emotions)

Producción:

Ejemplo 2:

Aquí se clasifica una sola emoción amor utilizando todos los métodos del módulo NCRLex .

Python3

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

Producción:

Publicación traducida automáticamente

Artículo escrito por tedious_wings y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *