Анализът на настроението е изненадващо точен и можете да създадете това просто приложение Tkinter, за да го изпробвате.
Анализът на настроението е техника за определяне на емоционалния тон на част от текста. Той използва обработка на естествен език, анализ на текст и компютърна лингвистика. Използвайки това, можете да класифицирате тона на положителен, неутрален или отрицателен. Това помага на бизнеса да анализира отзивите на клиентите в социалните медии, рецензии и проучвания.
Въз основа на тези данни те могат да стратегизират своите продукти и кампании по-ефективно. Научете как можете да създадете приложение, което открива настроения с помощта на Python.
Модулът Tkinter и vaderSentiment
Tkinter ви позволява да създавате настолни приложения. Той предлага разнообразие от приспособления като бутони, етикети и текстови полета, които улесняват разработването на приложения. Можете да използвате Tkinter за създайте приложение за речник в Python или да създайте свое собствено приложение за новини, което актуализира истории чрез API.
За да инсталирате 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 и да го интегрирате във вашите приложения, за да получите точни и надеждни настроения на клиентите в реално време.