Sentimenta analīze ir pārsteidzoši precīza, un jūs varat izveidot šo vienkāršo Tkinter lietotni, lai to izmēģinātu.

Sentimenta analīze ir paņēmiens, lai noteiktu teksta daļas emocionālo toni. Tas izmanto dabiskās valodas apstrādi, teksta analīzi un skaitļošanas lingvistiku. Izmantojot to, varat klasificēt toni pozitīvā, neitrālā vai negatīvā. Tas palīdz uzņēmumiem analizēt klientu atsauksmes sociālajos medijos, atsauksmes un aptaujas.

Pamatojoties uz šiem datiem, viņi var efektīvāk stratēģizēt savus produktus un kampaņas. Uzziniet, kā izveidot lietojumprogrammu, kas nosaka jūtas, izmantojot Python.

Tkintera un vaderSentiment modulis

Tkinter ļauj izveidot darbvirsmas lietojumprogrammas. Tas piedāvā dažādus logrīkus, piemēram, pogas, etiķetes un tekstlodziņus, kas atvieglo lietotņu izstrādi. Varat izmantot Tkinter, lai izveidojiet vārdnīcas lietotni Python vai uz izveidojiet savu ziņu lietojumprogrammu, kas atjaunina stāstus, izmantojot API.

Lai instalētu Tkinter, atveriet termināli un palaidiet:

instagram viewer
pip instalēt tkinter

VADER (Valence Aware Dictionary and sEntiment Reasoner) ir leksika un uz noteikumiem balstīts noskaņojuma analīzes rīks. Tas ir iepriekš uzbūvēts un plaši izmantots Dabiskās valodas apstrāde. Algoritmam ir iepriekš definētu vārdu kopa, kas atspoguļo dažādus uzskatus. Pamatojoties uz teikumā atrastajiem vārdiem, šis algoritms sniedz polaritātes punktu. Izmantojot šo punktu skaitu, varat noteikt, vai teikums ir pozitīvs, negatīvs vai neitrāls.

Lai instalētu vaderSentiment pakotni Python, palaidiet šo termināļa komandu:

pip instalēt vaderSentiment

Kā noteikt sentimentus, izmantojot Python

Šīs programmas parauga pirmkodu varat atrast tajā GitHub repozitorijs.

Sāciet ar nepieciešamo VADER un tkinter moduļu importēšanu:

no vaderSentiment.vaderSentiment imports SentimentIntensityAnalyzer
no tkinter imports *

Pēc tam definējiet funkciju, iztīrīt visu(). Tās mērķis ir notīrīt ievades laukus, ko varat izdarīt, izmantojot dzēst() metode no sākuma indeksa 0 līdz galīgajam indeksam, BEIGAS.

defiztīrīt visu():
negatīvsField.delete(0, END)
neutralField.delete(0, END)
pozitīvsField.delete(0, END)
overallField.delete(0, END)
textArea.delete(1.0, END)

Definējiet funkciju, detect_sentiment(). Izmantojiet iegūšanas metodi, lai izgūtu laukā ievadīto vārdu teksta apgabals logrīku un izveidojiet objektu SentimentIntensityAnalyzer klasē. Izmantojiet polarity_scores metodi ienestajam tekstam un izmantojiet VADER noskaņojuma analīzes algoritmu.

defdetektēt_sentimentu():
teikums = textArea.get("1.0", "beigas")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (teikums)

Izņemiet negatīvā noskaņojuma rezultātu ('neg') un pārvērst to procentos. Ievadiet iegūto vērtību negatīvais lauks sākot no 10 pozīcijas. Atkārtojiet to pašu procesu neitrālajam noskaņojuma rezultātam ('neu') un pozitīvā noskaņojuma rezultāts ('pos').

 virkne = str (sentiment_dict['neg'] * 100)
negatīvsField.insert(10, virkne)

virkne = str (sentiment_dict['neu'] * 100)
neutralField.insert(10, virkne)

virkne = str (sentiment_dict['pos'] * 100)
pozitīvsField.insert(10, virkne)

Izņemiet saliktās atslēgas vērtību, kas satur teikuma vispārējo noskaņojumu. Ja vērtība ir lielāka vai vienāda ar 0,05, teikums ir pozitīvs. Ja vērtība ir mazāka vai vienāda ar -0,05, teikums ir negatīvs. Vērtībām no -0,05 līdz 0,05 tas ir neitrāls paziņojums.

ja sentiment_dict['savienojums'] >= 0.05:
virkne = "Pozitīvs"
elifs sentiment_dict['savienojums'] <= - 0.05:
virkne = "Negatīvs"
cits:
virkne = "Neitrāls"

Ievietojiet rezultātu mapē kopējais lauks no 10. pozīcijas:

 overallField.insert(10, virkne)

Inicializējiet grafiskā lietotāja interfeisa logu, izmantojot Tkinter. Iestatiet loga fona krāsu, nosaukumu un izmērus. Izveidojiet piecas etiķetes. Viens, kas prasa lietotājam ievadīt teikumu, un pārējie četri dažādiem viedokļiem. Iestatiet vecākelementu, kurā vēlaties to ievietot, tekstu, kas tam jāparāda, un fontu stilus, kuriem tam jābūt kopā ar fona krāsu.

Definējiet teksta logrīku, lai saņemtu teikumu no lietotāja. Iestatiet vecākelementu, kurā vēlaties to ievietot, tā augstumu, platumu, fontu stilus un fona krāsu, kādai tam vajadzētu būt. Definējiet trīs pogas. Viens, lai veiktu sentimenta analīzi, viens, lai notīrītu saturu pēc lietošanas, un viens, lai izietu no lietojumprogrammas. Iestatiet tā vecāklogu, tekstu, kas tam jāparāda, tā fona krāsu, fontu stilus un komandu, kuru vēlaties izpildīt, noklikšķinot.

ja __nosaukums__ == "__galvenais__":
gui = Tk()
gui.config (fons ="#A020f0")
gui.title("VADER sentimenta analizators")
gui.geometry("400x700")
enterText = Etiķete (gui, text="Ievadiet savu teikumu:",fonts="Arial 15 treknraksts",bg="#A020f0")
negatīvs = etiķete (gui, text="Negatīvā procentuālā daļa:", fonts="Arial 15",bg="#A020f0")
neitrāls = etiķete (gui, teksts ="Nuetral Percentage:", fonts="Arial 15",bg="#A020f0")
pozitīvs = Etiķete (gui, text="Pozitīvs procents:", fonts="Arial 15",bg="#A020f0")
kopumā = Etiķete (gui, text="Kopējais teikums ir:", fonts="Arial 15",bg="#A020f0")
textArea = Teksts (gui, augstums =5, platums=25, fonts="Arial 15", bg="#cf9fff")
pārbaude = poga (gui, teksts ="Pārbaudīt noskaņojumu", bg="#e7305b", font=("ariāls", 12, "drosmīgs"), command=detect_sentiment)
skaidrs = poga (gui, teksts ="Notīrīt", bg="#e7305b", font=("ariāls", 12, "drosmīgs"), komanda = notīrīt visu)
Iziet = poga (gui, teksts ="Izeja", bg="#e7305b", font=("ariāls", 12, "drosmīgs"), komanda = iziet)

Definējiet četrus ievades laukus dažādiem viedokļiem un iestatiet to vecāklogu un fontu stilus.

 negativeField = Ieraksts (gui, font="Arial 15")
neutralField = ieraksts (gui, font="Arial 15")
pozitívField = ieraksts (gui, font="Arial 15")
overallField = ieraksts (gui, font="Arial 15")

Kopējam izkārtojumam izmantojiet režģi, kas sastāv no 13 rindām un trim kolonnām. Novietojiet dažādus elementus, piemēram, etiķetes, teksta ievades laukus un pogas dažādās rindās un kolonnās, kā parādīts attēlā. Pievienojiet nepieciešamo polsterējumu visur, kur nepieciešams. Iestatiet lipīga iespēja uz "W" lai līdzinātu tekstus šūnā.

 enterText.grid (rinda=0, kolonna=2, pady=15)
textArea.grid (rinda=1, kolonna=2, padx=60, pady=10, lipīga=W)
check.grid (rinda=2, kolonna=2, pady=10)
negatīvs.režģis (rinda=3, kolonna=2, pady=10)
neitrāls.režģis (rinda=5, kolonna=2, pady=10)
pozitīvs.režģis (rinda=7, kolonna=2, pady=10)
overall.grid (rinda=9, kolonna=2, pady=5)
negatīvsField.grid (rinda=4, kolonna=2)
neitrālsField.grid (rinda=6, kolonna=2)
pozitīvsField.grid (rinda=8, kolonna=2)
overallField.grid (rinda=10, kolonna=2, pady=10)
clear.grid (rinda=11, kolonna=2, pady=10)
Exit.grid (rinda=12, kolonna=2, pady=10)

The mainloop() funkcija liek Python palaist Tkinter notikumu cilpu un klausīties notikumus, līdz aizverat logu.

 gui.mainloop()

Salieciet visu kodu kopā un varat izmantot iegūto īso programmu, lai noteiktu noskaņojumu.

Sentimentu noteikšanas rezultāts, izmantojot Python

Palaižot šo programmu, tiek parādīts logs VADER Sentiment Analyzer. Kad mēs pārbaudījām programmu ar pozitīvu teikumu, tā to atklāja ar 79% precizitāti. Izmēģinot neitrālu un negatīvu apgalvojumu, programma spēja noteikt attiecīgi ar 100% un 64,3% precizitāti.

Alternatīvas sentimenta analīzei, izmantojot Python

Varat izmantot Textblob noskaņojuma analīzei, runas marķēšanai un teksta klasifikācijai. Tam ir konsekventa API un iebūvēts sentimenta polaritātes klasifikators. NLTK ir visaptveroša NLP bibliotēka, kurā ir plašs teksta analīzes rīku klāsts, taču tai ir strauja mācīšanās līkne iesācējiem.

Viens no populārākajiem rīkiem ir IBM Watson NLU. Tas ir balstīts uz mākoņiem, atbalsta vairākas valodas, un tam ir tādas funkcijas kā entītiju atpazīšana un atslēgu iegūšana. Ieviešot GPT, varat izmantot OpenAI API un integrēt to savās lietojumprogrammās, lai iegūtu precīzu un uzticamu klientu viedokli reāllaikā.