Analýza sentimentu je prekvapivo presná a túto jednoduchú aplikáciu Tkinter si môžete vytvoriť a vyskúšať.

Analýza sentimentu je technika na určenie emocionálneho tónu textu. Využíva spracovanie prirodzeného jazyka, analýzu textu a počítačovú lingvistiku. Pomocou toho môžete klasifikovať tón na pozitívny, neutrálny alebo negatívny. To pomáha podnikom analyzovať spätnú väzbu zákazníkov na sociálnych médiách, recenzie a prieskumy.

Na základe týchto údajov môžu efektívnejšie stratégovať svoje produkty a kampane. Zistite, ako môžete vytvoriť aplikáciu, ktorá zisťuje pocity pomocou Pythonu.

Modul Tkinter a vaderSentiment

Tkinter vám umožňuje vytvárať desktopové aplikácie. Ponúka množstvo miniaplikácií, ako sú tlačidlá, štítky a textové polia, ktoré uľahčujú vývoj aplikácií. Môžete na to použiť Tkinter vytvoriť slovníkovú aplikáciu v Pythone alebo k vytvorte si vlastnú spravodajskú aplikáciu, ktorá aktualizuje príbehy cez API.

Ak chcete nainštalovať Tkinter, otvorte terminál a spustite:

pip nainštalovať tkinter
instagram viewer

VADER (Valence Aware Dictionary and Sentiment Reasoner) je lexikón a nástroj na analýzu sentimentu založený na pravidlách. Je vopred postavený a široko používaný v Spracovanie prirodzeného jazyka. Algoritmus má sadu preddefinovaných slov, ktoré reprezentujú rôzne pocity. Na základe slov nájdených vo vete dáva tento algoritmus skóre polarity. Pomocou tohto skóre môžete určiť, či je veta pozitívna, negatívna alebo neutrálna.

Ak chcete nainštalovať balík vaderSentiment v Pythone, spustite tento príkaz terminálu:

pip nainštalovať vaderSentiment

Ako zistiť pocity pomocou Pythonu

Zdrojový kód tohto vzorového programu nájdete v ňom úložisko GitHub.

Začnite importovaním požadovaných modulov VADER a tkinter:

od vaderSentiment.vaderSentiment importovať SentimentIntensityAnalyzer
od tkinter importovať *

Potom definujte funkciu, zmazať všetko(). Jeho účelom je vymazať vstupné polia, čo môžete urobiť pomocou vymazať () metóda z počiatočného indexu 0 do konečného indexu, KONIEC.

defzmazať všetko():
negativeField.delete(0, KONIEC)
neutralField.delete(0, KONIEC)
positiveField.delete(0, KONIEC)
totalField.delete(0, KONIEC)
textArea.delete(1.0, KONIEC)

Definujte funkciu, detekovať_sentiment(). Pomocou metódy get získajte slovo zadané v textArea widget a vytvorte objekt SentimentIntensityAnalyzer trieda. Použi polarity_scores na text, ktorý ste načítali, a použite algoritmus analýzy sentimentu VADER.

defdetekovať_sentiment():
veta = textArea.get("1.0", "koniec")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (veta)

Extrahujte skóre negatívneho sentimentu ('neg') a preveďte ho na percentá. Vložte získanú hodnotu do negatívnePole počnúc od pozície 10. Opakujte rovnaký postup pre neutrálne skóre sentimentu ('neu') a skóre pozitívneho sentimentu ('pos').

 string = str (sentiment_dict['neg'] * 100)
negativeField.insert(10, reťazec)

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

string = str (sentiment_dict['pos'] * 100)
positiveField.insert(10, reťazec)

Extrahujte hodnotu zloženého kľúča, ktorý obsahuje celkový sentiment vety. Ak je hodnota väčšia alebo rovná 0,05, veta je kladná. Ak je hodnota menšia alebo rovná -0,05, veta je záporná. Pre hodnoty medzi -0,05 a 0,05 je to neutrálne tvrdenie.

ak sentiment_dict["zlúčenina"] >= 0.05:
reťazec = "pozitívny"
elif sentiment_dict["zlúčenina"] <= - 0.05:
reťazec = "negatívny"
inak:
reťazec = "neutrálny"

Vložte výsledok do celkové pole z 10. miesta:

 totalField.insert(10, reťazec)

Inicializujte okno grafického používateľského rozhrania pomocou Tkinter. Nastavte farbu pozadia, nadpis a rozmery okna. Vytvorte päť štítkov. Jeden, ktorý žiada používateľa, aby zadal vetu, a ďalšie štyri pre rôzne pocity. Nastavte nadradený prvok, do ktorého ho chcete umiestniť, text, ktorý by mal zobrazovať, a štýly písma, ktoré by mal mať spolu s farbou pozadia.

Definujte miniaplikáciu Text na prijímanie vety od používateľa. Nastavte nadradený prvok, do ktorého ho chcete umiestniť, jeho výšku, šírku, štýly písma a farbu pozadia, ktorú by mal mať. Definujte tri tlačidlá. Jeden na vykonanie analýzy sentimentu, jeden na vymazanie obsahu po použití a jeden na ukončenie aplikácie. Nastavte jeho rodičovské okno, text, ktorý sa má zobraziť, farbu pozadia, štýly písma a príkaz, ktorý chcete vykonať po kliknutí.

ak __meno__ == "__Hlavná__":
gui = Tk()
gui.config (pozadie="#A020f0")
gui.title("VADER Sentiment Analyzer")
gui.geometria("400 x 700")
enterText = Označenie (gui, text="Zadajte svoju vetu:",font="arial 15 bold",bg="#A020f0")
negatív = Označenie (gui, text="Záporné percento: ", font="arial 15",bg="#A020f0")
neutrálny = Označenie (gui, text="Nuetrálne percento: ", font="arial 15",bg="#A020f0")
pozitívny = Označenie (gui, text="Pozitívne percento: ", font="arial 15",bg="#A020f0")
celkovo = Označenie (gui, text ="Celková veta je:", font="arial 15",bg="#A020f0")
textArea = Text (gui, výška=5, šírka=25, font="arial 15", bg="#cf9fff")
check = Button (gui, text="Skontrolovať sentiment", bg="#e7305b", font=("arial", 12, "tučné"), command=detect_sentiment)
clear = Tlačidlo (gui, text="Jasný", bg="#e7305b", font=("arial", 12, "tučné"), command=clearAll)
Exit = Button (gui, text="VÝCHOD", bg="#e7305b", font=("arial", 12, "tučné"), príkaz=exit)

Definujte štyri vstupné polia pre rôzne pocity a nastavte ich nadradené okno a štýly písma.

 negativeField = Vstup (gui, font="arial 15")
neutralField = Vstup (gui, font="arial 15")
positiveField = Vstup (gui, font="arial 15")
totalField = Vstup (gui, font="arial 15")

Na celkové rozloženie použite mriežku pozostávajúcu z 13 riadkov a troch stĺpcov. Umiestnite rôzne prvky, ako sú štítky, polia na zadávanie textu a tlačidlá, do rôznych riadkov a stĺpcov, ako je znázornené. V prípade potreby pridajte potrebné vypchávky. Nastaviť lepkavý možnosť "W" doľava zarovnať texty vo svojej bunke.

 enterText.grid (riadok=0, stĺpec=2, pady=15)
textArea.grid (riadok=1, stĺpec=2, padx=60, pady=10, lepkavé=W)
check.grid (riadok=2, stĺpec=2, pady=10)
negatívna.mriežka (riadok=3, stĺpec=2, pady=10)
neutrálna.mriežka (riadok=5, stĺpec=2, pady=10)
pozitívna.mriežka (riadok=7, stĺpec=2, pady=10)
celkovo.mriežka (riadok=9, stĺpec=2, pady=5)
negativeField.grid (riadok=4, stĺpec=2)
neutralField.grid (riadok=6, stĺpec=2)
positiveField.grid (riadok=8, stĺpec=2)
totalField.grid (riadok=10, stĺpec=2, pady=10)
clear.grid (riadok=11, stĺpec=2, pady=10)
Exit.grid (riadok=12, stĺpec=2, pady=10)

The mainloop() funkcia hovorí Pythonu, aby spustil slučku udalostí Tkinter a počúval udalosti, kým nezatvoríte okno.

 gui.mainloop()

Dajte celý kód dohromady a výsledný krátky program môžete použiť na detekciu sentimentov.

Výstup zisťovania pocitov pomocou Pythonu

Po spustení tohto programu sa zobrazí okno VADER Sentiment Analyzer. Keď sme program testovali na pozitívnej vete, zistil ju s presnosťou 79 %. Pri pokuse o neutrálne vyhlásenie a negatívne vyhlásenie bol program schopný zistiť so 100% a 64,3% presnosťou.

Alternatívy pre analýzu sentimentu pomocou Pythonu

Textblob môžete použiť na analýzu sentimentu, označovanie reči a klasifikáciu textu. Má konzistentné API a vstavaný klasifikátor polarity sentimentu. NLTK je komplexná knižnica NLP, ktorá obsahuje širokú škálu nástrojov na analýzu textu, ale pre začiatočníkov má strmú krivku učenia.

Jedným z najpopulárnejších nástrojov je IBM Watson NLU. Je založený na cloude, podporuje niekoľko jazykov a má funkcie, ako je rozpoznávanie entít a extrakcia kľúčov. Po zavedení GPT môžete použiť OpenAI API a integrovať ho do svojich aplikácií, aby ste získali presné a spoľahlivé pocity zákazníkov v reálnom čase.