Análisis de sentimiento emocional y con la ayuda de Python

Python | El sentimiento emocional y Análisis : En este artículo, vamos a ver cómo vamos a codificar la materia para encontrar las emociones y los sentimientos unidos a voz?

módulos a utilizar:

NLTK, colecciones, cuerda y matplotlib módulos.

NLTK Módulo

La forma completa de NLTK es “ Kit de herramientas de lenguaje natural” . Se trata de un módulo escrito en Python que funciona en el lenguaje humano, como lo son los sentimientos y emociones que se le atribuye .

¿Cómo podemos descargarlo?

General Way: 
pip install nltk
Pycharm Users:
Go to the project interpreter and install it.

Ahora, después de la descarga de este módulo, esto no significa que podemos utilizar cada uno de sus class, class esto tenemos que descargar cada uno de sus package de esta manera,

  • Crear un archivo .py en blanco y escribir este código en él,
    # import the nltk module
    import nltk
    # write this command
    nltk.download()

    Y, ejecute el archivo

  • Ahora después de ejecutar este archivo, el compilador le mostrará el for como este,
    NLTK Downloader
    ---------------------------------------------------------------------------
    d) Download l) List u) Update c) Config h) Help q) Quit
    ---------------------------------------------------------------------------

    Downloader>
    Write d as we have to download the packages of nltk in it.
    After this:
    Download which package (l=list; x=cancel)?
    Identifier>
    Write all in this ass we have to Download all packages of nltk
    in our system,and after pressing enter this will take some time
    as it is big file.
    Note: You must have a good internet connection while
    you are downloading this files.
    This is all about nltk.

Colecciones Módulo:

colecciones es un módulo de Python incorporada que nos proporciona diversas funciones, como el contador en el que se acaba de dar a nuestra lista y que nos va a package un diccionario con el recuento de los elementos.

matplotlib Módulo:

matplotlib es una biblioteca de Python que nos ayudará a trazar gráficos y todo. En esto, vamos a utilizar esta biblioteca para trazar el gráfico de emociones y sentimientos.

¿Cómo vamos a encontrar las emociones y sentimientos?

En primer lugar, vamos a crear un archivo de texto en blanco en la que vamos a escribir o pegar nuestro discurso (interface la que tenemos que encontrar las emociones y sentimientos) y vamos a leer este archivo y trata de hacer que cada palabra de una menor palabra (con la ayuda de la función .lower ()) y ahora después de esto, vamos a eliminar los signos de puntuación del texto y también eliminar los caracteres de nueva línea del texto y después de esto, vamos a hacer el tokenize texto con la ayuda de módulo NLTK (Tokenize significa dividir el texto en la lista (también podemos hacerlo con la ayuda de .split () función, pero NLTK será más rápido que esto)), después de tokenizar Ahora vamos a eliminar las palabras vacías (palabras vacías significa que las palabras, que no tienen emoción) con la ayuda de la función NLTK y después de que vamos a encontrar las emociones y los sentimientos unidos a las palabras restantes y vamos a trazar con la ayuda de matplotlib.

Veremos las distintas funciones de NLTK,

  1. nltk.tokenize : Tokenize es un return de NLTK y esto proporciona una for words_tokenize función que tokenize nuestro texto y crear una lista.
  2. nltk.corpus : Corpus es una package de NLTK y esto nos proporciona una package palabras vacías de función, lo que eliminará las palabras vacías de nuestras palabras no simbólica.
  3. nltk.sentiment.vader : El sentimiento es un package de NLTK y Vader es una biblioteca dentro de este package que nos proporcionará una función llamada, SentimentIntensityAnalyzer que calculará los sentimientos unidos a nuestro texto con la ayuda de polarity_scores ( ).

El enlace al archivo emotions.txt es: https://github.com/abhinav0606/SentimentAnalysisNLTK/blob/master/emotion.txt

O, descargar aquí: emotion.txt

tengo a tomadas en el discurso de Mark Zuckerberg, que dio en Harvard.

vamos a ver el código,

# import the libraries
# import nltk.tokenize
from nltk.tokenize import word_tokenize
# import nltk.corpus
from nltk.corpus import stopwords
# import nltk.sentiments.vader
from nltk.sentiment.vader import SentimentIntensityAnalyzer
# import string to remove punctuations
import string
import matplotlib.pyplot as plt
from collections import Counter
# Create a blank text file mine is
# speech.txt where we will write the speech
# open and read the file
text=open("speech.txt").read()
# we learned in the previous article
# we have to make the text lower
# and remove the punctuations
# make it lower
text=text.lower()
# remove the new line character
text=text.replace("n","")
# remove the punctuations
# Now we will use the
# str.maktrans(<to replace>,<with whom to replace>, <to remove>)
# as we want to remove the punctuations
text=text.translate(str.maketrans("","",string.punctuation))
# Now our text is clean
# now make it tokenize
tokenize_words=word_tokenize(text)
# now remove the stopwords
# make a empty list where we
# will keep our clean words
clean_words=[]
for i in tokenize_words:
# now nltk provides a stopwords list
# if our i present in it we will not
# store it
if i not in stopwords.words("english"):
clean_words.append(i)
# now we have the clean list without stopwords
# now we have the emotions file as emotion.txt
# now we will find the emotions attached to the
# clean words
# create a emotions empty list
emotions=[]
with open("emotion.txt","r") as file:
for i in file:
# now we have to modify the emotions
text1=i.replace("n","")
text1=text1.strip()
text1=text1.replace(" ","")
text1=text1.replace(",","")
text1=text1.replace("'","")
# now our emotions file get modified
# now the file is like
# words:emotion
# now we will split the text
word,emotion=text1.split(":")
# now we will check the words
# in clean words
if word in clean_words:
emotions.append(emotion)
# now we have catched the emotions
# now we will catch the sentiment
# will create a function
def sentimentanalysis(text):
return SentimentIntensityAnalyzer().polarity_scores(text)
# now we will find the sentiment attached to it as this
# function returns a dictionary
sentiments=sentimentanalysis(text)
# now we will find the counter of emotions
emotions_counter=Counter(emotions)
# now we will print the emotions and sentiments
print(emotions_counter)
print(sentiments)
# now we will plot the graph
# we will create a figure
# this is for emotions
fig1,ax1=plt.subplots()
ax1.bar(emotions_counter.keys(),emotions_counter.values())
# to make the words inclined
fig1.autofmt_xdate()
# this is for sentiments
fig2,ax2=plt.subplots()
ax2.bar(sentiments.keys(),sentiments.values())
fig2.autofmt_xdate()
# will show the plot
plt.show()

Salida:

Counter({'happy': 5, 'hated': 2, 'entitled': 2, 'attached': 1, 
'attracted': 1, 'alone': 1, 'free': 1, 'loved': 1})
{'neg': 0.085, 'neu': 0.756, 'pos': 0.159, 'compound': 0.9996}

Las parcelas son,

1) Las emociones Gráfico:

Emotional and Sentiment Analysis with the help of Python - 4

2) Sentimientos Gráfico:

Emotional and Sentiment Analysis with the help of Python - 5


Deja un comentario

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