Training vs Test u analizi mišljenja

Big data / Poslovna analitika / Rudarenje podataka

Training vs Test u analizi mišljenja

Kao što sam i obećao prošli put u ovom članku ćemo nadograditi prethodno stečeno znanje. Naime, u prošlom članku je bilo govora o izradi modela za potrebe analize mišljenja pomoću strojnog učenja te smo ostavili jedno pitanje neodgovorenim. Naime, taj model nam sluči za učenje i evaluaciju učenja, no što se događa kad nam dođu novi tekstualni podaci? Model je naučio prepoznavati sentiment na određenom broju riječi, te nam je potrebno da nam ulaz za algoritme strojnog učenja sadrži iste te riječi. Naravno, kako dolaze novi tekstualni podaci dobivamo i nove riječi što je potrebno uračunati prilikom dodavanja proširenja postojećem modelu. To proširenje izgleda kao na slici ispod.

Analiza mišljenja 2

Prošireni model

Na samom početku drugog dijela modela imamo ponovno iste korake. Učitavamo nove tekstualne podatke bilo iz excela, Hbasea ili pomoću file readera neki drugi format, te taj tekst pretvaramo u dokument. Nakon pretvorbe slijedi faza preprocesiranja u kojoj su koraci identični u modelu objašnjenom ranije. Zatim slijedi izračunavanje frekvencije te dolazimo do koraka koji nam pomažu da premostimo problem (input mora biti isti kao i onaj na kojem je algoritam naučio). U koraku spajanja prvo uzimamo riječi koje se nalaze u obje tablice tj. u gornjem dijelu na kojem smo učili te u donjem dijelu koji smo tek učitali i želimo mu odrediti sentiment. Nakon tih koraka slijedi druga usporedba tablica, gdje uzimamo riječi koje se nalaze u gornjem dijelu, a nisu sadržane u donjem (novom) dijelu. Ovim jednostavnim postupkom ćemo u kasnijem dijelu za svaki novi tekstualni podatak znati koju riječ iz gornjeg dijela zaduženog za učenje sadrži (poprima vrijednost 1 u matrici) te koju ne sadrži (poprima vrijednost 0 u matrici). Kao što možete vidjeti na slici, dodijelili smo im oznaku da ih znamo razlikovati prilikom izrade matrice. Sljedeći korak je spajanje podataka te ponovno razdvajanje na dva dijela : jedan kojim se izrađuje matrica, te drugi koji filtrira testne podatke (dakle naše nove podatke koje želimo analizirate, kako bi u kasnijem dijelu eliminirali sve osim njih) te ih grupira po dokumentu. Nakon tih koraka sve se ponovno pomoću noda join spoji u jednu jedinstvenu matricu.

spajanje tablica

spajanje tablica

Ova matrica nakon ovih kratkih manipulacija postaje identična onoj pomoću koje je naš algoritam naučio. Jedina razlika su naravno novi tekstualni podaci koji se žele analizirati, ali riječi tj. nazivi stupaca su identični. Tako sada za svaki novi tekstualni podatak znamo da li sadrži li ne sadrži tu riječ ili stupac u sebi. U ovom slučaju je korišten algoritam random forrest, ali ako želimo biti dosljedni onda možemo koristiti naive bayes kao i u prethodnom slučaju. Zadnji koraci su samo izvlačenje originalnog dokumenta za koji je dodijeljen sentiment tj. polaritet. Kao što možete vidjeti dupliciranjem inicijalnog modela te dodavanjem određenih preinaka riješen je problem postavljen na samom početku.

Koristeći Weka nodove (Naive Bayes za Text) ili možda Palladian nodove (TextClassifier) moguće je napraviti cijeli ovaj proces s tek nekoliko nodova. Ukoliko se odlučite za taj način dovoljno je samo učitati podatke pomoću excela noda ili nekog drugog te unutar tih posebnih nodova samo naznačiti koji podaci su vam ulaz, koji je target stupac, da li želite koristiti stop words, tokenizaciju, koliko n-grama želite te Vam on sve za Vas izračuna i izbaci rezultat svoje analize. Naravno, na ovaj prijašnji način koji je Vama demonstriran imate veću slobodu kreiranje čega god hoćete, ali i ovaj dodatni (WEKA i Palladian) način analize Vam može pomoći da veoma brzo dođete do nekakvih inicijalnih rezultata koje možda kasnije možete iskoristiti u daljnjoj analizi ili ih čak i iskoristiti u takvom obliku. Dolje imate primjer kako izvesti dodavanje n-grama u naš inicijalni model.

N-gram

N-gram

S ovim člankom smo završili analize pomoću rječnika i strojnog učenja u KNIME (za sada) u sljedećim ćemo prijeći na neke druge zanimljive teme i druge probleme.

Comments are closed.