Spis treści Artykuł originalny « Poprzedni artykul Nastepny artykul »

Tłumaczenie maszynowe: język angielski do esperanckiego języka

Maŝina tradukado: angla lingvo al esperanta lingvo

Orignał w języku EsperantoMaszynowe tłumaczenie na język polski

La plej bezonata maŝina tradukado estas la tradukado inter iu nacia lingvo kaj angla lingvo. Bedaŭrinde la angla lingvo estas tre komplika lingvo por sintaksa analizo. Aliflanke tiu lingvo estas la plej bone esplorita lingvo en komputila lingvistiko. Antaŭ kelkaj monatoj mi eksperimentis pri maŝina tradukado de pola lingvo. Tiu tradukado nuntempe estas tute taŭga. Mi pensis ankaŭ pri maŝina tradukado de angla lingvo. Por tiu tasko la plej grava estas bona sintaksa analizo.
Mi denove traserĉis la interreton kaj ekkovris kelkajn liberajn projektojn, kiuj okupas pri sintaksa analizo de angla lingvo. La plej okulfrapa estis la projekto “Link Grammar Parser”. Tiu universitata projekto liveris ne nur teoriajn rezultojn sed pretan analizilon por angla lingvo. La analizilo enhavas ankaŭ la tutan vortaron kaj priskribo de angla sintakso. Ankaŭ kelkaj aliaj projektoj uzis tiun programon. Tio estas bona indiko por kvalito de projekto. Mi trovis kelkajn projektojn, kiuj rilatas kun “link parser”.

Tiu analizilo estas ankaŭ programita per programa lingvo C. Tiun lingvon oni povas tre facile kunligi kun Tcl. Oni ja prave diras, ke Tcl estas la gluteno por programoj skribitaj en C. Mi devis nur programi mallongan interfacon inter Tcl kaj C. Tio estis farita en unu tago. Nuntempe fakte la programa lingvo C estas la plej universala programa lingvo, kiu rulas sur ĉiu komputilo sen ĝenaj premisoj. Tion oni ne povas diri pri la nuntempe populara programa lingvo “Javo”, kiu ĉiam faras problemojn, uzas tro da memoro kaj estas katastrofe malrapida.

Mi testis iomete la analizilon. Unue la analizilo rezultas ne sintaksajn arbojn sed la aron de ligiloj. Oni tamen povas facile konstrui de tiuj informacioj la sintaksan arbon. La analizilo povas ankaŭ trovi la gramatikan kategorion por ĉiu vorto. Tiu estas tre grava ĉe angla lingvo, ĉar tio estas en tiu lingvo tre ambigua afero. Kelkaj ekzemploj:

I read a book
       +---Os---+
 +-Sp*i+   +-Ds-+
 |     |   |    |
I.p read.v a book.n

I have written the computer program

               +-----------Os-----------+
               |      +--------Ds-------+
 +-Sp*i+---PP--+      |       +----AN---+
 |     |       |      |       |         |
I.p have.v written.v the computer.n program.n


De tiuj informoj oni relative facile povas traduki al esperanta lingvo. Oni devas simple analizi la ligilojn de vortoj. Tiel oni poves ekkoni, ĉu iu vorto estas objekto (en esperanto akuzativo). Tiuj subjektoj havas maldekstran ligilon kun simbolo “OS”. La unua malfacilaĵo estas, ke tiu analizilo ne trovas la bazajn formojn (vortaroj formoj) de vortoj. Do la programo devas mem diveni, ke la baza formo de “written” estas “write”. Kelkfoje oni devas reordigi la vortojn (ekzemple ĉe negado aŭ angla genetivo father’s)
Mi programis unu semajnon la maŝinan tradukadon kaj la rezultoj ne estas malbonaj.

Do nun Esperantilo en eldono 0.97 tradukas tiujn du ekzemplajn frazojn.

I read a book. - Mi legas libron.
I have written the computer program. - Mi skribis la komputilan programon.

Por simplaj frazoj tio funkcias preskaŭ perfekte. La limoj troviĝas nun en la ebloj de analizilo “link parser”. Tiu analizilo estas por longaj frazoj malrapida. Feliĉe ekzistas la eblo interrompi la analizon de frazo, se la bezonata tempo estas tro granda. Nun mi tiel agordis la analizion, ke ĝi ne povas uzi por anlizo de unu frazo pli ol 30 sekundoj. Por uzanto la traduko de angla lingvo estas okulfrape pli malrapida ol la traduko en alia direkto. Mi pensas, ke pro tio la analizilo ne estas taŭgo por uzo en interreta traduka servo. Tio estas tro kosta afero. La analizilo havas ankaŭ problemojn kun parentezoj, citaĵojn kaj fremdlingvaj vortojn. Do ĝi komplete rifuzas la analizon, se en la teksto troviĝas fremdlingvaj singoj aŭ ĝenerale UTF-8 signoj. Do mi devis programi la alternativan tradukadon por frazoj, kiuj ne povas esti analizitaj de “link parser”. Tiu alternativa tradukado estas simpla vorta tradukado.

Ekzistas ankaŭ multaj aferoj, kiujn oni povas plibonigi. La plej grava afero estas la tradukado de ambiguaj anglaj vortetoj kiel “there, this, that, by, to, too, …”. Ofte oni devas nur analizi la legilojn por trovi la necesan tradukon.
Jen ekzemplo:

+--Ds-+--Ss-+--Pv--+--MVp-+-J+
 |     |     |      |      |  |
the book.n is.v written.v by me

         +---Js---+
 +-Ss+-Pp+  +--Ds-+
 |   |   |  |     |
he is.v by the table.n

La laboro ne estas facila. Ekzistas multega nombro de eblaj nomoj por legiloj. La dokumentaro de “link parser” ne estas aktuala kaj kompleta. Do oni precipe devas simple testi multajn frazojn. La programo ne estas ŝajne plu evoluigita. La lasta eldono devenas de jaro 2005.

Jam kun tiu eldono mi rimarkis, ke la kvalito de tradukoj estas pli bona ol la kvalito de aliaj
atingeblaj tradukiloj inter angla kaj esperanta lingvo. Esperantilo nun povas bone traduki negadon, kompleksajn tempojn kaj rekonas akuzativon.

Por plibonigi la kvaliton la plej grava estus la plivastigo de vortaro. Do multa laboro estas ankoraŭ farinda. Kiel kutime mi iom post iom esperas plibonigi la tradukadon. Bedaŭrinde mia kono de angla lingvo ne estas tre bona. Mi delonge lernas tiun lingvon, sed ĝis nun havas problemojn. Ofte mi komprenas ĉiun unuopan vorton en la frazo, sed la tuta frazo estas por mi sensenca. Mi supozas, ke por samaj kialoj la konstruo de sintaksa analizilo por angla lingvo estas tiel malfacila.

Najpotrzebniejsze tłumaczenie maszynowe jest tłumaczeniem pomiędzy jakimś narodowym językiem i językiem angielskim. Niestety język angielski jest bardzo skomplikowanym językiem dla syntaktycznej analizy. Skądinąd tym językiem jest najlepiej wybadany język w językoznawstwie komputerowym. Przed kilkoma miesiącami zrobiłem doświadczenia o tłumaczeniu maszynowym polskiego języka. To tłumaczenie obecnie jest całkiem zdatne. Myślałem także o tłumaczeniu maszynowym angielskiego języka. Dla tego zadania najważniejszego jest dobra syntaktyczna analiza.
Od nowa przeszukałem Internet i {ekkovris} kilka wolnych projektów, które zajmują o syntaktycznej analizie angielskiego języka. Najbardziej rzucający się w oczy był projekt “Linka Grammar Parser”. Ten uniwersytecki projekt wydał nie jedynie teoretyczne wyniki lecz gotowego analizatora dla języka angielskiego. Analizator mieści także cały słownik i opis składni angielskiej. Także kilka innych projektów użytkowało ten program. To jest dobra oznaka dla jakości projektu. Znalazłem kilka projektów, które odnoszą się z “{link} {parser}”.

Ten analizator jest także wcześniej programowany programowym językiem C. Ten język można bardzo lekko powiązać z Tcl. Wszakże słusznie mówi się, że Tcl jest glutenem dla programów napisanych w C. Musiałem jedynie programować krótki interfejs pomiędzy Tcl i C. To zostało zrobione w jednym dniu. Obecnie faktycznie język programowy C jest najpowszechniejszym językiem programowym, który toczy na każdym komputerze bez żenujących przesłanek. Tego nie można powiedzieć o obecnie słynny język programowy “{Javo}”, który zawsze robi problemy, użytkuje się zbyt pamięci i jest się katastroficznie wolne.

Testowałem troszeczkę analizatora. Po pierwsze analizator wynika nie syntaktyczne drzewa lecz grupę linków. Jednak można lekko budować od tych {informacioj} syntaktyczne drzewo. Analizator może także znaleźć gramatyczną kategorią dla każdego słowa. Ten jest bardzo ważny przy języku angielskim, ponieważ to jest w tym języku bardzo dwuznaczna sprawa. Kilka przykładów:

I read a book
       +---Os---+
 +-Sp*i+   +-Ds-+
 |     |   |    |
I.p read.v a book.n

I have written the computer program

               +-----------Os-----------+
               |      +--------Ds-------+
 +-Sp*i+---PP--+      |       +----AN---+
 |     |       |      |       |         |
I.p have.v written.v the computer.n program.n


Od tych informacji względnie lekko można tłumaczyć do esperanckiego języka. Trzeba po prostu rozpatrywać linki słów. Tak {poves} poznać, czy jakimś słowem jest rzecz (w esperanto bierniku). Ci subiekci mają lewy link z symbolem “OS”. Pierwsza trudność jest, że ten analizator nie znajduje kluczowych kondycji (słowniki kondycje) od słów. Więc program musi sam zgadywać, że kluczowa kondycja od “{written}” jest “{write}”. Kilkakrotnie trzeba segregować ponownie słowa (na przykład przy zaprzeczeniu albo {genetivo} angielskim father’s)
programowałem jeden tydzień tłumaczenie maszynowe i wyniki nie są złe.

Więc teraz Esperantilo w wydaniu 0.97 tłumaczy te dwa przykładowe zdania.

I read a book. - Mi legas libron.
I have written the computer program. - Mi skribis la komputilan programon.

Dla prostych zdań to funkcjonuje nieomal wspaniale. Granice znajdują się teraz w możliwościach analizatora “{link} {parser}”. Ten analizator jest dla długich zdań wolnych. Szczęśliwie istnieje możliwość przerywać analizę zdania, jeśli potrzebny czas jest zbyt duży. Teraz tak ustawiłem {analizion}, że ono nie może użytkować dla {anlizo} jednego zdania więcej aniżeli 30 sekund. Dla użytkownika tłumaczenie angielskiego języka jest {okulfrape} wolniejsze aniżeli tłumaczenie w innym kierunku. Myślę, że z powodu tego analizator nie jest nadawaniem dla użycia w internetowej usłudze tłumaczeniowej. To jest zbyt kosztowna sprawa. Analizator ma także problemy z nawiasami, cytaty i obcojęzyczni słowa. Więc ono zupełnie odmawia analizę, jeśli w tekście znajdują się obcojęzyczne {singoj} albo ogólnie UTF-8 skinienia. Więc musiałem programować alternatywne tłumaczenie dla zdań, które nie mógą zostać wcześniej rozpatrywane od “{link} {parser}”. Tym alternatywnym tłumaczeniem jest proste tłumaczenie wyrazowe.

Istnieją także liczne sprawy, które można ulepszyć. Najważniejsza sprawa jest tłumaczeniem dwuznacznych angielskich słówk jak “{there}, {this}, {that}, {by}, {to}, {too}, …”. Często trzeba jedynie rozpatrywać czytniki aby znaleźć konieczne tłumaczenie.
Oto przykład:

+--Ds-+--Ss-+--Pv--+--MVp-+-J+
 |     |     |      |      |  |
the book.n is.v written.v by me

         +---Js---+
 +-Ss+-Pp+  +--Ds-+
 |   |   |  |     |
he is.v by the table.n

Praca nie jest łatwa. Istnieje wieloliczna liczba możliwych nazw dla czytników. Dokumentacja od “{link} {parser}” nie jest aktualna i kompletna. Więc przede wszystkim trzeba po prostu testować liczne zdania. Program nie jest na pozór dalej {evoluigita}. Ostatnie wydanie pochodzi z roku 2005.

Już z tym wydaniem zauważyłem, że jakość tłumaczeń jest lepsza aniżeli jakość innych
osiągalnych kompilatorów pomiędzy angielskim i esperanckim językiem. Esperantilo teraz może dobrze tłumaczyć zaprzeczenie, skąplikowane czasy i rozpozna biernik.

Aby ulepszyć jakość najważniejsze byłoby poszerzenie słownika. Więc liczna praca jest jeszcze godna postępku. Jak zazwyczaj krok po kroku mam nadzieję ulepszyć tłumaczenie. Niestety moja wiedza angielskiego języka nie jest bardzo dobra. Od dawna uczę się tego języka, lecz do teraz mam problemy. Często rozumiem każde pojedyncze słowo we zdaniu, lecz całe zdanie jest dla mnie absurdalne. Przypuszczam, że dla takich samych motywów budowa syntaktycznego analizatora dla języka angielskiego jest tak trudna.

Artukuł został przetłumaczony w pełni maszynowo przez wolny program Esperantilo
Adres kontaktowy:
mail@xdobry.de