Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Neticle bce om_preso_20121113
1. Neticle Technologies
Automatikus véleményelemzés
Szekeres Péter, vezető kutató
peter.szekeres@neticle.hu
tel.: +36 70 7016488
www.neticle.hu
Budapest, 2012.11.13. www.neticle.hu
2. A véleményelemzés vagy sentiment analysis
célja olyan algoritmusok kialakítása, melyek
számszerűsítik különböző szövegek
véleménypolaritását valamilyen pozitív-negatív
skálán.
Budapest, 2012.11.13. www.neticle.hu
4. Mire lehet használni?
Összehasonlítás versenytársakkal
Kampányok, események hatásainak vizsgálata
Automatikus értesítések (erősen negatív tartalmak esetén)
Fő ellenző és fő támogató felhasználók azonosítása
Fő ellenző és fő támogató weboldalak
Ad-hoc elemzések végrehajtása
Budapest, 2012.11.13. www.neticle.hu
5. WebLib
Neticle
Magyar szereplők
MorphoLogic
OpinHu
Budapest, 2012.11.13. www.neticle.hu
7. Text mining
Data mining
NLP
Machine learning
Budapest, 2012.11.13. www.neticle.hu
8. Magyar nyelvű szövegek
automatikus feldolgozásának
nehézségei
Budapest, 2012.11.13. www.neticle.hu
9. Utóragozás sisak, reggel, folyamod
Tikk (2007) szerint egy főnévnek akár 1400, melléknévnek akár 2700
alakja lehet
Budapest, 2012.11.13. www.neticle.hu
10. Hunglish kifejezések
júzerrel, lájkol, szisztem, deployol
Budapest, 2012.11.13. www.neticle.hu
11. Szleng és webes szleng
lol, lolz, omg, sz@r, f@ck u, mind1, h, zomg
Budapest, 2012.11.13. www.neticle.hu
12. Tagadószavakkal és tiltószavakkal (például: sem,
nem, se, ne, se nem, sincs, nincs, sincsen,
nincsen),
Tagadás
Fosztóképzők (például: -atlan, -etlen, -mentes)
Budapest, 2012.11.13. www.neticle.hu
13. Beviteli eszköz miatti sajátosságok
Karakterkódolási nehézségek
Budapest, 2012.11.13. www.neticle.hu
15. Szint Levágandó Példa
Nincs -
0.
levágás
1. Ragok Többes szám első személy ragja: Fizetünk -> Fizet
Ragok és Többes szám első személy ragja: Fizetünk -> Fizet
2. jelek Többes szám első személy ragja + múlt idő jele:
Fizettünk -> Fizet
Ragok, jelek Többes szám első személy ragja: Fizetünk -> Fizet
és képzők Többes szám első személy ragja + múlt idő jele:
3.
Fizettünk -> Fizet
Igenévi képző: Fizetendő -> Fizet
Ragok, Többes szám első személy ragja: Fizetünk -> Fizet
jelek, Többes szám első személy ragja + múlt idő jele:
4. képzők és Fizettünk-> Fizet
igekötők Igenévi képző: Fizetendő -> Fizet
Igekötő: Megfizet -> Fizet
Budapest, 2012.11.13. www.neticle.hu
17. Szótár alapú szótövezés Szabály alapú szótövezés
Lassú Gyors
Teljesítmény
Elméletileg 100%-os Kivételszótár bevezetésével
Pontosság pontosságot is elérhet meglehetősen pontos
Csak azokra szóalakokra Új szavak esetén elég csak a
működik, amelyek kivételszótárakat bővíteni,
Skálázhatóság
szerepelnek a azt is csak szükség esetén
szótárakban.
Kivételes, Kivételek, rendhagyó Kivételek nehézkes
rendhagyó esetek hatékony kezelése
esetek kezelése Kivétel szótárak
kezelése bevezetésével történik
Nyelvfüggetlen megoldás Nyelvfüggő megoldás, jelentős
Nyelvfüggőség nyelvspecifikus
ismereteket igényel
Bővíthetőség, Egyszerű bővíthetőség Nehézkes bővíthetőség
fejleszthetős
ég
Fáradságos szótárépítés Bonyolult szabályrendszer
Megvalósítás
Folyamatos karbantartás építés
Budapest, 2012.11.13. www.neticle.hu
18. HunStem
Példák
magyar nyelvű
Tordai Anna szótövezésre
Neticle szótövezője
Budapest, 2012.11.13. www.neticle.hu
22. Tényező Leírás Szövegbányás Feladat
zati nehézsé
feladat ge
Cél entitás Amire a vélemény Névelem Nehéz
vonatkozik, például: azonosítás
iPhone
Aspektus, A cél entitás tulajdonsága Információkinye Nehéz
attribútum vagy részeleme, amire a rés
vélemény vonatkozik.
Vélemény Maga a - többnyire Véleménykinyer Könnyű
szubjektív - vélemény és
Forrás Az a személy (felhasználó) Információkinye Nehéz
aki megfogalmazta a rési és
véleményt névelem
azonosítási
feladat
Idő A vélemény Információkinye Nehéz
megjelenésének/keletkez rési és
ésének ideje névelem
azonosítási
feladat
Budapest, 2012.11.13. www.neticle.hu
27. Dokumentum beolvasása
Speciális karakterkódolások
kezelése
Dokumentum feldarabolás Tipikus
Stopszavak kiszűrése előfeldolgozási
Többféle írásmód
egyértelműsítése folyamat
Szavak kisbetűssé alakítása
A szavak szótövezése
Dokumentum felbontása karakter
n-grammokra/szavakra/szó n-
grammokra
Vektortérmodell kialakítása
Budapest, 2012.11.13. www.neticle.hu
34. Véleményszó szótár
Vélemény kifejezés szótár
Véleményerősség szótár
Véleménymódosító szótár
A Neticle szótár alapú módszere
Budapest, 2012.11.13. www.neticle.hu
39. Ki Hogyan Nyelv Accuracy
SVM algoritmussal unigrammok
felhasználásával IMDB
weboldal filmkritikáinak
Pang et al (2002) elemzése angol 82,90%
Szubjektivitás osztályozással majd
Naiv Bayes módszerrel
megvalósított hierarchikus
osztályozással IMDB weboldal
Pang et al (2004) filmkritikáinak elemzése angol 86,40%
Hatzivassiloglu Szótár alapú módszerrel a
és szövegekben lévő melléknevek
McKeown orientációja alapján becsülték
(Szaszkó et al, meg dokumentumok
2009 alapján) orientációját angol 78%
Szótár alapú módszerrel
weboldalak szövegének
Neticle véleményelemzése magyar 80,48%
Budapest, 2012.11.13. www.neticle.hu
40. Ki Hogyan Nyelv Accuracy
C4.5 döntési fa algoritmussal
kombinált fórum válaszolási
gráfmegoldással
Berend és Farkas népszavazásról alkotott
(2008) vélemények osztályozása magyar 71,76%
240 magyar nyelvű filmkritika pozitív
negatív osztályozása ún.
robosztus kockázat
minimalizálás elven alapuló
Szaszkó et al (2009) osztályozással. magyar 76%
Ha minden mondatot, a
leggyakoribb, a semleges
Baseline pontosság kategóriába sorolunk magyar 58,71%
Szótár alapú módszerrel weboldalak
Neticle szövegének véleményelemzése magyar 80,48%
Budapest, 2012.11.13. www.neticle.hu
42. Érdeklődőknek ajánlott:
Tikk, D. [2007]: Szövegbányászat, Typotex Elektronikus Kiadó Kft,
Budapest
Liu, B. [2011]: Sentiment Analysis Tutorial. AAAI-2011 Conference, San
Francisco, USA. (letölthető:, utoljára letöltve:
http://www.cs.uic.edu/~liub/FBS/Sentiment-Analysis-tutorial-AAAI-2011.pdf
, 2012. április 19-én)
Miháltz Márton [2010]: OpinHu: online szövegek többnyelvű
véleményelemzése, VII. Magyar Számítógépes Nyelvészeti Konferencia
Berend, G., Farkas, R. [2008]: Opinion Mining in Hungarian based on
textual and graphical clues, in Proceedings of the 4th Intern. Symposium
on Data Mining and Intelligent Information Processing, Santander, 2008.
Budapest, 2012.11.13. www.neticle.hu
Hinweis der Redaktion
Szekeres Péter Neticle Technologies Bemutatkozás
Neticle WebLib MorphoLogic OpinHu
Utóragozás kezelése: a strukturalista nyelvtan nézetet leváltó Noam Chomsky által bevezetett generatív nyelvelmélet új megközelítést hozott a nyelvek kezelésébe. A generatív nyelvelmélet jelentősége a nyelvek és a szövegképzés matematikai megragadásában – algoritmizálásában - rejlik: Chomsky modellje alapján egy nyelvnek végtelen variációja létezhet az alap szókészlet (jelkészlet) és a szó- és szövegképzési szabályok alapján. (Chomsky, 1965) A generatív megközelítés különösen igaz a magyar és a többi agglutináló nyelvre. A toldalékoló és szabad struktúrájú nyelvek automatikus feldolgozására, mint például a magyar, a szózsák modell a leggyakrabban alkalmazott módszer. Ugyanakkor a szövegek szózsák modell alapú feldolgozásához szükséges, hogy az azonos jelentésűnek tekintett szavak azonos alakra kerüljenek, vagyis a gyakorlatban az utóragokat és bizonyos jeleket le kell vágni a szóvégekről. A levágások algoritmizálásánál képezhetőek szabályok, azonban ezeknek figyelembe kell venniük az összeolvadási, részleges vagy éppen teljes hasonulási nyelvtani szabályokat, valamint az olyan szótöveket, melyek valamilyen utóragra végződnek (például: sis ak , reg gel ). Külön probléma azon esetek kezelése, amikor a ragozott és a ragnélküli alak is értelmes szótő, például: folyam od . A problémát jól mutatja, hogy egy igének az igei toldalékolás teljes repertoárját felhasználva több mint 100 formája lehet a magyar nyelvben: Igeidő: 3 Igemód: 3 Személy: 3 Szám: 2 Igenem: 2 Alanyi/Tárgyas ragozás: 2 Összesen : 3 x 3 x 3 x 2 x 2 x 2 = 216 [1] Tikk (2007) szerint egy főnévnek akár 1400, melléknévnek akár 2700 alakja lehet! Hunglish kifejezések: a webes szövegekben, különösen szakmai szövegekben vagy éppen olyan informális médiumokban, mint a közösségi oldalak, fórumok vagy blogok, igen elterjedt az angol nyelvű szavak használata magyar mondatokban, például: trademark , outsourcing , trading , like , system, event, share A webes nyelvi uniformizálódás és mutálódás egy másik jelensége, mikor angol nyelvű szavakat „magyarosítanak” a nyelvhasználók, azaz a kiejtés elve szerint írják le, és a magyar nyelvtan szabályai szerint ragozzák az idegen eredetű szavakat, például: júzerrel , lájkol , szisztem, deployol Szleng és web szleng: amikor webes szövegeket elemzünk, figyelembe kell vennünk, hogy a web nyelvezete modern és sajátos, és általánosak a szleng és webes szleng kifejezések, valamint az emotikonok használata. Különösen igaz mindez érzelmi megnyilvánulásokra: lol , lolz , omg , [email_address] , f@ck u, mind1, h, zomg Beviteli eszköz miatti sajátosságok: a hordozható eszközökről (tipikusan okostelefonokról) történő bevitelnek köszönhetően az informális közösségi oldalakon sokszor találkozhatunk egészen sajátos szintaktikai és szemantikai szabályokat követő mondatokkal és félmondatokkal: Nincsenek ékezetek. Nincsenek nagybetűk Nincsenek írásjelek a szövegben, vagy csak mondatvégi írásjelek használ a szerző. A szavak helyesírása lazán kezelt. Jellemzőek az elgépelések. Ha számítógéppel akarjuk feldolgozni ezeket a kommenteket és hozzászólásokat, akkor az említett jelenségek tömeges előfordulására fel kell készíteni a rendszert. Karakterkódolási nehézségek: kevésbé triviális, de magyar nyelvű webes szövegek számítógépes feldolgozásánál tipikus probléma a karakterkódolás megfelelő kezelése: HTML oldalak letöltésénél illetve szövegek adatbázisba vagy fájlba exportálásánál figyelni kell, hogy a magyar ékezetes betűk (azon belül is elsősorban az ő és ű betűk) megjelenítése megfelelő-e: UTF-8 vagy Latin2 karakterkódolás ajánlott. Szintén HTML oldalak feldolgozásakor lehet probléma, ha az adott kiszolgáló az ékezetes és egyéb különleges karaktereket a szövegben HTML karakterkóddal (például: á -> á) jelöli a forrásfájlban. Ekkor gondoskodni kell a dekódolásról feldolgozás előtt. Kontextus- és szakterületi függőség: vélemények szózsák modell alapú elemzésénél probléma lehet, hogy egy adott szó vagy kifejezés kontextusonként eltérő jelentéssel bírhat: egy kifejezés pozitív egy adott kontextusban, míg ellentétes irányú egy másik kontextusban. Tagadások sokfélesége : a magyar nyelvben a tagadás többféle módon lehetséges: Tagadószavakkal és tiltószavakkal (például: sem, nem, se, ne, se nem, sincs, nincs, sincsen, nincsen ), melyek elhelyezkedhetnek közvetlenül a vagy akár 1 pozícióval a tagadás tárgya előtt illetve után. Fosztóképzők (például: -atlan, -etlen, -mentes) segítségével Egy véleményelemző rendszernél alapkövetelmény, hogy a rendszernek kezelnie kell a különböző tagadásokat (a polaritás negálását), eltérő esetben drasztikusan romlik a véleményelemzés pontossága, mivel pontosan ellentétesen értelmezi az adott véleményt. [1] A valóságban valamivel kevesebb az összes lehetséges alak, mert például a szenvedő igéknek nincsen tárgyas ragozása.
A szótövezés illetve lemmatizálás [1] különösen fontos előfeldolgozási lépés a szöveges adatok számítógépes elemzése során, segítségükkel egységes, kanonikus alakra hozhatóak a szövegek szavai. Definíció szerint : „ a szótövezés egy olyan algoritmus, mely során a toldalékokkal ellátott szó alapján előállítjuk a szótövet .” (Fajszi (2010) 295. oldal) A toldalékok levágásával növelhető a szóelőforduláson vagy több szavas kifejezések előfordulásán alapuló elemzések illetve szöveges keresési feladatok pontossága. Ugyanakkor szövegbányászati elemzések megvalósításánál is figyelembeveendő mind tárhely mind feldolgozási teljesítmény szempontjából, hiszen ha az elemzett szövegeket vektortérmodellben [2] reprezentáljuk, akkor a „ vektortérmodell méretét jelentősen csökkenthetjük, mivel a szóalakonkénti dimenzió helyett a kanonikus alakhoz csak a vektortér egy dimenziója tartozik.” (Tikk (2007) 41. oldal). Az ily módon történő redukció jelentősen csökkentheti egy elemzési alkalmazás tárhely, memória és számítási kapacitás szükségletét. Tikk (2007) szerint angol nyelvre 40-70%, míg nyelvre akár 90%-os méret-megtakarítást is jelenthet a szótövezés. A továbbiakban különbséget teszünk szótövezés és lemmatizálás között: Szótövezés : a toldalékok levágása után maradó szó nem feltétlenül értelmes szóalak a kötőhangok és hangzómódosulások miatt, például: ajtaja -> ajt. Lemmatizálás: „A különböző szóalakok lemmákba való csoportosítása.” (Szirmai (2005) 177. o.) Ahol a lemma az „azonos szótőből származó összes (általában azonos szófajú) szóalakot átfogó kategória, pl. ugrál, ugrik, ugrott stb. A kutatás igényeihez igazodva különböző szófajú alakok is tartozhatnak egy lemmába.” (Szirmai (2005) 177. o.) A lemmákat reprezentáló szóalak önmagában értelmes, normalizált szótári szóalak: ajtaja -> ajtó. (Tikk (2007)) A fenti értelemben a lemmatizálás valamivel bonyolultabb feladat, jellemzően a szótövezési toldalék-levágási eljárások kiegészítése utófeldolgozási transzformációkkal. A problémát nehezíti, hogy az utófeldolgozási kiegészítő lépések gyakorlatilag egyediek a magyar nyelv szavai esetén. [3] Nem agglutináló nyelveknél a szótövezés és a lemmatizálás feladat között nincs jelentős különbség. A bonyolultsága ellenére az értelmes alakot adó lemmatizálás ajánlott, mivel az így kapott dokumentum reprezentációk ugyanúgy kanonikus szóalakok halmazán alapulnak – megvalósítva a szókészlet redukció minden előnyét -, emellett pedig tökéletesen alkalmasak a kapott értelmes szóalakok a további feldolgozásra, például akár közvetlenül megjeleníthetőek a felhasználó számára egy alkalmazásban szógyakorisági diagram vagy szófelhő formájában. [4] [1] Angolul: stemming [2] A vektortérmodell lényege, hogy egy dokumentumot szavakra bontunk, és a benne előforduló szavak ábrázoljuk. Egy dokumentumhalmaz esetén ez azt jelenti, hogy a korpuszt egy jellemzően igen nagy méretű kétdimenziós ritkamátrix-szal reprezentáljuk előfeldolgozás után, ahol a mátrix egy egyik dimenziója a dokumentumokat, a másik pedig a korpuszban előforduló szavakat jelöli. A mátrix mezői jelölik, hogy adott dokumentumban az adott szó szerepel-e. (A bináris értékeken mellett más értékeket is szoktak számolni a vektortérmodell mezőibe, például gyakoriságokat, vagy normált gyakoriságokat, stb. (lásd még: TF-IDF súlyozás)). [3] Például az angol nyelvre készített egyik első szótvöező, a Lovins-tövező gyengepontja volt ez az utólagos transzformáció. [4] A Smirnov (2008) által hivatkozott Frakes (1984) ennek ellenkezője mellett érvel, szerinte a szótövezés/lemmatizálás nyugodtan adjon önmagában nem értelmes tő alakot, mivel belső feldolgozásnál a kanonikus alak jellemzően csak egy dimenzió vagy attribútum. Frakes azonban figyelmen kívül hagyja az eredmények felhasználóbarát megjelenítését, csak a belső elemzés hatékonyságát tartja szem előtt.
Algoritmikus, nyelvspecifikus transzformációs szabályok: nagy teljesítményre képes megoldások, melyek pontossága kivételszótárral erősen javítható. Megvalósításaik komoly nyelvészeti ismereteket igényel. Ilyen, átírásos szabályhalmazon alapuló módszer például Porter algoritmusa (lásd: 5.3.4 fejezet) vagy az annak működési elvét több nyelvre alkalmazó, szintén Porter által készített Snowball szótövezési keretrendszer (lásd: 5.3.5 fejezet). Szavakat és szótöveiket alkalmazó szótárak alkalmazása: jól kezeli a rendhagyó eseteket, azonban a szótár felépítése meglehetősen időigényes, és folyamatos karbantartást igényel. Egyéb, statisztikai módszerek : jellemzően nyelvfüggetlen megoldások. Például: Szavakat és toldalékokat tartalmazó szótárakban a szavak lehetséges felbontásainak előfordulásainak ellenőrzése. Szótárklaszterezés útján történő vizsgálat, annak megállapítására, hogy melyik szavakhoz tartozhat azonos tő.
HunStem A HunStem a BME MOKK [1] által fejlesztett szabály és szótár alapú szótövező. A HunStem az ún. HunLex keretrendszerben megvalósított morphdb.hu [2] adatbázison alapul és a hozzá kapcsolódó nyelvi eszközök (HunTools: HunStem, HunSpell, HunMorph) egyike. A HunStem a nyelvtani szabályrendszere (morfológiai erőforrásai) mellett használ a szótövezéshez egy tőtárat és egy affixumtárat (lexikai erőforrás). A lexikai és morfológiai erőforrásokat a HunLex rendszer állítja elő a belső komplex nyelvtani rendszere és nyelvet leíró átfogó lexikona alapján attól függően, hogy például gyenge (inkább alultövezésre hajlamos) vagy erős (inkább túltövezésre hajlamos) tövezési algoritmusra van szükség az adott feladathoz. (A rendszer szótára több mint 120 000 magyar lemmát tartalmaz.) Tordai-féle magyar Snowball alapú szótövező Tordai Anna megoldása az úgynevezett inflexiós toldalékokat vágja le, azaz csak a ragokat és jeleket, a képzőket nem. Ez megfelel az általam magyar nyelvre definiált 2. szótövezési szintnek. Tordai Anna 4 féle szótövező algoritmust alakított ki magyar nyelvre (Tordai, 2005). Ezek jellemzői: LIGHT1 : „ csak a leggyakoribb 14 főnévi esetet kezeli. Ennek ellenére már ez is jelentékenyen javíthatja a keresési hatékonyságot .” (Tikk, 2007) LIGHT2 : „ 21 esetet kezel, valamint a LIGHT1 által figyelmen kívül hagyott egykarakteres toldalékok közül az akkuzativusz (tárgyrag -t) és szuperesszívusz (-n) toldalékokat is levágja. Mindkét szótövező figyelembe veszi a szótőjelölt hosszát és, hogy tartalmaz-e érvényes mássalhangzó–magánhangzó kombinációt .” (Tikk, 2007) MEDIUM : „ 12 gyakori főnévi esetet kezel, a birtokos és birtokok, valamint a személyek számát is figyelembe véve. Ezen kívül kezeli a leggyakoribb igealakokat (idő, szám, személy), a melléknevek fokozását, valamint a számneveknél a törtszámnév és sorszámnév toldalékait.” (Tikk, 2007) HEAVY : „ mind a 21 esetet és az összes igealakot figyelembe veszi.” (Tikk, 2007) Az egyes megoldások az alkalmazott szabályokban és lépésekben különböznek. Homonimák esetén a rövidebb alakot adja vissza a megoldás, valamint a Heavy verzió már erősen túltövez. Jellemző hibája a t végű szavak túltövezése a tárgyrag és a múlt idő jele miatti levágások miatt. A készítők a CLEF[3] 2005 magyar nyelvű korpuszán végzett kutatásaik során azt tapasztalták, hogy a Light2 és a Heavy tövezők az információ-visszakeresés[4] során magasabb felidézést nyújtanak a szótövezés nélküli, illetve a másik két verzión alapuló megoldásnál. A Heavy verzió a túltövezési tulajdonsága miatt azonban rosszabb pontossággal bírt, ezért a Light2 verziót találták a legalkalmasabbnak a készítők információ visszakeresési feladatokhoz.[5] [1] Budapesti Műszaki Egyetem Média Oktató és Kutató Központ [2] Lásd: http://mokk.bme.hu/resources/morphdb-hu/ [3] Common Language Evaluation Forum [4] Information retrieval [5] A teljes értékeléshez hozzá tartozik, hogy a korpusz szavainak 65%-a főnév, 12%-a melléknév és 10% ige, és az egyes verziók közötti különbség pontosan a szófaji gyakori esetek kezelésén illetve nem kezelésén alapszik (Tikk, 2007), tehát egy kevesebb főnevet tartalmazó korpuszon eltérő eredmények születhetnek a legjobb verzió megállapítása során.
A véleményelemzés a természetes nyelvfeldolgozás (NLP)[1] részterülete, de rendkívül nehéz feladat, több fontos szempontot, illetve nehézséget is kezelni kell egy véleményelemzési megoldás tervezésekor. Liu (2011) kiemeli, hogy a véleményelemzési probléma definiálásakor két alapfeladat van: Meghatározni, hogy mi számít véleménynek : hogyan különítjük el az objektív negatív történéseket a szubjektív véleménynyilvánításoktól, illetve egyáltalán elkülönítjük-e. Ha az elemzés mondat szinten történik, akkor jellemzően egy felügyelt tanítással tanított modell (naiv Bayes vagy SVM algoritmust használva) segítségével előbb osztályozzák a mondatokat aszerint, hogy objektív vagy szubjektív mondatokról van-e szó, és csak a szubjektív mondatok polaritását vizsgálják. Összefoglalni a véleményeket : a véleményelemzés akkor jó, ha sikerül rengeteg vélemény gyűjteni és elemezni. Azonban a kiértékelésnél, és az eredmények összefoglalásánál fontos feladat a vélemények – jellemzően kvantitatív - tömörítése, hogy az eredmények felhasználhatóak és értelmezhetőek legyenek. [1] Natural Language Processing
Meghatározni, hogy mi számít véleménynek Összefoglalni a véleményeket
A véleményelemzés során a dokumentum feldarabolása kisebb egységekre eltérő eredményekhez vezethet. A kisebb egységekben könnyebben meghatározható, hogy egy direkt vélemény a kutatás tárgyára vonatkozik-e vagy sem. Azonban az egyes szövegegységek közötti névmási és egyéb hivatkozások, illetve utalások jóval nehezebben dolgozhatóak fel. A kisebb egységek aggregált értékei adják a nagyobb egységek polaritását.
Vélemények azonosítása során azt is meg kell határozni a lehető legpontosabban, hogy mire vonatkozik a vélemény. Liu (2011) kiemeli az attribútum (aspektus) alapú véleményelemzést, melynek lényege, hogy nem csak célobjektum egészére vizsgáljuk az értékeléseket, hanem annak bizonyos részegységeire, jellemzőire is. Az aspektusokra lehet egyszerű egyszintű hierarchikus lebontás, de szükség esetén lehet egészen komplex többszintű taxonómia vagy objektum modell is. Liu (2011) javaslata alapján ökölszabályként használható, hogy a vélemény kifejezéshez legközelebb eső főnévre vonatkozik a vélemény. A vélemény tárgyának felismerését nehezíti, hogy az aspektusok (például ár) lehetnek explicite megemlítve a szövegben: túl magas az ára, de lehetnek implicit módon is: túl drága. A cél entitás felismerésekor tehát nem mindegy, hogy a teljes objektumra vonatkozik a vélemény vagy annak egy aspektusára, valamint, hogy az egyes aspektus véleményeket hogyan aggregáljuk a teljes objektumról szóló vélemények/polaritás meghatározásához. Ideális esetben egy a véleményelemző kezeli a cél entitás illetve az aspektusok szinonimáit, az esetleges homonimákat, a névmási hivatkozásokat és a gyakori elírásokat.
Liu (2011) rávilágít arra is, hogy egyáltalán nem mindegy egy adott vélemény kiértékelésénél, hogy kinek a szempontjából végezzük az elemzést. A „Google részvények ára szárnyal ma” mondat például igen pozitív annak, aki rendelkezik Google részvényekkel, de például kifejezetten rossz hír annak, aki pont előző nap adta el a Google papírjait. A jelenlegi kutatások vagy meghatároznak egy jellemző általános nézőpontot, vagy figyelmen kívül hagyják a problémát.
A nézőpont mellett lényeges kihívás az egyes szakterületek speciális nyelvezetének kezelése. A két probléma között sokszor nem is lehet különbséget tenni. Előfordulhatnak olyan kifejezések a vizsgált szövegekben, melyek egy általános véleményelemzés során nem rendelkeznek polaritással, de a szakterületi véleményelemzés során, a szaknyelv miatt már erősen pozitív vagy negatív jelentésük van. Ezek kiemelt kezelésére szótáralapú módszereknél van szükség, amikor az előre kialakított vélemény szótárat módosítani vagy bővíteni kell.
Az egyes véleménymérési algoritmusok bemutatásánál nem térek ki külön a szöveges előfeldolgozási lépésekre. Ezek általános bemutatása jelen fejezet célja. Egy szöveggyűjteményre vonatkozó előfeldolgozás jellemzően a következő lépéseket illetve döntéseket foglalja magában: Dokumentum beolvasása: a dokumentum beolvasása mind egyedi fejlesztésű, mind ismert szövegbányászati megoldással fontos feladat, mivel a szöveges dokumentumok többféle forrásból származhatnak: weboldal, adatbázis, xls fájl, txt fájl, doc fájl, xml fájl, JSON fájl, stb. Speciális karakterkódolások kezelése : HTML escape karakterek dekódolása, magyar szövegeknél UTF-8, Latin2 karakterkódolás használata, szükség esetén konverzió vagy karaktercsere alkalmazható. Dokumentum feldarabolás: bizonyos elemzések illetve dokumentumok esetén szükség lehet arra, hogy a beolvasott dokumentumot szétvágjuk kisebb szövegegységekre. Például külön kezeljük egy cikk fejezeteit, vagy egy szövegnek a mondatati képezik az elemzés alapját (lásd: 10. ábra). Stopszavak kiszűrése : amennyiben olyan elemzést végzünk, amely bármilyen szinten épít tokenek gyakoriságára, akkor érdemes az adott nyelv jelentés többlettel nem bíró, de gyakori szavait kiszűrni. Ilyen lehet például a névelők vagy a létigék kiszűrése magyar nyelvű szövegek esetén. A szükséges stopszó lista összeállítása feladatfüggő, de a weben hozzáférhetőek az egyes nyelvek ajánlott stopszólistái, melyet szükség módosíthatunk az elemzési specifikumainknak megfelelően. Többféle írásmód egyértelműsítése: ha egyes szavaknak többféle írásmódja használatos (akár gyakori helyesírási, elgépelése hibák miatt), akkor azokat közös alakra kell hozni: például e-mail és email szavak azonos alakra hozása. Szavak kisbetűssé alakítása A szavak szótövezése a megfelelő szótövezési szinten (lásd: 5. fejezet) Dokumentum felbontása karakter n-grammokra/szavakra/szó n-grammokra : az egyes szöveges feldolgozási algoritmusok más-más tokenfelbontásra épülnek. A dokumentum tokenizálásánál érdemes figyelembe venni, hogy a tokenek száma megegyezik a dokumentum-token bináris vektortérmátrix egyik dimenziójával, amely így rendkívül nagyra is megnőhet, mellyel együtt növekszik az elemzés számítási kapacitása modelltől függően lineáris, de akár exponenciális mértékben. Vektortérmodell kialakítása: nem kötelező előfeldolgozási lépés, de a legtöbb szövegelemzési algoritmus ezzel a korpusz reprezentációs módszerrel dolgozik. A korpusz dokumentumait egy token és a dokumentum dimenziókkal rendelkező bináris mátrix-szal ábrázoljuk, ahol a mátrix értékei mutatják, hogy adott token adott dokumentumban milyen gyakran szerepel.
Véleményosztályozás legközelebbi szomszéd módszerrel A k legközelebbi szomszéd módszer[1] lényege, hogy a kategorizálandó szöveghez legközelebb eső szövegek kategóriái alapján határozzuk meg a célszöveg kategóriáját. (Tikk, 2007). A döntésnél k számú leginkább hasonló dokumentum címkéje alapján kell dönteni, a legtöbbször szereplő címkét kapja a dokumentum (egyszerű többségi szavazás). A hasonlóság a vektortérmodell értékei közötti különböző távolság metrikák (például koszinusz-távolság) alapján kalkulálható. Tikk (2007) említi, hogy k értékét jellemzően páratlannak választják, és a validációs adatok tapasztalatai alapján határozzák meg. Egyes kutatások 30-45, míg mások 3-5 közötti k értéket javasolnak. A módszer legfőbb hátránya a magas, valós idejű számítási igény. Véleménymérés Szupportvektor-géppel A Szupportvektor-gépek[2] igen hatékony osztályozók. Az algoritmus olyan hipersíkokat állapít meg, melyek elvágják a különböző osztályok mentén a tanító adathalmaz pontjait (a vektortérmodell különböző szövegeit). A vágó hipersíkot úgy határozzák meg, hogy az a lehető legtávolabb legyen a közeli pontoktól, tehát a lehető legjobb vágás legyen a tanító adathalmazon lehetséges alkalmas vágások közül. Tikk (2007) kiemeli, hogy az SVM algoritmusok erőssége abban rejlik, hogy a szeparáló hipersíkok a lehető legjobban osztályozzák a bizonytalan, tehát a szeparáló síkhoz közel eső pontokat a fenti optimalizálás miatt. A módszer az egyik leghatékonyabb szövegosztályozási tanuló algoritmus. Jól skálázható, nem érzékeny a rendkívül magas dimenziószámra (tokenszámra). Nincs szükség validációra, mert eleve az optimális vágó síkot alkalmazz, és a tanítóadatok alapján adható egy elméleti felső hibakorlát a későbbi, ismeretlen adatokon történő osztályozásra. (Tikk, 2007) [1] K-NN, k Nearest Neighbour [2] SVM, Support Vector Machine
A megoldás hasonlít a naiv-Bayes algoritmusra. A lényege, hogy az elemezendő dokumentumgyűjteményt megfelelően reprezentáló mintát (tanító szövegeket) annotáljuk, azaz ellátjuk a pozitív, negatív és semleges címkék valamelyikével. A dokumentumokat felbontjuk tokenekre és megvizsgáljuk, hogy az egyes tokenek milyen gyakran fordulnak pozitív illetve negatív címkéjű dokumentumokban. Az előfordulás alapján a tokenekhez pozitív illetve negatív pontszámokat rendelünk. A pontszám lehet maga a gyakoriság vagy a gyakoriság alapján kalkulált érték, például a gyakoriság normalizált értéke vagy az egyes értékek besorolása kategóriákba. Az előállt token scoring rendszer (token-pontszám szótár) alapján pozitív és negatív pontszám számítható további dokumentumokra, és eldönthető, hogy az adott szöveg pozitív, negatív vagy semleges polaritású. A modell több szempontból is tovább finomítható: Az elemzés egysége: a dokumentum felbontható kisebb egységekre, például fejezetekre, mondatokra, melyek polaritásának valamilyen módú aggregálása adja a dokumentum polaritását. A polaritás kategóriák bővítése : a pozitív-negatív-semleges hármas skála helyett részletesebb skála is használható. Vagy pedig a pozitív és negatív kategóriákon belül újabb szinteket (például: enyhén pozitív, közepesen pozitív, erősen pozitív) definiálhatunk, mely esetben kétszintű osztályozást alkalmazhatunk. A pontszám kalkuláció alapja: a token egyszerű előfordulása helyett figyelembe vehetjük, hogy milyen más tokenekkel fordul együtt elő az adott token, vagy például hányszor fordul elő más kategóriákban, mennyire megkülönböztető erejű a token. A modell granularitásának meghatározássa a modellező feladata, függ az elemzés céljától és a rendelkezésre álló tanítóhalmaz tulajdonságaitól is.
A döntési fák szövegosztályozáshoz, és ez alapján véleményméréshez is használhatóak. A döntési fák vektortérmodell alapján generálhatóak. A fa csomópontjaiban a tokenek mint attribútumok találhatóak, míg az ágak feltételeket jelentenek az adott tokenre vonatkozóan. Ez a feltétel lehet egy egyszerű szerepel-e a token a dokumentumban feltétel, de lehet az előfordulások számára vonatkozó küszöbérték vagy értékintervallum is. A döntési fa leveleiben a pozitív, negatív illetve semleges címkék találhatóak. Tikk (2007) szerint a szövegosztályozáshoz a tipikus döntési fa tanítóalgoritmusokat használják: ID3 C4.5 C5.0 CART CHAID A döntési fák nagy előnye, hogy az ember számára könnyen értelmezhető eredményt nyújt, és a fa egyszerűen alakítható ha-akkor szabályhalmazzá. A döntési fák alkalmazása akkor ajánlott, amikor előreláthatóan viszonylag kevés, de nagy megkülönböztető erejű token segítségével megoldható az osztályba sorolás, ugyanakkor emiatt a tulajdonsága miatt gyakran előfordul túltanulás, azaz a kapott modell a tanítóadatokra jó eredményt ad, de új dokumentumok osztályozása esetén gyenge.
pontonkénti kölcsönös információ számításával PMI: azaz a és b együttelőfordulási valószínűségét el kell osztani a előfordulási és b előfordulási valószínűségével
Szemantikus véleményorientáció megállapítása PMI módszerrel A módszer akkor alkalmazható, ha egyszerre több dokumentumot kell elemezni. Ekkor az algoritmus a véleményszótárakban nem szereplő, ismeretlen szavakhoz (tokenekhez) pontszámot rendel a velük együtt gyakran előforduló szótári tokenek pontszámainak középértéke alapján. A szótárakban nem szereplő tokenek és a szótári tokenek között a pontonkénti kölcsönös információ számításával (PMI)[1] meghatározható, hogy mely szótári elemekkel fordulnak gyakran elő egy dokumentumban az ismeretlen tokenek. A gyakran kapcsolódó tokenek pontszámainak PMI érték alapú súlyozásával pedig becsülhető az ismeretlen alak pontszáma. Ezzel a módszerrel akár egy teljesen adaptív megoldás is építhető, amennyiben az új tokeneket és a becsült pontszámokat a rendszer ezután elmenti a szótárába. A PMI érték a vizsgált dokumentumhalmaz tokenelőfordulásai alapján számítható a következő módon: , azaz a és b együttelőfordulási valószínűségét el kell osztani a előfordulási és b előfordulási valószínűségével. Szemantikus véleményorientáció megállapítása szinonima szótárral Az ismeretlen tokenek polaritása más módon is becsülhető. Egyes módszerek kiegészítő szinonimaszótárokat alkalmaznak a szótoken alapú pontszám szótáraik mellé. Így a pontszám szótárban nem szereplő szavak pontszáma becsülhető azon szinonimáinak pontszámai alapján, melyek szerepelnek a szótárban. [1] Pointwise Mutual Information