Анализа осећања је изненађујуће прецизна и можете да направите ову једноставну Ткинтер апликацију да бисте је испробали.

Анализа осећања је техника за одређивање емоционалног тона дела текста. Користи обраду природног језика, анализу текста и рачунарску лингвистику. Користећи ово, можете класификовати тон у позитиван, неутралан или негативан. Ово помаже предузећима да анализирају повратне информације купаца на друштвеним медијима, рецензије и анкете.

На основу ових података, они могу ефикасније да израде стратегију својих производа и кампања. Научите како можете да направите апликацију која детектује осећања користећи Питхон.

Модул Ткинтер и вадерСентимент

Ткинтер вам омогућава да креирате десктоп апликације. Нуди разне виџете попут дугмади, налепница и оквира за текст који олакшавају развој апликација. Можете користити Ткинтер за направите апликацију за речник у Питхон-у или да направите сопствену апликацију за вести која ажурира приче преко АПИ-ја.

Да бисте инсталирали Ткинтер, отворите терминал и покрените:

пип инсталл ткинтер

ВАДЕР (Валенце Аваре Дицтионари анд Сентимент Реасонер) је алатка за анализу осећања заснована на лексикону и правилима. Унапред је изграђен и широко се користи у Обрада природног језика. Алгоритам има скуп унапред дефинисаних речи које представљају различита осећања. На основу речи које се налазе у реченици, овај алгоритам даје оцену поларитета. Користећи овај резултат, можете идентификовати да ли је реченица позитивна, негативна или неутрална.

Да бисте инсталирали пакет вадерСентимент у Питхон-у, покрените ову терминалну команду:

пип инсталл вадерСентимент

Како открити осећања користећи Питхон

Изворни код овог узорка програма можете пронаћи у његовом ГитХуб спремиште.

Започните увозом потребних ВАДЕР и ткинтер модула:

из вадерСентимент.вадерСентимент увоз СентиментИнтенситиАнализер
из ткинтер увоз *

Затим дефинишите функцију, избриши све(). Његова сврха је да обрише поља за унос, што можете учинити помоћу делете() метод из почетног индекса 0 до коначног индекса, КРАЈ.

дефизбриши све():
негативеФиелд.делете(0, КРАЈ)
неутралФиелд.делете(0, КРАЈ)
позитивноФиелд.делете(0, КРАЈ)
тоталФиелд.делете(0, КРАЈ)
тектАреа.делете(1.0, КРАЈ)

Дефинишите функцију, детектовати_сентимент(). Користите метод гет да преузмете реч унету у тектАреа виџет и креирајте објекат од СентиментИнтенситиАнализер класа. Користити поларити_сцорес метод на текст који сте преузели и примените ВАДЕР алгоритам анализе сентимента.

дефдетектовати_сентимент():
реченица = тектАреа.гет("1.0", "крај")
сентимент_обј = СентиментИнтенситиАнализер()
сентимент_дицт = сентимент_обј.поларити_сцорес (реченица)

Издвој оцену негативног осећања ('нег') и претворите га у проценат. Убаците добијену вредност у негативеФиелд почевши од позиције 10. Поновите исти процес за оцену неутралног осећања ('неу') и позитивно мишљење ('пос').

 стринг = стр (сентимент_дицт['нег'] * 100)
негативеФиелд.инсерт(10, низ)

стринг = стр (сентимент_дицт['неу'] * 100)
неутралФиелд.инсерт(10, низ)

стринг = стр (сентимент_дицт['пос'] * 100)
позитивноФиелд.инсерт(10, низ)

Издвој вредност сложеног кључа који садржи целокупно осећање реченице. Ако је вредност већа или једнака 0,05, реченица је позитивна. Ако је вредност мања или једнака -0,05, реченица је негативна. За вредности између -0,05 и 0,05, то је неутрална изјава.

ако сентимент_дицт['сложеница'] >= 0.05:
стринг = "позитивно"
елиф сентимент_дицт['сложеница'] <= - 0.05:
стринг = "негативно"
друго:
стринг = "неутрално"

Убаците резултат у тоталФиелд са 10. позиције:

 тоталФиелд.инсерт(10, низ)

Иницијализујте прозор графичког корисничког интерфејса користећи Ткинтер. Подесите боју позадине, наслов и димензије прозора. Направите пет етикета. Један који тражи од корисника да унесе реченицу, а друге четири за различита осећања. Подесите надређени елемент у који желите да га поставите, текст који треба да прикаже и стилове фонта које треба да има заједно са бојом позадине.

Дефинишите текстуални виџет да бисте примили реченицу од корисника. Подесите родитељски елемент у који желите да га поставите, његову висину, ширину, стилове фонта и боју позадине коју треба да поседује. Дефинишите три дугмета. Један за обављање анализе расположења, један за брисање садржаја након употребе и један за излазак из апликације. Подесите његов надређени прозор, текст који треба да прикаже, његову боју позадине, стилове фонта и команду коју желите да извршите када кликнете.

ако __наме__ == "__главни__":
гуи = Тк()
гуи.цонфиг (бацкгроунд="#А020ф0")
гуи.титле(„ВАДЕР анализатор осећања“)
гуи.геометри("400к700")
ентерТект = Ознака (гуи, тект="Унесите своју реченицу: ",фонт="ариал 15 болд",бг="#А020ф0")
негативан = Ознака (гуи, текст="Негативан проценат: ", фонт="ариал 15",бг="#А020ф0")
неутрално = Ознака (гуи, текст="Нуетрални проценат: ", фонт="ариал 15",бг="#А020ф0")
позитивно = Ознака (гуи, текст="Позитиван проценат: ", фонт="ариал 15",бг="#А020ф0")
укупно = Ознака (гуи, текст=„Укупна реченица је: „, фонт="ариал 15",бг="#А020ф0")
тектАреа = Текст (гуи, висина=5, ширина=25, фонт="ариал 15", бг="#цф9ффф")
цхецк = Дугме (гуи, тект="Провери расположење", бг="#е7305б", фонт=("ариал", 12, "одважан"), цомманд=детецт_сентимент)
цлеар = Дугме (гуи, тект="Јасно", бг="#е7305б", фонт=("ариал", 12, "одважан"), цомманд=цлеарАлл)
Излаз = Дугме (гуи, текст="Излаз", бг="#е7305б", фонт=("ариал", 12, "одважан"), цомманд=екит)

Дефинишите четири поља за унос за различита осећања и подесите њихов родитељски прозор и стилове фонта.

 негативноФиелд = Унос (гуи, фонт="ариал 15")
неутралФиелд = Унос (гуи, фонт="ариал 15")
позитивноФиелд = Унос (гуи, фонт="ариал 15")
тоталФиелд = Ентри (гуи, фонт="ариал 15")

Користите мрежу која се састоји од 13 редова и три колоне за укупан изглед. Поставите различите елементе као што су ознаке, поља за унос текста и дугмад у различите редове и колоне као што је приказано. Додајте неопходне подлоге где год је потребно. Подесите лепљив опција да "В" да лево поравна текстове унутар своје ћелије.

 ентерТект.грид (ред=0, цолумн=2, пади=15)
тектАреа.грид (ред=1, цолумн=2, падк=60, пади=10, лепљиво=В)
цхецк.грид (ред=2, цолумн=2, пади=10)
негативна.мрежа (ред=3, цолумн=2, пади=10)
неутрална.мрежа (ред=5, цолумн=2, пади=10)
позитивно.мрежа (ред=7, цолумн=2, пади=10)
укупна.мрежа (ред=9, цолумн=2, пади=5)
негативноФиелд.грид (ред=4, цолумн=2)
неутралФиелд.грид (ред=6, цолумн=2)
позитивноФиелд.грид (ред=8, цолумн=2)
тоталФиелд.грид (ред=10, цолумн=2, пади=10)
цлеар.грид (ред=11, цолумн=2, пади=10)
Екит.грид (ред=12, цолумн=2, пади=10)

Тхе маинлооп() функција каже Питхон-у да покрене Ткинтер петљу догађаја и ослушкује догађаје док не затворите прозор.

 гуи.маинлооп()

Ставите сав код заједно и можете користити резултујући кратки програм да откријете осећања.

Резултат откривања осећања помоћу Питхон-а

Када покренете овај програм, појављује се прозор ВАДЕР Сентимент Анализер. Када смо тестирали програм на позитивној реченици, детектовао ју је са тачношћу од 79%. Покушавајући неутралну и негативну изјаву, програм је успео да детектује са 100% и 64,3% тачности.

Алтернативе за анализу расположења помоћу Питхон-а

Можете да користите Тектблоб за анализу осећања, означавање говора и класификацију текста. Има конзистентан АПИ и уграђени класификатор поларитета осећања. НЛТК је свеобухватна НЛП библиотека која садржи широк спектар алата за анализу текста, али има стрму криву учења за почетнике.

Један од најпопуларнијих алата је ИБМ Ватсон НЛУ. Заснован је на облаку, подржава неколико језика и има функције као што су препознавање ентитета и екстракција кључа. Са увођењем ГПТ-а, можете да користите ОпенАИ АПИ и интегришете га у своје апликације да бисте добили тачна и поуздана осећања купаца у реалном времену.