Nuotaikų analizė yra stebėtinai tiksli ir galite sukurti šią paprastą „Tkinter“ programą, kad ją išbandytumėte.

Sentimentų analizė yra metodas, leidžiantis nustatyti emocinį teksto toną. Jis naudoja natūralios kalbos apdorojimą, teksto analizę ir skaičiavimo lingvistiką. Naudodami tai galite suskirstyti toną į teigiamą, neutralų arba neigiamą. Tai padeda įmonėms analizuoti klientų atsiliepimus socialiniuose tinkluose, apžvalgas ir apklausas.

Remdamiesi šiais duomenimis, jie gali efektyviau strateguoti savo produktus ir kampanijas. Sužinokite, kaip sukurti programą, kuri aptinka jausmus naudojant Python.

„Tkinter“ ir „VaderSentiment“ modulis

„Tkinter“ leidžia kurti darbalaukio programas. Jame siūlomi įvairūs valdikliai, pvz., mygtukai, etiketės ir teksto laukeliai, kurie palengvina programų kūrimą. Galite naudoti Tkinter sukurti žodyno programą Python arba į sukurkite savo naujienų programą, kuri atnaujina istorijas per API.

Norėdami įdiegti „Tkinter“, atidarykite terminalą ir paleiskite:

pip įdiegti tkinter
instagram viewer

VADER (Valence Aware Dictionary and sEntiment Reasoner) yra leksika ir taisyklėmis pagrįsta nuotaikų analizės įrankis. Jis yra iš anksto pastatytas ir plačiai naudojamas Natūralios kalbos apdorojimas. Algoritmas turi iš anksto nustatytų žodžių rinkinį, atspindintį skirtingus jausmus. Remiantis sakinyje rastais žodžiais, šis algoritmas suteikia poliškumo balą. Naudodami šį balą galite nustatyti, ar sakinys yra teigiamas, neigiamas ar neutralus.

Norėdami įdiegti „VaderSentiment“ paketą „Python“, paleiskite šią terminalo komandą:

pip įdiegti vaderSentiment

Kaip aptikti jausmus naudojant Python

Šios pavyzdinės programos šaltinio kodą galite rasti joje GitHub saugykla.

Pradėkite importuodami reikiamus VADER ir tkinter modulius:

 vaderSentiment.vaderSentiment importuoti SentimentIntensityAnalyzer
tkinteris importuoti *

Tada apibrėžkite funkciją, Išvalyti viską(). Jo tikslas yra išvalyti įvesties laukus, o tai galite padaryti naudodami Ištrinti() metodas nuo pradinio indekso 0 iki galutinio indekso, GALAS.

defIšvalyti viską():
neigiamaslaukas.delete(0, GALAS)
neutralField.delete(0, GALAS)
teigiamaslaukas.delete(0, GALAS)
overallField.delete(0, GALAS)
textArea.delete(1.0, GALAS)

Apibrėžkite funkciją, detect_sentiment(). Naudokite metodą gauti, kad gautumėte žodį, įvestą į teksto sritis valdiklį ir sukurkite objektą SentimentIntensityAnalyzer klasė. Naudoti poliškumo_balai metodą gautame tekste ir pritaikykite VADER nuotaikų analizės algoritmą.

defaptikti_sentimentą():
sakinys = textArea.get("1.0", "galas")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (sakinys)

Išskleiskite neigiamo jausmo balą ('negas') ir paverskite jį procentais. Įveskite gautą vertę į neigiamas laukas pradedant nuo 10 pozicijos. Pakartokite tą patį procesą neutralaus jausmo balui ("neu") ir teigiamų nuotaikų balas ('pos').

 eilutė = str (sentiment_dict['negas'] * 100)
neigiamaslaukas.insert(10, eilutė)

eilutė = str (sentiment_dict["neu"] * 100)
neutralField.insert(10, eilutė)

eilutė = str (sentiment_dict['pos'] * 100)
teigiamaslaukas.insert(10, eilutė)

Išskleiskite sudėtinio rakto, kuriame yra bendras sakinio nuotaikas, reikšmę. Jei reikšmė yra didesnė arba lygi 0,05, sakinys yra teigiamas. Jei reikšmė yra mažesnė arba lygi -0,05, sakinys yra neigiamas. Vertėms nuo -0,05 iki 0,05 tai yra neutralus teiginys.

jeigu sentiment_dict["junginys"] >= 0.05:
eilutė = "Teigiamas"
elifas sentiment_dict["junginys"] <= - 0.05:
eilutė = "Neigiamas"
Kitas:
eilutė = "Neutralus"

Įveskite rezultatą į bendras laukas iš 10 pozicijos:

 overallField.insert(10, eilutė)

Inicijuokite grafinės vartotojo sąsajos langą naudodami Tkinter. Nustatykite lango fono spalvą, pavadinimą ir matmenis. Sukurkite penkias etiketes. Vienas, kuriame prašoma vartotojo įvesti sakinį, o kiti keturi – skirtingiems jausmams. Nustatykite pagrindinį elementą, į kurį norite jį įdėti, tekstą, kurį jis turi rodyti, ir šrifto stilius, kuriuos jis turi turėti kartu su fono spalva.

Apibrėžkite teksto valdiklį, kad gautumėte sakinį iš vartotojo. Nustatykite pagrindinį elementą, į kurį norite įdėti, jo aukštį, plotį, šrifto stilius ir fono spalvą, kurią jis turėtų turėti. Apibrėžkite tris mygtukus. Vienas skirtas atlikti nuotaikų analizę, kitas – išvalyti turinį po naudojimo, kitas – išeiti iš programos. Nustatykite pirminį langą, tekstą, kurį jis turi rodyti, jo fono spalvą, šrifto stilius ir komandą, kurią norite vykdyti spustelėjus.

jeigu __vardas__ == "__pagrindinis__":
gui = Tk()
gui.config (fonas ="#A020f0")
gui.title(„VADER sentimentų analizatorius“)
gui.geometry("400x700")
enterText = Etiketė (gui, text="Įveskite savo sakinį:",šriftas="Arial 15 bold",bg="#A020f0")
neigiamas = Etiketė (gui, tekstas =„Neigiamas procentas:“, šriftas="Arial 15",bg="#A020f0")
neutralus = Etiketė (gui, tekstas ="Nuetral procentas:", šriftas="Arial 15",bg="#A020f0")
teigiamas = Etiketė (gui, tekstas =„Teigiamas procentas:“, šriftas="Arial 15",bg="#A020f0")
apskritai = Etiketė (gui, tekstas="Bendras sakinys yra: ", šriftas="Arial 15",bg="#A020f0")
textArea = tekstas (gui, aukštis =5, plotis=25, šriftas="Arial 15", bg="#cf9fff")
check = Mygtukas (gui, tekstas =„Patikrinti nuotaiką“, bg="#e7305b", šriftas=("arialas", 12, "drąsus"), komanda=detect_sentiment)
aiškus = mygtukas (gui, tekstas ="Išvalyti", bg="#e7305b", šriftas=("arialas", 12, "drąsus"), command=clearAll)
Išeiti = mygtukas (gui, tekstas ="Išeiti", bg="#e7305b", šriftas=("arialas", 12, "drąsus"), komanda = išeiti)

Apibrėžkite keturis skirtingų nuotaikų įvesties laukus ir nustatykite pirminio lango bei šrifto stilius.

 negatiivislaukas = Įrašas (gui, šriftas ="Arial 15")
neutralField = Įrašas (gui, šriftas ="Arial 15")
teigiamas laukas = įrašas (gui, šriftas ="Arial 15")
overallField = Įrašas (gui, šriftas ="Arial 15")

Bendram išdėstymui naudokite tinklelį, kurį sudaro 13 eilučių ir trijų stulpelių. Įdėkite įvairius elementus, pvz., etiketes, teksto įvesties laukus ir mygtukus, į įvairias eilutes ir stulpelius, kaip parodyta. Pridėkite reikiamą kamšalą, kur tik reikia. Nustatyti lipnus galimybė į "W" į kairę sulygiuokite tekstus jo langelyje.

 enterText.grid (row=0, stulpelis=2, pady=15)
textArea.grid (row=1, stulpelis=2, padx=60, pady=10, lipnus = W)
check.grid (row=2, stulpelis=2, pady=10)
neigiamas.grid (eilutė=3, stulpelis=2, pady=10)
neutralus.tinklelis (eilutė=5, stulpelis=2, pady=10)
teigiamas.grid (eilutė=7, stulpelis=2, pady=10)
total.grid (row=9, stulpelis=2, pady=5)
neigiamaslaukas.tinklelis (eilutė=4, stulpelis=2)
neutralField.grid (eilutė=6, stulpelis=2)
teigiamasField.grid (row=8, stulpelis=2)
totalField.grid (row=10, stulpelis=2, pady=10)
clear.grid (row=11, stulpelis=2, pady=10)
Exit.grid (row=12, stulpelis=2, pady=10)

The mainloop () funkcija liepia Python paleisti Tkinter įvykių kilpą ir klausytis įvykių, kol uždarysite langą.

 gui.mainloop()

Sudėkite visą kodą ir galite naudoti gautą trumpą programą nuotaikoms aptikti.

Sentimentų aptikimo naudojant Python rezultatas

Paleidus šią programą, pasirodo VADER Sentiment Analyzer langas. Kai išbandėme programą pagal teigiamą sakinį, ji ją aptiko 79% tikslumu. Išbandžius neutralų ir neigiamą teiginį, programa galėjo aptikti atitinkamai 100% ir 64,3% tikslumu.

Sentimentų analizės naudojant Python alternatyvos

„Textblob“ galite naudoti nuotaikų analizei, kalbos žymėjimui ir teksto klasifikavimui. Jis turi nuoseklią API ir įmontuotą nuotaikų poliškumo klasifikatorių. NLTK yra išsami NLP biblioteka, kurioje yra daugybė teksto analizės įrankių, tačiau pradedantiesiems yra staigi mokymosi kreivė.

Vienas iš populiariausių įrankių yra IBM Watson NLU. Jis pagrįstas debesimis, palaiko kelias kalbas ir turi tokias funkcijas kaip objekto atpažinimas ir raktų ištraukimas. Įdiegę GPT, galite naudoti OpenAI API ir integruoti ją į savo programas, kad realiuoju laiku gautumėte tikslius ir patikimus klientų nuotaikas.