Skladenjski razčlenjevalnik
Skladenjsko razčlenjevanje je proces pripisovanja skladenjskih odnosov med besedami v povedih. Skladenjski odnosi za vsako poved so predstavljeni z drevesno strukturo, pri čemer vsaka povezava pripada enemu izmed desetih tipov povezav.
Program DependencyParser: razčlenjevanje
Program omogoča skladenjsko razčlenjevanje besedila. Nastaviti je potrebno ime vhodne datoteke, ki je bodisi tekstovna datoteka bodisi oblikoslovno označeno besedilo v formatu XML-TEI (Tip moramo prav tako določiti.). Podati moramo še ime datoteke modela za razčlenjevanje in ime izhodne datoteke, ki predstavlja razčlenjeno besedilo v formatu XML-TEI.
Navodila za skladenjsko razčlenjevanje s programom DependencyParser:
java -jar -Xmx512m DependencyParser.jar -parse [nastavitve]
Nastavitve:
-v :izpisovanje na zaslovn (privzeto: ni izpisovanja)
-input_type:(text|tagged_xml) :nastavitev input_type:text nastavi tip vhodne datoteke kot tekstovna vhodno datoteka (privzeto), input_type:tagged_xml nastavi tip na oblikoslovno označeno xml datoteko
-not_parsed_input_file:input_name :nastavi ime datoteke za razčlenjevanje (vhod)
-parser_model:model_name :nastavi ime datoteke modela (vhod)
-parsed_output_xml:output_name :nastavi ime datoteke z razčlenjenim tekstom (izhod)
Prvi primer uporabe (vhod tekstovna datoteka):
java -jar -Xmx1800m DependencyParser.jar -parse -input_type:text -not_parsed_input_file:test/text_test.txt -parser_model:parser_models/JOS_small.model -parsed_output_xml:test/parsed_test.xml
Drugi primer uporabe (vhod oblikoslovno označena datoteka v formatu XML-TEI):
java -jar -Xmx256m -parse -input_type:tagged_xml -not_parsed_input_file:test/tagged_test.xml -parser_model:parser_models/JOS_small.model -parsed_output_xml:test/parsed_test.xml
Program DependencyParser: učenje
Program omogoča učenje modela za skladenjsko razčlenjevanje. Programu nastavimo ime vhodne datoteke, ki predstavlja korpus stavkov, ki so oblikoslovno označeni in skladenjsko razčlenjeni. Format vhodne datoteke mora biti XML-TEI. Poleg vhodne datoteke moramo podati še ime izhodne datoteke naučenega modela. Na potek učenja lahko vplivamo s parametrom, ki določa število iteracij (privzeto 10). Višanje števila iteracij upočasni učenje in lahko izboljša kvaliteto modela.
Navodila za učenje modela za skladenjsko razčlenjevanje:
java -jar -Xmx512m DependencyParser.jar -train [nastavitve]
Nastavitve:
-v :izpisovanje na zaslovn (privzeto: ni izpisovanja)
-numiter:num :nastavi število iteracij pri učenju (privzeto 10)
-trainset_xml:filename :nastavi ime xml datoteke z razčlenjenim besedilom za učenje modela (vhod).
-parser_model:model_name :nastavi ime datoteke modela (izhod)
Primer uporabe:
java -jar -Xmx1800m DependencyParser.jar -train -trainset_xml:test/JOS_small.xml -parser_model:parser_models/JOS_small.model -numiter:20
Program DependencyParser: evalvacija
Program omogoča evalvacijo skladenjskega razčlenjevanja s prečnim preverjanjem. Programu nastavimo ime vhodne datoteke, ki predstavlja korpus stavkov, ki so oblikoslovno označeni in skladenjsko razčlenjeni. Format vhodne datoteke mora biti XML-TEI. Poleg vhodne datoteke moramo podati še ime izhodne datoteke kamor se izpišejo rezultati prečnega preverjanja. Nastavimo lahko število podmnožic prečnega preverjanja in število iteracij pri učenju na vsaki podmnožici. Stranski produkt prečnega preverjanja je mapa "eval", ki vsebuje vse vmesne rezultate v podmapah "fold0", "fold1", itd.
Navodila za evalvacijo skladenjskega razčlenjevanja:
java -jar -Xmx512m DependencyParser.jar -eval [nastavitve]
Nastavitve:
-eval_input:filename :nastavi ime xml datoteke z razčlenjenim besedilom za prečno preverjanje (cross-validation)(vhod)
-eval_output:filename :nastavi ime datoteke za izpis rezultatov evalvacije (izhod)
-numiter:num :nastavi število iteracij pri učenju (privzeto 10)
-nfolds:num :nastavi število podmnožic pri prečnem preverjanju (privzeto 5)
-lemmatizer_model:model_name :nastavi ime datoteke modela za lematizacijo
-tagger_model:model_name :nastavi ime datoteke modela za označevanje
Primer uporabe:
java -jar -Xmx1800m DependencyParser.jar -eval -eval_input:test/jos5.xml -eval_output:eval/eval.txt -nfolds:3 -numiter:15 -lemmatizer_model:tagger_models/lemmatizer-model.bin -tagger_model:tagger_models/tagger-model.bin
Datoteke za prenos
Vsebina paketa DependencyParser.zip
Paket vsebuje mapo
release, ki vsebuje vse potrebne datoteke za uporabo. Sledi seznam podmap in njihovih vsebin.
parser_models
Vsebuje tri datoteke naučenih modelov: light.model, ssj500k.model in JOS_small.model. Model JOS_small.model je uporaben za testiranje konfiguracije sistema (pravilno nameščena JAVA in .NET). Model light.model je rezultat učenja razčlenjevalnika na množici 600 stavkov (Predstavlja osnovo, ki je uporabna na široki množici računskih zmogljivosti sodobnih osebnih računalnikov.). Model ssj500k.model predstavlja zahtevnejši model naučen na 12000 stavkih. Uporaba slednjega modela zahteva osebni računalnik z več kot 4GB delovnega spomina.
tagger_models
Vsebuje model za lematizacijo, lemmatizer-model.bin, in model za označevanje, tagger-model.bin.
test
Vsebuje dve datoteki učnih korpusov (JOS_small.xml za potrebe testiranja in ssj500k.xml za učenje kompleksnejšega modela razčlenjevanja). Poleg korpusov vsebuje še dve testni datoteki (tekstovna vhodna datoteka text_test.txt in datoteka v formatu XML-TEI tagged_test.xml) in rezultat razčlenjevanja (parsed_test.xml).
release
Mapa vsebuje vse do sedaj omenjene podmape ter zagonske datoteke: ParserGUI.exe (program z grafičnim vmestnikom) ter DependencyParser.jar za uporabo funkcionalnosti razčlenjevalnika iz ukazne vrstice (navodila uporabe v priloženi datoteki navodila.txt). Za hitro testiranje razčlenjevalnika iz ukazne vrstice so v mapi na voljo še tri paketne datoteke, ki se jih da pognati: test_evaluate.bat, test_parse.bat in test_train.bat.
Opomba
Vsi opisani programi so delno izdelani v razvojnem okolju Microsoft Visual Studio 2010 in delno v okolju JAVA. Za svoje delovanje zato potrebujejo zagonsko okolje .NET Framework 4.0 in Java 1.6.
Če okolje .NET Framework 4.0 še nimate nastanjenega na računalniku, si ga prenesite s spleta (povezava do spletnega namestitvenega programa).
Okolje Java 1.6 si lahko prenesete s spleta: povezava do 32-bitne različice, povezava do 64-bitne različice.
Zasluge
Skladenjski razčlenjevalnik za slovenski jezik temelji na odprtokodnem produktu MSTParser, dostopnem na spletu. Predelavo in razširitve za potrebo projekta je implementiral Jan Rupnik. Vizualizacijsko komponento spletnega razčlenjevalnika je pripravil Janez Brank.
Oblikoslovni označevalnik, ki ga uporabljamo, so v programskem jeziku C# implementirali Miha Grčar, Jan Rupnik in Matjaž Juršič pod vsebinskim vodstvom Simona Kreka.
Lematizator, ki ga uporabljamo, je zasnoval Matjaž Juršič v okviru svojega diplomskega dela pod mentorstvom dr. Igorja Mozetiča.
Uporabljeni korpusi so bili označeni v okviru projekta Jezikoslovno označevanje slovenskega jezika (JOS). Informacije o projektu JOS in pripadajočih korpusih so dostopne na spletni strani http://nl.ijs.si/jos/.
Operacijo delno financira Evropska unija iz Evropskega socialnega sklada ter Ministrstvo za šolstvo in šport. Operacija se izvaja v okviru Operativnega programa razvoja človeških virov za obdobje 2007-2013, razvojne prioritete: razvoj človeških virov in vseživljenjskega učenja; prednostne usmeritve: izboljšanje kakovosti in učinkovitosti sistemov izobraževanja in usposabljanja 2007-2013.
Reference
R. McDonald, K. Lerman, and F. Pereira (2006): Multilingual Dependency Parsing with a Two-Stage Discriminative Parser. Tenth Conference on Computational Natural Language Learning (CoNLL-X). (
pdf)
R. McDonald and F. Pereira (2006): Online Learning of Approximate Dependency Parsing Algorithms. 11th Conference of the European Chapter of the Association for Computational Linguistics: EACL 2006 81-88. (
pdf)
R. McDonald, F. Pereira, K. Ribarov, and J. Haji\v{c} (2005): Non-projective Dependency Parsing using Spanning Tree Algorithms. Proceedings of HLT/EMNLP 2005. (
pdf)
R. McDonald, K. Crammer, and F. Pereira (2005): Online Large-Margin Training of Dependency Parsers. 43rd Annual Meeting of the Association for Computational Linguistics (ACL 2005). (
pdf)