{"id":32,"date":"2007-01-01T20:59:27","date_gmt":"2007-01-01T19:59:27","guid":{"rendered":"http:\/\/blog.esperantilo.org\/?p=32"},"modified":"2007-07-19T13:53:39","modified_gmt":"2007-07-19T12:53:39","slug":"stila-kaj-gramatika-korektado-per-prototipoj-en-programo-languagetool","status":"publish","type":"post","link":"http:\/\/blog.esperantilo.org\/?p=32","title":{"rendered":"Stila kaj gramatika korektado per prototipoj en programo &#8222;LanguageTool&#8220;"},"content":{"rendered":"<p>Mi lastatempe detale rigardis la projekton  <a href=\"http:\/\/www.danielnaber.de\/languagetool\">LanguageTool<\/a> de Daniel Naber. Tiu interesa projekto de germana programisto estas nun en relative matura stato. La projekto celas oferi gramatikan kaj stilan korektadon por diversaj lingvoj. La temo por mi tre interesa, \u0109ar anka\u016d Esperantilo oferas similajn funkciojn.<\/p>\n<h3>Teknika Ideo<\/h3>\n<p>La a\u016dtoro elektis tre pragmatikan metodon de gramatika korektado. Ili bazi\u011das sur prototipoj. La programo komparas \u0109iun frazon kun la prototipo. Kiam la prototipo konformas kun la frazo, difinita mesa\u011do kaj propono de plibonigo estas oferata al uzanto. <cite \/><\/p>\n<blockquote><p><cite> Ekzempla prototipo: <code>\"<strong>The is<\/strong>\"<\/code>. Mesa\u011do: &#8222;Vi eble volis skribi <strong><em>There is&#8220;<\/em><\/strong>.<\/cite><\/p><\/blockquote>\n<p>Pli kompleksaj prototipoj bazas sur markitaj tekstoj (angle: <em>tagged text<\/em>). Por \u0109iu vorto estas trovita la gramatika kategorio (markilo), kiu povas signifi la vortkategorion (ekz. substantivo), kazon a\u016d nombron. <cite \/><\/p>\n<blockquote><p><cite> Ekzempla prototipo: <strong><em>&#8222;give PPR advise&#8220;<\/em><\/strong>. PPR esta markilo por pronomoj. La regulo trovas la intermikson de vortoj &#8222;advice&#8220; kaj &#8222;advise&#8220;. <\/cite><\/p><\/blockquote>\n<p>Do la programo ne trovas \u0109iujn erarojn sed nur erarojn, kiujn oni difinis en reguloj. Evidente tiuj eraroj ne estas trovitaj per literumado, \u0109ar la vortoj estas ja konataj. La reguloj estas projektitaj por trovi plej oftajn erarojn, a\u016d tajperaroj a\u016d eraroj kutime faritaj de ne anglalingvanoj, kiuj devas skribi angle. Por la projekto estas tre grave, havi la statistikajn informojn pri oftaj eraroj. La projekto enhavas do bazon kun plej oftaj eraroj, faritaj de uzantoj. La projekto trovis kunhelpantojn, kiuj difinis aldonaj reguloj por kelkaj aliaj lingvoj.<\/p>\n<h3>Diplomlabora\u0135o<\/h3>\n<p>La projekto krei\u011dis kiel <a href=\"http:\/\/www.danielnaber.de\/languagetool\/download\/style_and_grammar_checker.pdf\">diplomlabora\u0135o<\/a> \u0109e germana universitato. Interese, ke kvankam la a\u016dtoro estas germano, li skribis la labora\u0135on en angla lingvo, kaj la unua lingvo, kiu povas esti korektita, estas la angla lingvo. En la labora\u0135o li tre detale enkondukas en la temo de gramatika korektado. La labora\u0135o diferencas tri eblajn metodojn:<\/p>\n<ul>\n<li>sintaksa analizo<\/li>\n<li>prototipoj de eraroj<\/li>\n<li>statistike bazitaj sistemoj<\/li>\n<\/ul>\n<p>Mi elektis en esperantilo, kiu anka\u016d povas trovi gramatikajn erarojn la metodon de sintaksa analizo. Poste mi uzis tiun analizon anka\u016d por ma\u015dina tradukado. La a\u016dtoro de LanguageTool elektis por pragmatikaj kialoj la metodon de prototipoj (<em>rule based checking<\/em>). La unua kialo por tio estas, ke nun ne ekzistas bonaj liberaj sintaksaj analiziloj. En tiu labora\u0135o a\u016dtoro priskribas anka\u016d tre interesan koncepton de regulitaj lingvoj. Regulitaj lingvoj estas lingvoj kun pli rigidaj kaj strikte difinitaj reguloj. Tiuj lingvoj, bazi\u011das sur naturaj lingvoj, sed ofte uzas nur parton da vortoj. La celo estas unue krei dokumentojn, kiuj estas pli legeblaj ekzemple por fremdlingvanoj. Tiu ideo ne estas nova anka\u016d en Esperantujo, \u0109ar ekzistas anka\u016d streboj krei tekstojn, kiuj estas facile legeblaj por komencantoj. Mi pensas nur per lernolibroj kiel &#8222;Gerda malaperis&#8220; (El\u015dutebla de <a href=\"http:\/\/blog.esperantilo.org\/www.lernu.net\">Lernu.net<\/a>), en kiu oni trovas nur limigitan (regulitan) esperantan lingvon, kies nivelo kreskas en \u0109iu sekva \u0109apitro.<\/p>\n<h3>Kunlaboro kun OpenOffice<\/h3>\n<p>La tre bona trajto de projekto estas kunlaboro kun OpenOffice. Oni povas tre simple instali (plivastigi) redaktilon OpenOffice per LanguageTool. Do la uzanto ne devas forlasi \u011dian kutiman medion por skribi tekstojn. En la dua flanko, LanguageTool uzas pretajn funkciojn de OpenOffice, kaj la a\u016dtoro de devis programi ilin mem. Ekzistas tamen la eblo uzi la programon sen OppenOffice. Sed tio estas utila afero eble nur por testado.<\/p>\n<h3>Uzado de programo<\/h3>\n<p>En la uzado de programo pla\u0109is al mi kelkaj trajtoj. Uzanto povas mem \u015dalti kaj mal\u015dalti la regulojn. Tio estas grava, \u0109ar kelkaj reguloj donas mesa\u011don \u0109iam, kiam aperas certa vorto, kiu estas ofte misuzata. Due la reguloj estas difinitaj ekstere de programo en speciala dokumento (grammar.xml) en XML-formato. \u0108iu uzanto povas, post kiam li lernis la programan lingvon de tiuj reguloj, krei proprajn regulojn. Ekzistas nun aliaj a\u016dtoroj, kiuj nur kreas regulojn por iu lingvo. Tio rezultigas bonan partigon de laboro.<\/p>\n<h3>Libera programado<\/h3>\n<p>Tiu projekto estas anka\u016d bona ekzemplo por sukcesa kunlaboro de kelkaj liberaj projektoj (<em>Open Source)<\/em>. La bazan teknikon por trovi markilojn por vorto liveras la projekto de  <a href=\"http:\/\/www.eti.pg.gda.pl\/katedry\/kiw\/pracownicy\/Jan.Daciuk\/personal\/fsa.html\"> Finite state utilities<\/a> de Jan Daciuk. La reguloj por pola lingvo estas programita en alia devena projekto de <a href=\"http:\/\/blog.esperantilo.org\/\">Morfologik<\/a>. Mi skribis en <a href=\"http:\/\/blog.esperantilo.org\/?p=4\">mia blogo<\/a>, ke tiu tasko de markado (<em>pos tagging<\/em>) estas por esperanta lingvo tre simpla. Sed por aliaj lingvoj la tasko estas tre komplika. Mi supozas, ke la a\u016dtoro de projekto ne havis \u015dancojn realigi la projekton sen helpo de aliaj liberaj fontoj.<\/p>\n<p>Mi povas nur esperi, ke anka\u016d en Esperantujo krei\u011dos tiaj liberaj lingvistikaj iloj kaj lingvistikaj fontoj, kiuj helpas al sekvaj projektoj. Ekzemple estus grandege havi bazon de plej oftaj eraroj en Esperantaj tekstoj. Tre interesa estas la ideo de A\u016dtoro de projekto <em>morfologik<\/em> en  <a href=\"http:\/\/morfologik.blogspot.com\/2006\/12\/korpus-poprawek-z-polskiej-wikipedii.html\">blogo (pola lingvo)<\/a>, kiu sugestas analizi la \u015dan\u011dojn en <em>vikipedio<\/em>, \u0109ar ofte la \u015dan\u011doj estas korektoj de gramatiko kaj stilo. Mi jam anta\u016de penis pri analizo de mesa\u011doj en grupo <a href=\"http:\/\/groups.google.de\/group\/soc.culture.esperanto\">soc.culture.esperanto<\/a>, \u0109ar oni ofte trovas tie leterojn nur kun korektoj de anta\u016daj leteroj. Sed programo, kiu a\u016dtomate povas trovi tiujn korektojn, ne estus tre simpla.<\/p>\n<h3>Interesa historio de projekto<\/h3>\n<p>La kreinto de projekto \u015dajne ofte \u015dan\u011dis la strategion kaj eksperimentis kun diversaj ebloj. Li tri foje \u015dan\u011dis la programan lingvon kaj tute reprogramis la projekton. Unue li uzis <a href=\"http:\/\/eo.wikipedia.org\/wiki\/Perl\">Perl<\/a>, poste <a href=\"http:\/\/eo.wikipedia.org\/wiki\/Python\">Python<\/a> kaj nun <a href=\"http:\/\/eo.wikipedia.org\/wiki\/Java\">Java<\/a>. Mi trovis nur la klarigon, kial li \u015dan\u011dis la lingvon de Perl al Python. Python estas pli klara kaj pli bone objektema. La kialon por \u015dan\u011do de Python al Java mi ne trovis. La elekto de programa lingvo povus esti tre grava por projekto. Java-programoj bone kunlaboras kun OppenOffice sed kutime programado ne estas tiel efika kiel per Python. La programa lingvo estas ofte la unua kazo por trovi aliajn programistojn. En libera programado oni programas senpage, la programado devas \u011doji la programiston. Kaj multaj projektoj krei\u011das nur por tasko lerni a\u016d uzi ian teknikon.<\/p>\n<h3>Kion mi lernis de tiu projekto<\/h3>\n<p>Unue mi povas pririgardi la sukcesan projekton kaj pripensi \u011dian historion. \u011ci povus esti la imitmodelo anka\u016d por Esperantilo. Mi jam anta\u016de pensis pri stilaj korektoj en Esperantilo, kaj e\u0109 mi kolektis kelkajn proponojn, sed fine mi koncentri\u011dis pri ma\u015dina tradukado. Bona ideo estas evidente la ekstera difino de reguloj, kiuj povas esti redaktata de uzanto, kaj eblo mal\u015dalti kelkajn regulojn. Tio estas e\u0109 pli grava, \u0109ar en Esperantujo ekzistas kelkaj formoj, kiuj ne estas komune akceptitaj kaj diskutindaj. La dua leciono estas bona kunlaboro kun OpenOffice. Tiu estas eble la \u0109efa kazo por multaj kunhelpantoj kaj uzantoj. Esperantilo nun estas \u0109efe la traduka sistemo, kaj eble estus bone havi bonan kunlaboradon kun OpenOffice. Programi tion estas tre peniga kaj teknike komplika laboro. Mi esperas, ke eble iam kreas iu libera traduka sistemo por OpenOffice kaj mi devos nur enprogrami Esperantilon en tiun programon.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mi lastatempe detale rigardis la projekton LanguageTool de Daniel Naber. Tiu interesa projekto de germana programisto estas nun en relative matura stato. La projekto celas oferi gramatikan kaj stilan korektadon por diversaj lingvoj. La temo por mi tre interesa, \u0109ar anka\u016d Esperantilo oferas similajn funkciojn. Teknika Ideo La a\u016dtoro elektis tre pragmatikan metodon de gramatika [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,2],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-lingvistiko","category-programado"],"_links":{"self":[{"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32"}],"version-history":[{"count":0,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/posts\/32\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}