Uporaba strojnega uËenja za
postavljanje vejicv slovenšËini
Peter Holozan, Amebis, d. o. o., Kamnik, Bakovnik 3, 1241 Kamnik peter.holozan@amebis.si
IzvleËek
Za slovenšËino obstajata dva programa, ki postavljata vejice v besedilo s pomoËjo pravil, ni pa še bilo preizkušeno strojno uËenje, ki je že bilo uspešno uporabljenoza postavljanjevejicvdrugihjezikih.Zapreizkušanjejebil uporabljen seznamprimerovznapakamiprivejicahizkorpusaŠolar
(209.156 besed).Vprvem deluje bilostrojno uËenje uporabljenozaproblem iskanja vseh vejic, doseženirezultatje primerljivzdrugimi jeziki (natanËnost 0,861in priklic 0,641)insprogramomas pravili, najboljširezultatje bil doseženz uporabo skladenjskega analizatorja, lematizator, oblikoslovni oznaËevalnikin skladenjski analizatorpa so bili nauËeniz uËno množicobrez vejic, uporabljenje bil klasifikator ADTree.Preizkušenaje bila še uspešnost popravljanja realnih napak v besedilu, pri Ëemer je bil rezultat slabši (natanËnost 0,676 in priklic 0,545 za manjkajoËe vejice). KljuËne besede: postavljanje vejic, popravljanje napaËnih vejic, slovenšËina, strojno uËenje, ADTree.
Abstract
Using MachineLearning for comma Placingin Slovene
Forthe Slovenelanguagetherecurrentlyexisttwosoftware solutionsabletoplace commasintotextusingrules, however MachineLearning thathasalreadybeen successfullyusedforcommaplacinginotherlanguageshasneverbeentriedwithSlovene.Fortesting,alistofexamples with comma mistakes from the corpus Šolar (209156 words), was used. In the first part of the experiment machine learning was used for searchingall commas,the obtainedresultis comparablewith other languages(precision 0.861andrecall0.641)andtherule-basedprograms. The best result was achieved using the syntax analyser. The lemmatiser, the PoS tagger and the syntax analyser were trained on a corpus without commas,theADTree classifierwasused.Real comma mistakeswerealsotestedbuttheresultswere worse(precision0.676andrecall
0.545 for missing commas).
Key words: comma placing, comma error correction, Slovene, machine learning, ADTree.
1 UVOD Program,kibi pravilno postavljal vejicev besedilo,ni uporaben le za pisce, ki tipkajo besedila in pri tem spregledajo kakšno vejico (postavljanje vejic povzroËa hude težave celo bodoËim uËiteljem na razredni stopnji (Šek Mertük, 2011)), temveË tudi za druge namene. Pravilno postavljene vejice tako npr. izboljšajo oblikoslovno oznaËevanje besedil (Hillard idr., 2006), pomembne pa so tudi pri sistemih za razpoznavo govora, ki le iz govora ne morejo pravilno postaviti vejic (Huang&Zweig, 2002). Za slovenšËinože obstajatadva programa (Besana1inLanguageTool2), ki postavljata manjkajoËe vejice; oba temeljita na roËno napisanih pravilih (Holozan, 2012). NihËe pa za slovenšËino še ni preizkusil, kako uspešne so pri tem statistiËne metode, ki uporabljajo strojno uËenje iz primerov za izpeljavo pravil za vejice. Strojno uËenje zahteva veliko število prime
1 http://besana.amebis.si 2 http://www.languagetool.org/
rov, iz katerih lahko izpelje pravila; taki primeri napaËne oz. pravilne rabe vejic so zdaj na voljo v korpusu Šolar, v katerem so zbrana besedila, ki so jih napisali uËenci in dijaki, skupaj z uËiteljskimi popravki.
2 PREDHODNE RaZISKaVE
Strojno uËenje je bilo že veËkrat uporabljeno za uËenje postavljanja vejic v drugih jezikih, veËinoma pa so raziskovali problem, ko je treba v besedilo postaviti vse vejice (oz. nekateri celo vsa loËila), kar je pomembno predvsem pri sistemih za razpoznavo govora (Huang & Zweig, 2002).
Beeferman idr. (1998) so preizkušali postavljanje vejic v anglešËini s pomoËjo skritega markovskega modela in z uporabo Viterbijevega algoritma.
Hardt (2001) je preizkušal postavljanje vejic v danšËini, in sicer z uporabo Brillovega oznaËevalnika, vendar se je omejil le na ugotavljanje odveËnih vejic, pri Ëemer so bile odveËne vejice dodane nakljuËno.
Zhang idr. (2002) so preizkušali strojno uËenje za vejice v anglešËini in nemšËini, in sicer z odloËitvenimi drevesi z uporabo skladenjskih podatkov.
Shieber in Tao (2003) sta preizkušala postavljanje vejic za anglešËino; pomembna je njuna ugotovitev, da je smiselno nauËiti statistiËni oznaËevalnik na uËnem korpusu brez vejic.
Alegria idr. (2006) so preizkušali strojno uËenje v baskovšËini. Uporabili so program WEKA3 in preizkušali razliËne metode strojnega uËenja.
Israel idr. (2012) so se ob problemu postavljanja vseh vejic v anglešËini lotili tudi problema popravljanja napaËnih (manjkajoËih in odveËnih) vejic v besedilu.
Programa za postavljanje vejic v slovenšËini je preizkusil Holozan (2012), in to za problem, ko je treba popraviti napaËne vejice v besedilu. Uporabljen je bil vzorec, narejen iz korpusa Šolar, ki vsebuje napake, ki so jih naredili uËenci osnovnih in srednjih šol.
3 ZaSNOVa POSKUSa
Namen poskusa je preizkusiti metode strojnega uËenja v slovenšËini, in sicer najprej za problem postavljanja vseh vejic (na kar je bila osredinjena do zdaj veËina tujih raziskav in kar je uporabno pri razpoznavi govora), potem pa še za problem popravljanja napaËnih vejic (kar je uporabno v slovniËnih pregledovalnikih, ki tako pomagajo piscem besedil postavljati vejice).
Osnova ideja poskusa postavljanja vseh vejic je povzeta po Alegria idr. (2006) in je taka, da uporabimo korpus s pravilno postavljenimi vejicami, ga oblikoskladenjsko oznaËimo, lematiziramo in skladenjsko razËlenimo (pri Ëemer je treba upoštevati, da pri praktiËni uporabi nimamo vejic vnaprej, zato je treba preizkusiti oznaËevanje tudi brez vejic, na kar sta opozorila že Shieber in Tao (2003), medtem ko Alegria idr. (2006) tega niso posebej preizkušali). Vsako besedo z doloËenim okoliškim oknom pretvorimo v seznam atributov in dodamo atribut, ali ji sledi vejica (ta atribut je potem razred pri klasifikacijskem problemu). Tako zapisane besede uvozimo v program za strojno uËenje, v katerem izvedemo eksperimente.
Enako kot pri Alegria idr. (2006) je bil uporabljen program WEKA, ki ima vgrajeno veliko klasifikatorjev. Preizkušeno je bilo veËje število klasifikatorjev, potem pa izbranih nekaj najboljših (pri Ëemer smo upoštevali, da so Ëim bolj razliËni), ki so bili potem uporabljeni v nadaljnjih preizkusih, v katerih so bili preizkušeni razliËni atributi, velikost okna, vpliv oznaËevanja in parametri klasifikatorja.
Za preizkušanje je bilo uporabljeno desetkratno preËno preverjanje, pri Ëemer primere razdelimo na deset delov, devet delov uporabimo za uËenje, preostali del pa za preizkušanje, kar ponovimo desetkrat z razliËnim delom za preizkušanje in izraËunamo povpreËni priklic in natanËnost.
Za primerjavo sta bila na isti nalogi preizkušena še Besana in LanguageTool.
Drugi poskus je prenos ugotovitev iz prvega poskusa v popravljanje napaËnih vejic in primerjava s programoma Besana in LanguageTool. Preizkušanje v tem poskusu je namreË bolj zapleteno, zato je najboljšo kombinacijo za strojno uËenje laže poiskati pri problemu iskanja vseh vejic in jo potem uporabiti še pri popravljanju napaËnih vejic.
3.1 Korpus
V raziskavi je bila uporabljena posodobljena verzija korpusa (popravljenih je bilo nekaj napaËnih vejic), ki je bil uporabljen v Holozan (2012). To je podkorpus, narejen iz korpusa Šolar,4 ki je zbirka besedil, ki so jih napisali uËenci v šoli, in ki vkljuËuje tudi popravke napak. Ta podkorpus vsebuje le povedi z napaËnimi vejicami (bodisi manjkajoËimi bodisi odveËnimi), pri Ëemer so mesta manjkajoËih vejic oznaËena z znakom ¤, odveËne vejice pa so nadomešËene z znakom ÷; velikost tega podkorpusa je 209.156 besed (vkljuËno z loËili, razen vejic), v podkorpusu je 11.892 pravilno postavljenih vejic, 11.399 manjkajoËih vejic in 2709 odveËnih vejic.
Za problem postavljanja vseh vejic (in tudi za uËenje pri popravljanju vejic) je bil korpus predelan tako, da so bile vse vejice popravljene (znaki ¤ zamenjani z vejicami, znaki ÷ pa pobrisani), s Ëimer je bil narejen korpus s pravilno postavljenimi vejicami.
Predvsem za ta problem postavljanja vseh vejic (pa tudi za realno natanËnost pri popravljanju napaËnih vejic, Ëeprav je tu težava, da je ta odvisna od deleža napak v korpusu in se je tako težko odloËiti, katera besedila vsebujejo povpreËno število napaËnih vejic) bi bilo sicer bolje uporabiti korpus, ki bi vseboval tudi povedi s pravilno postavljenimi vejicami, vendar takega korpusa ob izvajanju poskusa ni bilo
3 http://www.cs.waikato.ac.nz/ml/weka/ 4 http://www.slovenscina.eu/korpusi/solar
na voljo. Tudi popravki v korpusu Šolar namreË niso povsem natanËni, zato so bili primeri v podkorpusu roËno preverjeni in ustrezno popravljeni.
Druga možnost za postavljanje vseh vejic bi bila uporaba dela katerega od obstojeËih korpusov (npr. Gigafide),5 vendar se tu postavi vprašanje, kako natanËno so lektorirana besedila, vkljuËena v korpuse. Se je pa za to rešitev odloËila veËina tujih raziskovalcev (tudi Alegria idr. (2006), ki so med drugim uporabili Ëasopisna besedila).
3.1.1 OznaËevanje
Tako Hardt (2001) kot tudi Alegria idr. (2006) so eksperimentirali z oznaËenimi korpusi, saj lahko pravilne oblikoskladenjske oznake in poznavanje strukture povedi pomagajo pri postavljanju vejic.
Zato je bilo tudi za slovenšËino uporabljeno oznaËevanje, in sicer oblikoslovni oznaËevalnik in lematizator Obeliks6 ter skladenjski razËlenjevalnik,7 ki sta bila razvita v okviru projekta Sporazumevanje v slovenskem jeziku.8
Pri poskusih za baskovšËino in danšËino ni posebej specificirano, ali so oznaËevali korpus s pravilno ali z napaËno postavljenimi vejicami, zdi se, da so uporabili razliËico s pravilno postavljenimi vejicami. Ker pa pravilnost vejic lahko vpliva na natanËnost oznaËevalnika (Hillard idr., 2006) in ker pri praktiËni uporabi (npr. popravljanju napaËnih vejic v besedilu) ni mogoËe vnaprej imeti pravilno postavljenih vejic, sta bili preizkušeni obe razliËici oznaËevanja.
3.2 Ocenjevanje rezultatov
Za ocenjevanje rezultatov sta bili uporabljeni metriki natanËnost (delež pravilno postavljenih vejic) in priklic (delež odkritih manjkajoËih vejic) ter metrika F1, ki je harmoniËna sredina natanËnosti in priklica in se izraËuna kot 2 * natanËnost * priklic / (natanËnost
+ priklic). Problem postavljanja vejic predstavimo z razredom, ki pove, ali neki besedi sledi vejica. V korpusu je 23.291 mest, kjer mora biti vejica, vejica torej mora biti za 11,1 odstotka besed, veËinski razred pa je, da besedi ne sledi vejica, kar je v 88,9 odstotka primerov.
Program WEKA je rezultate izraËunal tako za primer, ko ni vejice, kot za primere, ko vejica je. Ker je
5 http://www.gigafida.net 6 http://www.slovenscina.eu/tehnologije/oznacevalnik 7 http://www.slovenscina.eu/tehnologije/razclenjevalnik 8 http://www.slovenscina.eu
cilj postaviti vejice v besedilo, je zanimiv predvsem rezultat pri primerih, ko vejica je, saj nam to pove, koliko manjkajoËih vejic bi odkrila metoda. NatanËnost je pomembnejša od priklica, ker npr. pri slovniËnem pregledovalniku noËemo preveË lažnih opozoril, seveda pa tudi priklic ne sme biti premajhen (npr. vsaj 50 %), da je metoda uporabna, zato je pomemben tudi rezultat za F1, ki ga prav tako izraËunava program WEKA.
Rezultati so izraËunani na besede, ker je beseda (z okoliškim oknom) element pri strojnem uËenju.
ReferenËna vrednost uspešnosti je rezultat, ki ga dosežeta programa, ki postavljata vejice s pomoËjo pravil. Programa sicer nista namenjena za reševanje problema, ko je treba postaviti vse vejice, vendar je vseeno zanimivo videti, kako dobro poišËeta vse vejice.
3.3 Priprava podatkov
Program WEKA potrebuje podatke v formatu ARFF, v katerem glavi z opisom atributov sledi podatkovni del, v katerem vsaka vrstica predstavlja en primer. Rezultat oznaËevanja besedil je v formatu XMLTEI,9 zato je bil napisan za pretvorbo program v Perlu. Ta za vsako besedo doloËi atribute, potem pa pri izvozu v ARFF ob sami besedi izpiše še atribute za prejšnje in naslednje besede glede na nastavitev okna (privzeta vrednost je ‡5 +5, torej pet besed spredaj in pet besed zadaj, s Ëimer so zaËeli tudi Alegria idr. (2006)). Vejice niso besede, ampak le atribut je-vejica na besedi neposredno pred vejico. Ta atribut je potem uporabljen kot razred pri strojnem uËenju.
Program za izvoz v ARFF izvozi vse atribute (razen podatka o obstoju vejice) kot nize, s Ëimer pa veËina klasifikatorjev ne zna delati, zato jih je treba najprej spremeniti v nominalne atribute, pri Ëemer je pri definiciji atributa našteta zaloga možnih vrednosti. V ta namen je bil v programu WEKA uporabljen filter StringToNominal.
3.3.1 atributi
Osnovni atributi za vsako besedo so oblika (sama beseda, taka kot je napisana, npr. mize), lema (osnovna oblika besede, npr. miza) in oblikoskladenjska oznaka (ali MSD ‡ morphosyntactic descriptor, npr. Sozer) po oblikoskladenjskih specifikacijah JOS,10 ki pove besedno vrsto, podatke o sklonu, spolu, številu
9 http://www.tei-c.org/Guidelines/P5/ 10 http://nl.ijs.si/jos/msd/html-sl/index.html
ipd. Ker loËila nimajo oblikoskladenjskih oznak, jim je bila pripisana oznaka Y, da jih lahko obravnavamo enako kot besede. NeobstojeËim besedam znotraj okna so bili vsi atributi nastavljeni na *, vsak stavek je enota zase in okno ne sega na sosednje stavke.
Atributi so našteti tako, da so najprej atributi za samo besedo (položaj 0), temu sledijo atributi za predhodne besede (od 1 do 5) in temu atributi za naslednje besede (od +1 do +5).
Po celotnem MSD je bil narejen še poskus z delnim MSD, v katerem so atributi loËeno prvi znak MSD, drugi znak MSD in pri samostalnikih še sklon.
Delni MSD2 je bil poskus, kako Ëim bolj prenesti informacije iz MSD in se izogniti uporabi celotnega MSD (zaradi predpostavke, da veliko število razliËnih MSD lahko ovira uËenje). Vsak MSD bil razdeljen v dva atributa, prvi je kot prvo Ërko vseboval besedno vrsto, druga Ërka pa je bila vrsta pri posamezni besedni vrsti (pri samostalnikih, pridevnikih, glagolih, zaimkih, števnikih in veznikih). Drugi atribut je vseboval sklon pri samostalnikih, pridevnikih, zaimkih, predlogih in števnikih, sicer pa **.
Naslednji poskus je bil uporaba podatkov skladenjskega razËlenjevalnika, pri katerem pa je rezultate teže pretvoriti v atribute kot pri oblikoslovnem oznaËevalniku in lematizatorju, saj so rezultat skladenjskega razËlenjevalnika povezave, ki gradijo drevo.
Slika 1: Rezultat skladenjskega razËlenjevalnika
Slika 1 kaže rezultat skladenjske razËlembe za ki kažejo na osebke, predmete in prislovna doloËila, poved .Ko MatiËek to izve, sklene ukrepati«. Za popri Ëemer nas pri modrih in rdeËih povezavah zanima stavljanje vejic so pomembne predvsem povezave11 zaËetek bloka, zato mora upoštevati še vse naslednje .vez«, ki kaže na veznike, .modra«, ki kaže na del popovezave, da pridemo do zaËetka tega bloka. vedi, in rdeËe povezave .ena«, .dve«, .tri« in .štiri«, Rezultat razËlenjevalnika (skupaj z rezultatom le
matizatorja in oblikoskladenjskega analizatorja) je zapisan v formatu XML, kot prikazujemo na sliki 2 (iz
11 Vsi tipi povezav so opisani na http://www.slovenscina.eu/tehnologije/
razclenjevalnik. pušËene so znaËke .«, ki oznaËujejo presledke).
KoMatiËektoizve,skleneukrepati.
Slika 2: Zapis oznaËevanjain skladenjske razËlembev formatu XML
Slika 2 je primer, zapisan v formatu XML, ki je • je vez: beseda, na katero kaže povezava “vez”; rezultat oznaËevanja in skladenjskega razËlenjeval• zaËetek modrega bloka: prva beseda v bloku, na nika. ZnaËke “