Анализът на настроението е изненадващо точен и можете да създадете това просто приложение Tkinter, за да го изпробвате.

Анализът на настроението е техника за определяне на емоционалния тон на част от текста. Той използва обработка на естествен език, анализ на текст и компютърна лингвистика. Използвайки това, можете да класифицирате тона на положителен, неутрален или отрицателен. Това помага на бизнеса да анализира отзивите на клиентите в социалните медии, рецензии и проучвания.

Въз основа на тези данни те могат да стратегизират своите продукти и кампании по-ефективно. Научете как можете да създадете приложение, което открива настроения с помощта на Python.

Модулът Tkinter и vaderSentiment

Tkinter ви позволява да създавате настолни приложения. Той предлага разнообразие от приспособления като бутони, етикети и текстови полета, които улесняват разработването на приложения. Можете да използвате Tkinter за създайте приложение за речник в Python или да създайте свое собствено приложение за новини, което актуализира истории чрез API.

instagram viewer

За да инсталирате Tkinter, отворете терминал и стартирайте:

pip инсталирайте tkinter

VADER (Valence Aware Dictionary and Sentiment Reasoner) е лексикон и базиран на правила инструмент за анализ на настроението. Той е предварително изграден и се използва широко в Обработка на естествен език. Алгоритъмът има набор от предварително дефинирани думи, които представляват различни чувства. Въз основа на думите, открити в изречението, този алгоритъм дава резултат за полярност. Използвайки този резултат, можете да определите дали изречението е положително, отрицателно или неутрално.

За да инсталирате пакета vaderSentiment в Python, изпълнете тази терминална команда:

pip инсталирайте vaderSentiment

Как да откриваме настроения с помощта на Python

Можете да намерите изходния код на тази примерна програма в нейния GitHub хранилище.

Започнете с импортиране на необходимите VADER и tkinter модули:

от vaderSentiment.vaderSentiment импортиране SentimentIntensityAnalyzer
от tkinter импортиране *

След това дефинирайте функция, изчисти всичко(). Целта му е да изчисти полетата за въвеждане, което можете да направите с помощта на Изтрий() метод от начален индекс на 0 към крайния индекс, КРАЙ.

дефизчисти всичко():
negativeField.delete(0, КРАЙ)
neutralField.delete(0, КРАЙ)
positiveField.delete(0, КРАЙ)
generalField.delete(0, КРАЙ)
textArea.delete(1.0, КРАЙ)

Дефинирайте функция, detect_sentiment(). Използвайте метода get, за да извлечете думата, въведена в textArea джаджа и създайте обект на SentimentIntensityAnalyzer клас. Използвай polarity_scores върху текста, който сте извлекли, и приложете алгоритъма за анализ на настроението на VADER.

дефоткрий_чувство():
изречение = textArea.get("1.0", "край")
sentiment_obj = SentimentIntensityAnalyzer()
sentiment_dict = sentiment_obj.polarity_scores (изречение)

Извадете резултата за отрицателно настроение ("нег") и го преобразувайте в проценти. Въведете получената стойност в negativeField започвайки от позиция 10. Повторете същия процес за резултата за неутрално настроение ("неу") и положителния резултат на настроението ('pos').

 низ = str (sentiment_dict["нег"] * 100)
negativeField.insert(10, низ)

низ = str (sentiment_dict["неу"] * 100)
neutralField.insert(10, низ)

низ = str (sentiment_dict['pos'] * 100)
positiveField.insert(10, низ)

Извлечете стойността на съставния ключ, който съдържа общото чувство на изречението. Ако стойността е по-голяма или равна на 0,05, изречението е положително. Ако стойността е по-малка или равна на -0,05, изречението е отрицателно. За стойности между -0,05 и 0,05 това е неутрално твърдение.

ако sentiment_dict["съединение"] >= 0.05:
низ = "Положителен"
елиф sentiment_dict["съединение"] <= - 0.05:
низ = "отрицателен"
друго:
низ = "неутрален"

Вмъкнете резултата в generalField от 10 позиция:

 generalField.insert(10, низ)

Инициализирайте прозорец на графичен потребителски интерфейс с помощта на Tkinter. Задайте цвета на фона, заглавието и размерите на прозореца. Създайте пет етикета. Един, който иска от потребителя да въведе изречение, а останалите четири за различните чувства. Задайте родителския елемент, в който искате да го поставите, текста, който трябва да показва, и стиловете на шрифта, които трябва да има заедно с цвета на фона.

Дефинирайте приспособление за текст, за да получите изречението от потребителя. Задайте родителския елемент, в който искате да го поставите, неговата височина, ширина, стилове на шрифта и цвета на фона, който трябва да притежава. Определете три бутона. Един за извършване на анализ на настроението, един за изчистване на съдържанието след употреба и един за излизане от приложението. Задайте неговия родителски прозорец, текста, който трябва да показва, неговия фонов цвят, стилове на шрифта и командата, която искате да изпълните при щракване.

ако __име__ == "__основен__":
gui = Tk()
gui.config (background="#A020f0")
gui.title(„Анализатор на настроението VADER“)
gui.geometry("400x700")
enterText = Етикет (gui, text=„Въведете вашето изречение:“,font="arial 15 получер",bg="#A020f0")
отрицателен = Етикет (gui, текст=„Отрицателен процент:“, шрифт="ариал 15",bg="#A020f0")
неутрален = Етикет (gui, текст="Неутрален процент: ", шрифт="ариал 15",bg="#A020f0")
положителен = Етикет (gui, текст=„Положителен процент:“, шрифт="ариал 15",bg="#A020f0")
общ = Етикет (GUI, текст =„Общото изречение е:“, шрифт="ариал 15",bg="#A020f0")
textArea = Текст (gui, височина=5, ширина=25, шрифт="ариал 15", bg="#cf9fff")
проверка = Бутон (gui, текст=„Проверете настроението“, bg="#e7305b", шрифт=("ариал", 12, "удебелен"), command=detect_sentiment)
clear = Бутон (gui, text="Ясно", bg="#e7305b", шрифт=("ариал", 12, "удебелен"), command=clearAll)
Изход = Бутон (GUI, текст ="изход", bg="#e7305b", шрифт=("ариал", 12, "удебелен"), команда=изход)

Дефинирайте четири полета за въвеждане за различните чувства и задайте техния родителски прозорец и стилове на шрифта.

 negativeField = Запис (gui, шрифт="ариал 15")
neutralField = Запис (gui, шрифт="ариал 15")
positiveField = Запис (gui, шрифт="ариал 15")
generalField = Запис (gui, шрифт="ариал 15")

Използвайте мрежа, състояща се от 13 реда и три колони за цялостното оформление. Поставете различните елементи като етикети, полета за въвеждане на текст и бутони в различни редове и колони, както е показано. Добавете необходимата подложка, където е необходимо. Нагласи лепкава опция за "W" за ляво подравняване на текстовете в неговата клетка.

 enterText.grid (ред=0, колона=2, pady=15)
textArea.grid (ред=1, колона=2, padx=60, pady=10, лепкав=W)
check.grid (ред=2, колона=2, pady=10)
negative.grid (ред=3, колона=2, pady=10)
neutral.grid (ред=5, колона=2, pady=10)
positive.grid (ред=7, колона=2, pady=10)
общ.решетка (ред=9, колона=2, pady=5)
negativeField.grid (ред=4, колона=2)
neutralField.grid (ред=6, колона=2)
positiveField.grid (ред=8, колона=2)
generalField.grid (ред=10, колона=2, pady=10)
clear.grid (ред=11, колона=2, pady=10)
Изход.решетка (ред=12, колона=2, pady=10)

The mainloop() функцията казва на Python да стартира цикъла на събитията на Tkinter и да слуша за събития, докато затворите прозореца.

 gui.mainloop()

Съберете целия код заедно и можете да използвате получената кратка програма за откриване на настроения.

Резултатът от откриването на настроения с помощта на Python

При стартиране на тази програма се появява прозорецът на VADER Sentiment Analyzer. Когато тествахме програмата на положително изречение, тя го откри с точност от 79%. При опит за неутрално твърдение и отрицателно, програмата успя да открие съответно със 100% и 64,3% точност.

Алтернативи за анализ на настроението с помощта на Python

Можете да използвате Textblob за анализ на настроението, маркиране на реч и класификация на текст. Има последователен API и вграден класификатор на полярността на настроението. NLTK е цялостна NLP библиотека, която съдържа широк набор от инструменти за анализ на текст, но има стръмна крива на обучение за начинаещи.

Един от най-популярните инструменти е IBM Watson NLU. Той е базиран на облак, поддържа няколко езика и има функции като разпознаване на обекти и извличане на ключове. С въвеждането на GPT можете да използвате OpenAI API и да го интегрирате във вашите приложения, за да получите точни и надеждни настроения на клиентите в реално време.