El lenguaje Python se usa ampliamente para el aprendizaje automático moderno y el análisis de datos. Uno puede detectar una imagen, un discurso, incluso puede detectar un objeto a través de Python. Por ahora, detectaremos si el texto del usuario da una sensación positiva o negativa clasificando el texto como positivo, negativo o neutral. En el código, se utilizan el análisis de sentimientos de Vader y Tkinter . Tkinter es una biblioteca GUI estándar para crear la aplicación GUI.
Instalaciones Requeridas en Anaconda:
- tkinter: este módulo se utiliza para crear una aplicación GUI simple. Este módulo generalmente viene preinstalado con Python, pero para instalarlo externamente, escriba el siguiente comando en la terminal.
Usando el comando conda.
conda install -c anaconda tk
Los usuarios de Linux también pueden usar el siguiente comando.
sudo apt-get install python3-tk
- nltk: este módulo se utiliza para hacer que las computadoras entiendan el lenguaje natural. Para instalarlo, escriba el siguiente comando en la terminal.
Usando conda.
conda install -c anaconda nltk
Usando pipa.
pip install nltk
- numpy: este módulo es el paquete fundamental para la computación científica con Python. Para instalarlo, escriba el siguiente comando en la terminal.
Usando conda.
conda install -c conda-forge numpy
Usando pipa.
pip install numpy
- pandas: este módulo se utiliza para el análisis de datos. Proporciona un rendimiento altamente optimizado con código fuente back-end escrito exclusivamente en C o Python. Para instalarlo, escriba el siguiente comando en la terminal.
usando conda
conda install -c anaconda pandas
Usando pipa.
pip install pandas
- matplotlib: este módulo es una increíble biblioteca de visualización en Python para gráficos 2D de arrays. Matplotlib es una biblioteca de visualización de datos multiplataforma construida sobre arrays NumPy. Para instalarlo, escriba el siguiente comando en la terminal.
Usando conda.
conda install -c conda-forge matplotlib
Usando pipa.
pip install matplotlib
Análisis de sentimiento VADER
VADER (Valence Aware Dictionary and sEntiment Reasoner) es una herramienta de análisis de sentimientos basada en reglas y léxico que está específicamente en sintonía con los sentimientos expresados en las redes sociales. VADER usa una combinación de Un léxico de sentimientos es una lista de características léxicas (por ejemplo, palabras) que generalmente se etiquetan según su orientación semántica como positivas o negativas. VADER no solo informa sobre el puntaje de positividad y negatividad, sino que también nos informa sobre qué tan positivo o negativo es un sentimiento.
Nota: Para obtener más información, consulte Python | Análisis de Sentimiento usando VADER .
A continuación se muestra la implementación.
Python3
import time import pandas as pd import numpy as np import matplotlib.pyplot as plt from tkinter import * import tkinter.messagebox from nltk.sentiment.vader import SentimentIntensityAnalyzer class analysis_text(): # Main function in program def center(self, toplevel): toplevel.update_idletasks() w = toplevel.winfo_screenwidth() h = toplevel.winfo_screenheight() size = tuple(int(_) for _ in toplevel.geometry().split('+')[0].split('x')) x = w/2 - size[0]/2 y = h/2 - size[1]/2 toplevel.geometry("%dx%d+%d+%d" % (size + (x, y))) def callback(self): if tkinter.messagebox.askokcancel("Quit", "Do you want to leave?"): self.main.destroy() def setResult(self, type, res): #calculated comments in vader analysis if (type == "neg"): self.negativeLabel.configure(text = "you typed negative comment : " + str(res) + " % \n") elif (type == "neu"): self.neutralLabel.configure( text = "you typed comment : " + str(res) + " % \n") elif (type == "pos"): self.positiveLabel.configure(text = "you typed positive comment: " + str(res) + " % \n") def runAnalysis(self): sentences = [] sentences.append(self.line.get()) sid = SentimentIntensityAnalyzer() for sentence in sentences: # print(sentence) ss = sid.polarity_scores(sentence) if ss['compound'] >= 0.05 : self.normalLabel.configure(text = " you typed positive statement: ") elif ss['compound'] <= - 0.05 : self.normalLabel.configure(text = " you typed negative statement") else : self.normalLabel.configure(text = " you normal typed statement: ") for k in sorted(ss): self.setResult(k, ss[k]) print() def editedText(self, event): self.typedText.configure(text = self.line.get() + event.char) def runByEnter(self, event): self.runAnalysis() def __init__(self): # Create main window self.main = Tk() self.main.title("Text Detector system") self.main.geometry("600x600") self.main.resizable(width=FALSE, height=FALSE) self.main.protocol("WM_DELETE_WINDOW", self.callback) self.main.focus() self.center(self.main) # addition item on window self.label1 = Label(text = "type a text here :") self.label1.pack() # Add a hidden button Enter self.line = Entry(self.main, width=70) self.line.pack() self.textLabel = Label(text = "\n", font=("Helvetica", 15)) self.textLabel.pack() self.typedText = Label(text = "", fg = "blue", font=("Helvetica", 20)) self.typedText.pack() self.line.bind("<Key>",self.editedText) self.line.bind("<Return>",self.runByEnter) self.result = Label(text = "\n", font=("Helvetica", 15)) self.result.pack() self.negativeLabel = Label(text = "", fg = "red", font=("Helvetica", 20)) self.negativeLabel.pack() self.neutralLabel = Label(text = "", font=("Helvetica", 20)) self.neutralLabel.pack() self.positiveLabel = Label(text = "", fg = "green", font=("Helvetica", 20)) self.positiveLabel.pack() self.normalLabel =Label (text ="", fg ="red", font=("Helvetica", 20)) self.normalLabel.pack() # Driver code myanalysis = analysis_text() mainloop()
Producción:
Publicación traducida automáticamente
Artículo escrito por newsgebrehiwot2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA