Analiza sentimentelor de text ( analiza sentimentelor , ing. Analiza sentimentelor , ing. Miningul de opinii [1] ) este o clasă de metode de analiză a conținutului în lingvistica computațională , concepută pentru detectarea automată a vocabularului colorat emoțional din texte și evaluarea emoțională a autorilor (opinii) în raport cu obiectele la care se face referire în text .
Sentimentul este atitudinea emoțională a autorului enunțului față de un obiect (un obiect al lumii reale, un eveniment, un proces sau proprietățile/atributele acestora), exprimată în text. Componenta emoțională, exprimată la nivelul unui lexem sau al unui fragment comunicativ, se numește tonalitate lexicală (sau sentiment lexical). Tonalitatea întregului text în ansamblu poate fi definită ca o funcție (în cel mai simplu caz, suma) a tonalității lexicale a unităților sale constitutive ( propoziții ) și a regulilor de combinare a acestora [2] .
Scopul principal al analizei sentimentelor este de a găsi opinii în text și de a identifica proprietățile acestora. Ce proprietăți vor fi investigate depind de sarcina în cauză. De exemplu, scopul analizei poate fi autorul, adică persoana care deține opinia.
Opiniile sunt împărțite în două tipuri [3] :
Opinia imediată conține declarația autorului despre un obiect. Definiția formală a unei opinii imediate arată astfel: „o opinie imediată este un tuplu de cinci elemente (e, f, op, h, t) [2] , unde:
Exemple de scoruri de ton [4] :
Prin „neutru” se înțelege că textul nu conține nuanțe emoționale. Pot exista și alte partituri tonale .
În sistemele moderne de determinare automată a evaluării emoționale a unui text, cel mai des este folosit spațiul emoțional unidimensional: pozitiv sau negativ (bun sau rău). Cu toate acestea, sunt cunoscute și cazuri de succes de utilizare a spațiilor multidimensionale [5] [6] .
Sarcina principală în analiza sentimentelor este de a clasifica polaritatea unui document dat, adică de a determina dacă opinia exprimată într-un document sau o propunere este pozitivă, negativă sau neutră. Clasificarea sentimentelor mai extinsă, „în afara polarității” este exprimată, de exemplu, prin stări emoționale precum „furios”, „trist” și „fericit”.
Clasificare la scară binarăPolaritatea documentului poate fi determinată de binarul din scară. În acest caz, sunt utilizate două clase de evaluări pentru a determina polaritatea documentului: pozitivă sau negativă. Unul dintre dezavantajele acestei abordări este că componenta emoțională a documentului nu poate fi întotdeauna determinată fără ambiguitate, adică documentul poate conține semne de evaluări atât pozitive, cât și negative [4] . Lucrările timpurii în acest domeniu includ Turney [7] și Pang [8] care folosesc diferite metode pentru a recunoaște polaritatea recenziilor de produse și, respectiv, a recenziilor de filme. Acesta este un exemplu de lucru la nivel de document.
Clasificare la scară multibandăEste posibil să se clasifice polaritatea unui document pe o scară multibandă, care a fost întreprinsă de Pang [9] și Snyder [10] (printre alții). Ei au extins sarcina principală de clasificare a recenziilor filmelor de la o evaluare „pozitivă sau negativă” spre prezicerea unei evaluări pe o scară de 3 sau 4 puncte. În același timp, Snyder a efectuat o analiză aprofundată a recenziilor restaurantelor, prezicând evaluările diferitelor proprietăți precum mâncarea și atmosfera (pe o scară de 5 puncte) [10] .
Sisteme de scalareO altă metodă de definire a sentimentului este utilizarea sistemelor de scalare, prin care cuvintelor asociate în mod normal cu sentimente negative, neutre sau pozitive li se atribuie numere pe o scară de la -10 la 10 (de la cel mai negativ la cel mai pozitiv). Mai întâi, o bucată de text nestructurat este examinată folosind instrumente și algoritmi de procesare a limbajului natural , apoi obiectele și termenii extrași din acest text sunt analizați pentru a înțelege sensul acestor cuvinte. [11] .
Subiectivitate/obiectivitateO altă direcție de cercetare este identificarea subiectivității/obiectivității [12] . Această sarcină este de obicei definită ca atribuirea unui text dat uneia dintre cele două clase: subiectiv sau obiectiv . Această problemă poate fi uneori mai complexă decât clasificarea polarității: subiectivitatea cuvintelor și expresiilor poate depinde de contextul lor , iar un document obiectiv poate conține propoziții subiective (de exemplu, un articol de știri care citează opiniile oamenilor). Mai mult, așa cum a menționat Su [12] , rezultatele depind mai mult de definiția subiectivității utilizată în contextul adnotărilor de text. Oricum ar fi, Pang [13] a arătat că eliminarea propozițiilor obiective din document înainte de clasificarea polarității a ajutat la îmbunătățirea acurateței rezultatelor.
Modelul de analiză mai detaliat se numește analiză bazată pe caracteristici/aspecte. Acest model se referă la definirea opiniilor sau sentimentelor exprimate de diferite funcții sau aspecte ale entităților, cum ar fi cele ale unui telefon mobil, ale unei camere digitale sau ale unei bănci. O proprietate/aspect este un atribut sau o componentă a unei entități care este examinată pentru sentiment, cum ar fi ecranul unui telefon mobil sau calitatea unei fotografii. Această problemă necesită rezolvarea unui număr de sarcini, de exemplu, identificarea entităților relevante, extragerea funcțiilor/aspectelor acestora și determinarea dacă opinia exprimată cu privire la fiecare funcție/aspect este pozitivă, negativă sau neutră. O discuție mai detaliată pe acest subiect poate fi găsită în manualul NLP , în capitolul „Analiza sentimentului și subiectivității” [14] .
Calculatoarele pot efectua analiza automată a textelor digitale folosind elemente de învățare automată , cum ar fi analiza semantică latentă, mașina vectorului de suport , punga de cuvinte și focalizarea semantică în acest domeniu [7] . Metode mai sofisticate încearcă să identifice proprietarul sentimentului (adică, persoana) și ținta (adică, entitatea despre care sunt exprimate sentimentele). Pentru a determina opinia, ținând cont de context, se folosesc relații gramaticale dintre cuvinte [15] .
Relațiile de conexiune gramaticală se obțin pe baza unei analize structurale profunde a textului. Analiza sentimentelor poate fi împărțită în două categorii separate [16] :
Cele mai notabile diferențe dintre cele două constă în eficiența sistemului și acuratețea analizei. Programele computerizate de analiză automată a sentimentelor folosesc algoritmi de învățare automată, instrumente de statistică și procesarea limbajului natural pentru a procesa cantități mari de text, inclusiv pagini web , știri online, texte pentru grupuri de discuții pe Internet, recenzii online, bloguri web și rețele sociale .
Există o serie de tezauri special etichetate în ceea ce privește componenta emoțională. Astfel de dicționare, descrise mai jos, sunt necesare pentru programele de calculator atunci când se analizează sentimentul unui text.
Un exemplu pentru dezvoltarea WordNet-Affect a fost extensia multilingvă a WordNet numită WordNet Domain [17] . În extensia de domeniu WordNet, fiecărui synset îi este atribuită cel puțin o etichetă de domeniu („etichetă de domeniu”), de exemplu: sport, politică, medicină. În total, aproximativ două sute de etichete de subiect au fost incluse în structura organizată ierarhic [18] .
WordNet-Affect este un tezaur semantic în care conceptele asociate cu emoțiile („concepte emoționale”, „concepte afective” în engleză) sunt reprezentate folosind cuvinte care au o componentă emoțională („cuvinte emoționale”, „cuvinte afective” în engleză) [17] . WordNet-Affect constă dintr-un subset de synset-uri WordNet [19] unde fiecare synset corespunzător unui „concept emoțional” poate fi reprezentat folosind „cuvinte emoționale” [17] .
Astfel, WordNet-Affect a fost creat pe baza WordNet pentru engleză (există și versiuni ale WordNet-Affect pentru alte limbi [20] ) prin selectarea și atribuirea de seturi de sinonime (synseturi) diferitelor concepte emoționale. În special, synseturile de verbe, substantive, adjective, adverbe, care reprezintă descrierea emoțiilor, au fost etichetate manual folosind etichete emoționale speciale (etichete afective, etichete A) [21] . Aceste etichete emoționale caracterizează diverse stări care exprimă dispoziții, răspunsuri emoționale sau situații care evocă emoții [21] . Exemple de astfel de etichete emoționale sunt date în următorul tabel [22]
etichetă emoțională | Exemplu |
---|---|
emotie _ | substantiv furia #1, cap. frica#1 (teama) |
stare de spirit _ | substantiv ostilitate#1 (animozie), adj. amabil#1J (amiabil) |
trasatura _ | substantiv agresivitate # 1 (agresivitate), adj. Competitiv #1 (competitiv) |
Stare cognitivă | substantiv confuzie#2 (confuzie), adj. șocat #2 (amețit) |
Stare fizică | n. boala#1 ( llness), adj. epuizat#1 (tot în) |
Semnal hedonic | substantiv durere#3(rănire), n. suferință#4 (suferință) |
Situații care provoacă emoții | substantiv stangacie #3 (stangacie), n. securitate #1 (în afara pericolului) |
Răspunsuri emoționale | substantiv sudoare rece#1 (sudare rece), cap. tremur#2 (tremur) |
Acțiuni (comportament) | substantiv infracțiune # 1 (infracțiune), adj. inhibat#1 (inhibat) |
Atitudine, poziție (atitudine) | substantiv intoleranță #1 (intoleranță), substantiv. poziție defensivă #1 (defensivă) |
sentiment _ | substantiv frig#1 (răceală), cap. simt #3 (simți) |
De asemenea, WordNet-Affect folosește etichete emoționale suplimentare pentru a separa synset-urile în funcție de valența lor emoțională. Pentru aceasta, sunt definite patru etichete emoționale suplimentare: pozitiv, negativ, ambiguu și neutru [21] . Primul corespunde emoțiilor pozitive, care sunt definite ca stări emoționale caracterizate prin prezența unor indicii (sau plăcere) hedonice pozitive. Include astfel de synsets precum bucuria #1 sau pasiunea #1. În mod similar , o etichetă negativă identifică emoțiile negative caracterizate de semne hedonice negative (sau durere), cum ar fi furia#1 sau tristețea#1. Synset-urile reprezentând stări emoționale a căror valență depinde de contextul semantic (de exemplu, surpriza #1) sunt marcate ca ambigue . În cele din urmă, synseturile care definesc stările psihologice și sunt întotdeauna considerate ambigue, dar necaracterizate prin valență, sunt neutre [21] .
Synset-urile marcate cu etichete emoționale sunt reetichetate în plus cu șase categorii emoționale: bucurie, frică, furie, tristețe, dezgust, surpriză. Astfel, structura fizică a WordNet-Affect este formată din șase fișiere: anger.txt, disgust.txt, fear.txt, joy.txt, sadness.txt, surprise.txt , unde fiecare fișier este o descriere a unei categorii [23] . În prezent, WordNet-Affect conține 2874 synsets și 4787 cuvinte [24] .
Oamenii de știință de la Universitatea Tehnică din Moldova au tradus sintezele WordNet-Affect din engleză în rusă și română, au efectuat alinierea lor: engleză - română - rusă [25] . Resursa este disponibilă online în scopuri de cercetare [23] .
SentiWordNet este un tezaur semantic lexical, a cărui primă versiune a fost dezvoltată în 2006. [26] Versiunea curentă a SentiWordNet este SentiWordNet 3.0 [26] , care oferă o îmbunătățire a preciziei cu peste 20% față de prima versiune [26] .
Acest sistem este rezultatul unui proces de adnotare automată a fiecărui synset WordNet (set de sinonime) în funcție de gradul său de pozitivitate, negativitate și obiectivitate [27] . Astfel, fiecărui rând sinonimic din WordNet îi sunt atribuite trei scoruri numerice, unde fiecare dintre aceste scoruri determină respectiv componenta obiectivă, pozitivă sau negativă a synset-ului [26] . Fiecare dintre aceste estimări ia valori în intervalul de la 0 la 1, iar în total dau 1 (unul), adică fiecare dintre aceste estimări poate avea o valoare diferită de zero [26] . Termenii care pot avea valori diferite pot avea și valori de evaluare diferite [26] .
Procesul de învățare SentiWordNet a constat în doi pași: [28] .
SentiWordNet este licențiat sub CC BY-SA 3.0 . Această licență vă permite să utilizați în mod liber SentiWordNet în scopuri comerciale și științifice, cu condiția să fie indicate numele creatorilor. [27] Oricine poate descărca gratuit fișiere SentiWordNet de pe site-ul oficial. De asemenea, puteți descărca o mică clasă Java care demonstrează cum să lucrați cu SentiWordNet [27] .
SenticNet este un alt tezaur semantic pentru a trata seturi de concepte emoționale. SenticNet este un proiect lansat la Massachusetts Institute of Technology Media Lab în 2010 [30] . De atunci, proiectul SenticNet a fost dezvoltat în continuare și este folosit pentru a proiecta aplicații inteligente concepute pentru a analiza componenta emoțională a textului și care acoperă o serie de sarcini de la data mining până la organizarea interacțiunii om-calculator [30] . Scopul principal al SenticNet este de a simplifica procedura de recunoaștere automată a informațiilor conceptuale și emoționale transmise folosind limbajul natural [30] . Dacă comparăm alte tezaure lexicale, cum ar fi SentiWordNet și WordNet-Affect cu SenticNet, atunci diferența lor principală va fi că SentiWordNet și WordNet-Affect asigură legarea cuvintelor și conceptelor emoționale la nivel sintactic, nepermițând identificarea componentei semantice, de exemplu, „atingerea scopului”, „senzație neplăcută”, „sărbătorește o ocazie specială”, „pierde-ți cumpătul” sau „fii în al șaptelea cer”, în timp ce SenticNet conectează conceptele la nivel semantic [31] .
Cea mai recentă versiune este SenticNet 2 [32] . Spre deosebire de SenticNet 1 [32] , care atribuie pur și simplu o valoare de sentiment la aproximativ 5.700 de concepte din corpus OpenMind, SenticNet 2 oferă semantică și „sentics” (adică informații cognitive și „emoționale”) asociindu-se cu peste 14.000 de concepte și permite mai mult analiză profundă și multifațetă a textului în limbaj natural în comparație cu SenticNet 1 [32] . SenticNet 2 este construit cu „sentic computing”, o paradigmă care utilizează tehnici AI și Web Semantic pentru a îmbunătăți recunoașterea, interpretarea și procesarea opiniilor în limbajul natural [32] .
„Sentic computing” este o abordare interdisciplinară a analizei sentimentelor la răscrucea dintre „ calculul afectiv ” și „calculul de bun simț” [33] . Termenul de „calculatură de bun simț” se referă la o serie de inițiative menite să asigure că computerele reprezintă cunoștințe despre orice în forma în care o persoană le înțelege și că computerele sunt capabile să tragă concluzii logice pe baza acestor cunoștințe [34] . O astfel de abordare interdisciplinară presupune utilizarea instrumentelor informaționale și de științe sociale pentru a îmbunătăți recunoașterea, interpretarea și prelucrarea opiniilor și sentimentelor [33] . În special, Sentic computing implică utilizarea metodelor de inteligență artificială și a rețelei semantice - pentru reprezentarea cunoștințelor și a rezultatelor acesteia; matematică - pentru rezolvarea de probleme precum procesarea graficelor și reducerea dimensionalității ; lingvistică pentru analiză discursivă și pragmatică; psihologie - pentru modelare cognitivă și emoțională; sociologie, pentru a înțelege dinamica rețelelor sociale și influența socială; și în cele din urmă etica, pentru a înțelege natura minții și a crea mașini emoționale. „Sentic-calculele” permit analizarea documentelor nu numai la nivel de pagini întregi și de texte, ci și la nivel de propoziții, ceea ce face posibilă evaluarea textelor la un nivel mai ridicat de detaliu [33] .
Pentru a prezenta datele SenticNet într-o formă care poate fi citită de mașină, adecvată procesării de către programe de calculator, datele sunt codificate în triplete RDF folosind sintaxa XML. Un exemplu de fișier XML pentru conceptul „dragoste” poate fi vizualizat pe site-ul proiectului la următorul link [35] . De exemplu, dacă un concept precum „zi de naștere” este întâlnit în timpul aplicației, atunci SenticNet îl va atribui conceptului de nivel înalt de „evenimente” și îl va asocia cu un set de concepte legate semantic, de exemplu, „dulce”, „surpriză prietenoasă” sau „clovn” (care poate fi folosită ca sursă de informații suplimentare/contextuale pentru îmbunătățirea rezultatelor căutării) [36] . SenticNet asociază, de asemenea, fiecare concept cu un „vector-sentic” cu valori numerice ale unor cantități precum Plăcut (plăcut), Atenție (atenție), Sensibilitate (sensibilitate) și Aptitudine (capacitate) [37] , precum și valoarea tonalității (pentru sarcini precum analiza tonului textului), starea de spirit principală și suplimentară, precum și un set de concepte apropiate din punct de vedere emoțional, de exemplu, „vacanță” sau „ocazie specială” (pentru sarcini precum determinarea tonul textului) [36] .
Oricine poate descărca gratuit SenticNet 2 de pe site-ul oficial [38] .
Această metodă se bazează pe căutarea vocabularului emotiv [39] (sentiment lexical) în text conform dicționarelor și regulilor tonale compilate anterior folosind analiza lingvistică. În funcție de totalitatea vocabularului emotiv găsit, textul poate fi evaluat pe o scală care conține cantitatea de vocabular negativ și pozitiv. Această metodă poate folosi atât liste de reguli care sunt înlocuite în expresii regulate, cât și reguli speciale pentru conectarea vocabularului tonal într-o propoziție. Pentru a analiza textul, puteți utiliza următorul algoritm: mai întâi, atribuiți fiecărui cuvânt din text valoarea sentimentului său din dicționar (dacă este prezent în dicționar), apoi calculați sentimentul general al întregului text prin însumarea sentimentului. valoarea fiecărei propoziții individuale [39] .
Principala problemă a metodelor bazate pe dicționare și reguli este laboriositatea procesului de compilare a unui dicționar. Pentru a obține o metodă care clasifică un document cu o acuratețe ridicată, termenii dicționarului trebuie să aibă o pondere adecvată domeniului documentului. De exemplu, cuvântul „uriaș” în raport cu cantitatea de stocare pe hard disk este o caracteristică pozitivă, dar negativă în raport cu dimensiunea unui telefon mobil. Prin urmare, această metodă necesită costuri semnificative cu forța de muncă, deoarece trebuie compilat un număr mare de reguli pentru ca sistemul să funcționeze bine. Există o serie de abordări care vă permit să automatizați compilarea dicționarelor pentru un anumit domeniu (de exemplu, subiectul restaurantelor sau subiectul telefoanelor mobile) [40] .
În zilele noastre, cele mai frecvent utilizate metode în cercetare sunt metodele de învățare automată supravegheată . Esența unor astfel de metode este că, în prima etapă, un clasificator de mașină (de exemplu, Bayesian [41] ) este antrenat pe texte pre-marcate, iar apoi modelul rezultat este utilizat atunci când se analizează documente noi. Să descriem un algoritm scurt [42] :
Această abordare se bazează pe ideea că termenii care apar mai des în acest text și în același timp sunt prezenți într-un număr mic de texte din întreaga colecție au cea mai mare pondere în text. Evidențiind acești termeni, iar apoi determinând tonul lor, putem trage o concluzie despre tonul întregului text [41] .
Această metodă se bazează pe presupunerea că nu toate cuvintele din corpus de text al unui document sunt echivalente. Unele cuvinte au mai multă greutate și au un efect mai puternic asupra tonului textului. Folosind această metodă, analiza sentimentelor este împărțită în mai mulți pași:
Puteți citi mai multe despre punctele 1 și 2 în lucrarea „Extragerea termenilor din textele în limba rusă folosind modele grafice” de D. A. Ustalov [43] .
Pentru a clasifica cuvintele, se folosește un dicționar de tonuri, în care fiecărui cuvânt i se atribuie o evaluare, cum ar fi „pozitiv”, „negativ” sau „neutru”. Pentru a obține rezultatul final, este necesar să se calculeze valorile a două evaluări: componenta pozitivă a textului și cea negativă. Pentru a găsi componenta pozitivă a textului, este necesar să se găsească suma sentimentelor tuturor termenilor pozitivi ai textului, ținând cont de ponderea acestora. Valoarea componentei negative a textului se regăsește în mod similar. Pentru evaluarea finală a sentimentului întregului text, trebuie să calculați raportul acestor componente conform formulei: , unde T este evaluarea finală a sentimentului, P este evaluarea componentei pozitive a textului și N este componenta negativă a textului. În conformitate cu articolul lui Menshikov [44] , un text în care valoarea lui T este apropiată de unu va fi considerat neutru, dacă depășește ușor 1 - pozitiv. Dacă depășește cu mult 1, atunci este puternic pozitiv. Opusul este valabil și pentru textele cu sentimente negative [45] . Această metodă este considerată mai detaliat în lucrările lui Goldberg [46] și Ponomareva [47] .
Acuratețea și calitatea sistemului de analiză a sentimentelor textului este evaluată prin cât de bine este de acord cu opinia persoanei cu privire la evaluarea emoțională a textului studiat. Pentru aceasta pot fi utilizate metrici precum precizia și rechemarea [48] . Formula pentru găsirea completității:
unde opiniile extrase corect sunt opinii definite corect, numărul total de opinii este numărul total de opinii (atât găsite de sistem, cât și negăsite) [48] . Precizia este calculată prin formula [48] :
unde opiniile extrase corect sunt opinii definite corect, numărul total de opinii găsite de sistem este numărul total de opinii găsite de sistem [48] . Astfel, acuratețea exprimă numărul de texte, propoziții sau documente studiate, în evaluarea cărora opinia sistemului de analiză a sentimentelor a coincis cu opinia expertului. În același timp, conform studiului, experții sunt de obicei de acord asupra sentimentului unui anumit text în 79% din cazuri [49] . Prin urmare, un program care detectează tonul unui text cu o acuratețe de 70% o face aproape la fel de bine ca un om.
procesarea limbajului natural | |
---|---|
Definiții generale | |
Analiza textului |
|
Referire |
|
Traducere automată |
|
Identificarea și colectarea datelor | |
Model tematic | |
Evaluare inter pares |
|
Interfață în limbaj natural |