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()