Tundeanalüüs on üllatavalt täpne ja selle proovimiseks saate luua selle lihtsa Tkinteri rakenduse.

Tundeanalüüs on tehnika tekstiosa emotsionaalse tooni määramiseks. See kasutab loomuliku keele töötlemist, tekstianalüüsi ja arvutuslingvistikat. Selle abil saate liigitada tooni positiivseks, neutraalseks või negatiivseks. See aitab ettevõtetel analüüsida klientide tagasisidet sotsiaalmeedias, ülevaadetes ja küsitlustes.

Nende andmete põhjal saavad nad oma tooteid ja kampaaniaid tõhusamalt strateegiastada. Siit saate teada, kuidas luua Pythoni abil tundeid tuvastavat rakendust.

Moodul Tkinter ja vaderSentiment

Tkinter võimaldab teil luua töölauarakendusi. See pakub mitmesuguseid vidinaid, nagu nupud, sildid ja tekstikastid, mis muudavad rakenduste arendamise lihtsaks. Saate kasutada Tkinterit koostage Pythonis sõnastikurakendus või selleks looge oma uudisterakendus, mis värskendab lugusid API kaudu.

Tkinteri installimiseks avage terminal ja käivitage:

pip install tkinter

VADER (Valence Aware Dictionary and sEntiment Reasoner) on leksikonil ja reeglitel põhinev tundeanalüüsi tööriist. See on eelnevalt ehitatud ja seda kasutatakse laialdaselt

instagram viewer
Loomuliku keele töötlemine. Algoritmil on eelnevalt määratletud sõnade komplekt, mis esindavad erinevaid tundeid. Lausest leitud sõnade põhjal annab see algoritm polaarsuse hinde. Selle skoori abil saate kindlaks teha, kas lause on positiivne, negatiivne või neutraalne.

VaderSentimenti paketi installimiseks Pythonis käivitage see terminalikäsk:

pip install vaderSentiment

Kuidas Pythoni abil tundeid tuvastada

Selle näidisprogrammi lähtekoodi leiate sellest GitHubi hoidla.

Alustage vajalike VADERi ja tkinteri moodulite importimisega:

alates vaderSentiment.vaderSentiment importida SentimentIntensityAnalyzer
alates tkinter importida *

Seejärel määrake funktsioon, Kustuta kõik(). Selle eesmärk on sisestusväljade tühjendamine, mida saate teha kasutades kustuta() meetod lähteindeksist 0 lõplikule indeksile, LÕPP.

defKustuta kõik():
negatiivneField.delete(0, LÕPP)
neutralField.delete(0, LÕPP)
positiivneField.delete(0, LÕPP)
overallField.delete(0, LÕPP)
textArea.delete(1.0, LÕPP)

Määratlege funktsioon, detect_sentiment(). Kasutage lahtrisse sisestatud sõna toomiseks hankimise meetodit tekstiala vidin ja luua objekt SentimentIntensityAnalyzer klass. Kasuta polaarsuse_skoorid meetod ja rakendage VADER sentimentanalüüsi algoritmi.

deftuvasta_tunne():
lause = textArea.get("1.0", "lõpp")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (lause)

Ekstrakti negatiivse meeleolu skoor ('neg') ja teisendage see protsendiks. Sisestage saadud väärtus negatiivne väli alustades positsioonist 10. Korrake sama protsessi neutraalse meeleolu skoori jaoks ('neu') ja positiivse meeleolu skoor ('pos').

 string = str (sentiment_dict['neg'] * 100)
negatiivneField.insert(10, string)

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

string = str (sentiment_dict['pos'] * 100)
positiivneField.insert(10, string)

Eraldage lause üldist meeleolu sisaldava liitvõtme väärtus. Kui väärtus on suurem kui 0,05 või sellega võrdne, on lause positiivne. Kui väärtus on väiksem või võrdne -0,05, on lause negatiivne. Väärtuste puhul vahemikus -0,05 kuni 0,05 on see neutraalne väide.

kui sentiment_dict['ühend'] >= 0.05:
string = "Positiivne"
elif sentiment_dict['ühend'] <= - 0.05:
string = "Negatiivne"
muidu:
string = "Neutraalne"

Sisestage tulemus lahtrisse üldine väli 10. positsioonilt:

 overallField.insert(10, string)

Graafilise kasutajaliidese akna lähtestamine Tkinteri abil. Määrake akna taustavärv, pealkiri ja mõõtmed. Loo viis silti. Üks, mis palub kasutajal sisestada lause ja ülejäänud neli erinevate tunnete jaoks. Määrake ülemelement, millesse soovite selle paigutada, tekst, mida see kuvatakse, ja fondi stiilid koos taustavärviga.

Kasutajalt lause vastuvõtmiseks määrake tekstividin. Määrake emaelement, millesse soovite selle paigutada, selle kõrgus, laius, fondi stiilid ja taustavärv, mis sellel peaks olema. Määrake kolm nuppu. Üks tundeanalüüsi tegemiseks, üks sisu kustutamiseks pärast kasutamist ja teine ​​rakendusest väljumiseks. Määrake selle põhiaken, kuvatav tekst, taustavärv, fondi stiilid ja käsk, mida soovite klõpsamisel käivitada.

kui __nimi__ == "__main__":
gui = Tk()
gui.config (taust="#A020f0")
gui.title("VADER Sentiment Analyzer")
gui.geometry("400x700")
enterText = Silt (gui, text="Sisestage oma lause:",font="arial 15 paksus kirjas",bg="#A020f0")
negatiivne = Silt (gui, tekst="Negatiivne protsent:", font="arial 15",bg="#A020f0")
neutraalne = Silt (gui, tekst="Nuetral Percentage:", font="arial 15",bg="#A020f0")
positiivne = Silt (gui, tekst="Positiivne protsent:", font="arial 15",bg="#A020f0")
üldine = Silt (gui, tekst="Üldlause on:", font="arial 15",bg="#A020f0")
textArea = Tekst (gui, kõrgus =5, laius=25, font="arial 15", bg="#cf9fff")
check = nupp (gui, tekst="Kontrolli sentimenti", bg="#e7305b", font=("arial", 12, "julge"), käsk=detect_sentiment)
selge = nupp (gui, tekst="Tühjenda", bg="#e7305b", font=("arial", 12, "julge"), käsk=clearAll)
Välju = nupp (gui, tekst="Välju", bg="#e7305b", font=("arial", 12, "julge"), käsk=exit)

Määrake erinevate tunnete jaoks neli sisestusvälja ning määrake nende põhiaken ja fondi stiilid.

 negatívField = sisestus (gui, font="arial 15")
neutralField = sisestus (gui, font ="arial 15")
positiivneField = sisestus (gui, font="arial 15")
overallField = sisestus (gui, font="arial 15")

Kasutage üldise paigutuse jaoks ruudustikku, mis koosneb 13 reast ja kolmest veerust. Asetage erinevad elemendid, nagu sildid, tekstisisestusväljad ja nupud, erinevatesse ridadesse ja veergudesse, nagu näidatud. Lisage vajalik polster kõikjal, kus seda vajate. Määrake kleepuv võimalus "W" tekstid oma lahtris vasakule joondamiseks.

 enterText.grid (rida=0, veerg=2, pady=15)
textArea.grid (rida=1, veerg=2, padx=60, pady=10, kleepuv=W)
check.grid (rida=2, veerg=2, pady=10)
negatiivne.grid (rida=3, veerg=2, pady=10)
neutraalne.võrk (rida=5, veerg=2, pady=10)
positiivne.võrk (rida=7, veerg=2, pady=10)
general.grid (rida=9, veerg=2, pady=5)
negatiivneField.grid (rida=4, veerg=2)
neutraalneField.grid (rida=6, veerg=2)
positiivneField.grid (rida=8, veerg=2)
overallField.grid (rida=10, veerg=2, pady=10)
clear.grid (rida=11, veerg=2, pady=10)
Exit.grid (rida=12, veerg=2, pady=10)

The mainloop() funktsioon käsib Pythonil käivitada Tkinteri sündmusetsükli ja kuulata sündmusi, kuni sulgete akna.

 gui.mainloop()

Pange kogu kood kokku ja saate saadud lühiprogrammi abil tundeid tuvastada.

Pythoni abil tunnete tuvastamise väljund

Selle programmi käivitamisel kuvatakse VADER Sentiment Analyzeri aken. Kui testisime programmi positiivse lausega, tuvastas see selle 79% täpsusega. Proovides neutraalset ja negatiivset väidet, suutis programm tuvastada vastavalt 100% ja 64,3% täpsusega.

Alternatiivid sentimentide analüüsiks Pythoni abil

Textblobi saate kasutada sentimentide analüüsiks, kõne märgistamiseks ja teksti klassifitseerimiseks. Sellel on järjepidev API ja sisseehitatud sentimentide polaarsuse klassifikaator. NLTK on põhjalik NLP-teek, mis sisaldab laias valikus tekstianalüüsi tööriistu, kuid millel on järsk õppimiskõver algajatele.

Üks populaarsemaid tööriistu on IBM Watson NLU. See on pilvepõhine, toetab mitut keelt ja sellel on sellised funktsioonid nagu olemituvastus ja võtme ekstraheerimine. GPT kasutuselevõtuga saate kasutada OpenAI API-d ja integreerida see oma rakendustesse, et saada täpseid ja usaldusväärseid klientide tundeid reaalajas.