{"id":4,"date":"2006-10-30T18:00:58","date_gmt":"2006-10-30T17:00:58","guid":{"rendered":"http:\/\/blog.esperantilo.org\/?p=4"},"modified":"2009-12-07T23:02:51","modified_gmt":"2009-12-07T22:02:51","slug":"algoritmo-de-radikigo-por-esperantaj-vortoj","status":"publish","type":"post","link":"http:\/\/blog.esperantilo.org\/?p=4","title":{"rendered":"Algoritmo de radikigo por Esperantaj vortoj"},"content":{"rendered":"<p>Unu el la bazaj algoritmoj de komputila lingvistiko estas radikigo (angle: <em>stamming algorithm<\/em>). La programo pro radikigo (angle: <em>stammer<\/em>) oni povas nomi esperante: radikilo. La \u0109efa tasko de radikilo estas fortran\u0109i gramatikajn fina\u0135ojn de vorto.<\/p>\n<p>ekzemple:<\/p>\n<pre>faras -> fari\r\nhomoj -> homo\r\nlibrojn -> libro<\/pre>\n<p>Multaj radikiloj rezultigas anka\u016d gramatikan kategorion kaj signifon de vorto:<\/p>\n<pre>faras -> kategorio=verbo, radiko=fari, tempo=as\r\nlibrojn -> kategorio=substantivo, radiko=libro, nombro=pluralo, kazo=akuzativo<\/pre>\n<p>Tiun taskon oni nomas angle &#8222;tagging&#8220;.<\/p>\n<p>En multaj lingvoj rezultoj ne estas unusignifas. Por unu vorto povas rezultigi multajn radikoj (trunkoj) kaj multaj eblaj gramatikaj kategorioj. Por tre fleksiaj kaj neregulaj lingvoj kiel pola lingvo programi radikilon estas tre kompleksa tasko, kiu ofte estas granda separata projekto (vidu: radikilo por pola lingvo <a href=\"http:\/\/getopt.org\/stempel\/index.html\">Stempel<\/a>). Tiuj radikiloj bazi\u011das sur grandaj vortaroj kaj statistikaj tabeloj.<\/p>\n<p>Feli\u0109e en Esperanto la tasko de radikigo estas tre simpla, sed ekzistas anka\u016d kelkaj malfacila\u0135oj. Kalkajn primitivajn vortojn en Esperanto oni povas kosideri kiel kompleksaj radikoj kun speciala fina\u0135o.<\/p>\n<p>Ekzemple:<\/p>\n<pre>tamen - adjektiva formo de adverbo 'tame'\r\nkiu - ordona formo de verbo 'kii'\r\n\u0135us - formo de verbo '\u0135i'<\/pre>\n<p>Mi prezentas la algoritmon \u0109i tie en programlingvo Tcl, kiun mi uzas en la projekto:<\/p>\n<pre>\r\nproc radikigi vorto {\r\n    if {[lsearch {en \u011dis kies ties ies \u0109ies kaj iu neniu kiu tiu \u0109iu tamen jen \u0135us nun sen kun ajn kvin unu du} $vorto]>=0} {\r\n        return $vorto\r\n    }\r\n    if {[regexp {^(.+?)(jn|n|j)$} $vorto m radiko]} {\r\n       return $radiko\r\n   }\r\n   if {[regexp {^(.+)(is|as|os|us|u)$} $vorto m radiko]} {\r\n       return ${radiko}i\r\n   }\r\n   return $vorto\r\n}\r\n<\/pre>\n<p>Por fortran\u0109i fina\u0135ojn mi uzis &#8222;<strong>regular expresions&#8220;<\/strong>. Tiu algoritmo tamen ne radikigas participojn al baza verba formo.<\/p>\n<pre>konata -> koni<\/pre>\n<p>Se atentu la ekzemplon:<\/p>\n<pre>monato -> moni<\/pre>\n<p>Malfeli\u0109e en Esperanto ekzistas radikoj, kiuj havas participajn fina\u0135ojn. Tial oni bezonas vortaron kun priskribo de vortoj por majstri tiun taskon. La nombro de tiuj vortoj ne estas malgranda, ekzemploj: (soldato, advokato, diletanto, a\u016dtokrata, adekvata, eleganta) (\u0109u ekzistas verbo &#8211; dileti).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unu el la bazaj algoritmoj de komputila lingvistiko estas radikigo (angle: stamming algorithm). La programo pro radikigo (angle: stammer) oni povas nomi esperante: radikilo. La \u0109efa tasko de radikilo estas fortran\u0109i gramatikajn fina\u0135ojn de vorto. ekzemple: faras -> fari homoj -> homo librojn -> libro Multaj radikiloj rezultigas anka\u016d gramatikan kategorion kaj signifon de vorto: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-4","post","type-post","status-publish","format-standard","hentry","category-programado"],"_links":{"self":[{"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/posts\/4","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=4"}],"version-history":[{"count":0,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=\/wp\/v2\/posts\/4\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.esperantilo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}