Litery jak strzały

Prof. Regina Barzilay z Massachusetts Institute of Technology: Języki odczytuje się latami i wymaga to ogromnych nakładów pracy. Maszyna może to zrobić szybciej i lepiej. Rozmawiał Rafał Motriuk

07.09.2010

Czyta się kilka minut

Rafał Motriuk: Co to za język - ugarycki?

Prof. Regina Barzilay: To stary semicki język odkryty w rejonie Syrii, w latach 20. Pewien człowiek podczas orki, znalazł na swoim polu jakieś stare tablice i dał znać władzom. Potem specjaliści znaleźli kolejne tablice zapisane tym językiem. Wtedy usilnie próbowano zrozumieć ugarycki. Lingwiści spędzili na tym lata pracy; najpierw zorientowano się, że ten język jest podobny do hebrajskiego. Potem wreszcie go odczytano. Ugarycki jest zbliżony do hebrajskiego trochę tak, jak hebrajski do arabskiego. Osoba mówiąca po hebrajsku niekoniecznie automatycznie posługuje się arabskim, ale może odgadnąć znaczenie niektórych arabskich słów. Inna analogia to podobieństwa języków słowiańskich. Jednak pisownia ugaryckiego różni się od alfabetu hebrajskiego. Wizualnie nie ma żadnych podobieństw. Znaki ugaryckie wyglądają trochę jak groty strzał czy małe, długie trójkąciki poukładane w różny sposób. W hebrajskim pisze się od prawej do lewej, w ugaryckim odwrotnie. Natomiast są zdecydowane podobieństwa w głoskach, bo języki te wywodzą się od tego języka protosemickiego.

Ciekawe w Pani badaniach wydaje się to, że komputer pracował nad odczytaniem języka tylko kilka godzin. Ale najcięższą pracą było zapewne napisanie specjalnego programu komputerowego - i to trwało kilka lat?

Tak, trochę to trwało i nie mówię tu tylko o pisaniu programu. Zanim wykonaliśmy tę główną pracę naukową, musieliśmy zebrać dane, przewertować je i "oczyścić", żeby otrzymać odpowiedni format. Bo przecież wcześniej nie istniały gotowe, kluczowe dane dotyczące ugaryckiego w formatach, które dawałoby się analizować. Potem pracowaliśmy nad odpowiednim modelem analitycznym, co też nam zajęło kilka miesięcy.

Jak działa taki program odkodowujący nieznane języki - czy można go porównać do np. Tłumacza Google’a?

Nie, istnieje pewna zasadnicza różnica. Tłumaczenie Google’a jest chyba bardziej zbliżone do modelu Kamienia z Rosetty [zabytek literatury staroegipskiej, który umożliwił odczytanie egipskich hieroglifów. Był to ten sam tekst zapisany w trzech wersjach i dwóch językach, by mogli go zrozumieć zarówno Egipcjanie, jak i Grecy - RM]. Dzisiejsze mechaniczne czy raczej elektroniczne maszyny tłumaczące opierają się na gotowych tekstach przetłumaczonych jednocześnie, powiedzmy na angielski czy francuski. W takim przypadku można się przyjrzeć występowaniu poszczególnych słów, a to daje pojęcie, które z nich są odpowiednikami innych w równoległym języku. W przypadku prawdziwego odczytywania od zera, nie ma zwykle innych tekstów, które byłyby odpowiednikami tego odczytywanego. Jest tylko zapis w nieznanym języku. Nie ma tłumaczeń na żaden znany język. Bo jeżeli takie tłumaczenia istnieją, to wtedy odczytywanie nieznanego języka jest bardzo łatwe.

Czy można porównać jakość pracy Waszego programu z takim tłumaczeniem, jak to w Google’u, które czasem pozostawia wiele do życzenia?

Tłumacz Google’a nie jest zły. Najlepiej sprawdza się w językach, które są do siebie zbliżone. I jest coraz lepszy. W przypadku naszego odczytywania proces wygląda trochę inaczej i jest bardzo skomplikowany. Są przecież ciągle języki, które pozostają nieodczytane. Gdyby ich odkodowanie było tak łatwe, jak przetłumaczenie tekstu angielskiego na francuski za pomocą Google’a, to już dawno by to zrobiono. Niekiedy badacze nad odczytaniem tekstów w nieznanych językach pracowali kilkadziesiąt lat. I trudno się dziwić: mamy jakiś tekst, nie wiemy, co oznaczają poszczególne znaki ani poszczególne słowa. I oczywiście można się posłużyć jakimś znanym językiem jako narzędziem pośredniczącym, ale niepewność pozostaje ogromna.

Skoro mówimy o niepewności - musieliście przyjąć pewne założenia dotyczące ugaryckiego, względem częstotliwości występowania pewnych samogłosek, spółgłosek czy zbitek...

Pracę ułatwiło nam założenie, że język jest alfabetyczny i że możemy rozpoznać wszystkie litery. Niekoniecznie byłoby tak np. w językach Majów, ale tu łatwiej było przyporządkować litery do symboli. Mieliśmy także na uwadze to, jak w przeszłości badacze odczytywali języki. A tu także przyjmuje się założenia. Pierwsze jest takie: jeśli spojrzysz na alfabety dwóch pokrewnych języków, to chcesz się dowiedzieć, jakie jest mapowanie [czyli przyporządkowanie - RM] liter obu tych języków. W większości przypadków mapowanie jest jak jeden do jednego, czyli maszyna nie pozwala na przyporządkowanie jednej literze kilkunastu innych w drugim języku. Jest to więc system bardzo rygorystyczny. To założenie znacznie zmniejsza liczbę możliwości. Drugie założenie jest takie, że gdy patrzymy na mapowanie liter, chcemy uzyskać jakąś spójność, by jednocześnie można było stworzyć mapowanie na poziomie słów. Ludzie zakładają bowiem, że istnieją jakieś kognaty, czyli słowa brzmiące podobnie w obu językach.

Komputer dokonał obliczeń i dał wynik. Jak sprawny okazał się program, jak dokładne było odczytanie języka ugaryckiego?

Spośród słów, które są podobne do słów w hebrajskim, czyli są kognatami, poprawnie zidentyfikowaliśmy 63 procent.

A mogliście to ocenić dzięki temu, że teksty w języku ugaryckim były już wcześniej odczytywane, więc mieliście skalę porównawczą?

Tak, wybraliśmy ugarycki właśnie dlatego. Ten język jest bardzo interesujący dla biblioznawców, dlatego że napisano w nim pewne teksty czy poezję w czasach bliskich biblijnym. W ostatnim stuleciu badano go bardzo dokładnie, więc mieliśmy faktycznie dobre tłumaczenia.

Wyobrażam sobie, że teraz będziecie chcieli odkodować inne nieodczytane języki, ale nie da się po prostu skorzystać z tego samego programu?

Naturalnie, że podejmiemy takie próby. Zastanawiamy się teraz, co robić. Jest przecież sporo nieodczytanych języków zarówno alfabetycznych (gdzie alfabet złożony z samogłosek i spółgłosek reprezentuje sylaby i wyrazy), jak i niealfabetycznych (posługujących się obrazkami, tak jak np. język japoński). Szukamy odpowiednich kandydatów.

Jakieś konkretne kandydatury?

Zastanawiamy się nad językiem etruskim [mówiono nim do I w. n.e. na terenach dzisiejszych Włoch - RM]. Wymarł dawno temu i na razie nie było większych przełomów w jego odkodowywaniu. Interesują nas także języki rdzennych Amerykanów; po opublikowaniu naszej pracy o języku ugaryckim otrzymaliśmy wiele próśb dotyczących właśnie języków Indian. Na pewno chcemy, by był to język różniący się od ugaryckiego i hebrajskiego.

Jakie mogą być praktyczne zastosowania takich programów komputerowych? Czy pomogą one w rozwoju sztucznej inteligencji, a może przydadzą się osobom z różnymi zaburzeniami mowy?

Tak, połączenie ze sztuczną inteligencją wydaje się bardzo kuszące. To zresztą już jest dziedzina dość dobrze rozwinięta. Gdy kupujemy jakieś produkty, to często otrzymujemy automatyczne rekomendacje. Gdy w użyciu jest nasza karta kredytowa, specjalne systemy sprawdzają, czy nie są to zachowania podejrzane i czy na tę potencjalnie podejrzaną transakcję nie należałoby zwrócić uwagi. Jest mnóstwo zastosowań sztucznej inteligencji - rozumianej jako uczenie się przez maszyny. Skoro już wspominamy Google’a, to wiele programów tej firmy, z których korzystamy codziennie, opartych jest na SI.

Nam na początku projektu przyświecały dwa cele. Po pierwsze, czy potrafimy stworzyć technologie rozwiązujące problemy bardzo trudne dla człowieka? Języki odczytuje się bardzo długo, trwa to latami i wymaga ogromnych nakładów pracy. Jeśli ktoś mówi, że język zostanie odczytany w ciągu dwóch czy trzech lat, to oznacza, że większość słów w tym języku jest już znana. Więc maszyna może to zrobić szybciej i lepiej? Drugie, bardziej praktyczne zastosowanie dotyczy tłumaczenia języków, które znamy bardzo słabo, mamy mało danych. Dzisiejsze elektroniczne urządzenia tłumaczące bazują na ogromnej ilości danych, dostępnych w języku źródłowym i tym, na który tekst jest tłumaczony. A przecież na świecie jest wiele języków, które nie mają aż takich zasobów jak np. języki europejskie. Więc może w przypadku tych uboższych języków nasz program też może okazać się użyteczny?

Zajmuje się Pani również innymi badaniami - widziałem na przykład Pani program do automatycznego pisania haseł do Wikipedii.

Tak, stworzyliśmy taki system. Automatycznie wygenerowane hasła znajdują się na mojej stronie internetowej (http://people.csail.mit.edu/regina/). Nasz program niejako analizuje istniejące hasła, a potem przeszukuje internet w poszukiwaniu podobnych treści i składa je w całość, w formie encyklopedycznego hasła. Zajmujemy się głównie hasłami bardzo ubogimi, w Wikipedii zwanymi zalążkami hasła. Zwykle jest tak, że zamieszczamy w Wikipedii naszą propozycję automatycznie wygenerowanego artykułu, a potem redaktor (człowiek) poprawia treść. I w ten sposób powstają pełne hasła.

Dziękujemy, że nas czytasz!

Wykupienie dostępu pozwoli Ci czytać artykuły wysokiej jakości i wspierać niezależne dziennikarstwo w wymagających dla wydawców czasach. Rośnij z nami! Pełna oferta →

Dostęp 10/10

  • 10 dni dostępu - poznaj nas
  • Natychmiastowy dostęp
  • Ogromne archiwum
  • Zapamiętaj i czytaj później
  • Autorskie newslettery premium
  • Także w formatach PDF, EPUB i MOBI
10,00 zł

Dostęp kwartalny

Kwartalny dostęp do TygodnikPowszechny.pl
  • Natychmiastowy dostęp
  • 92 dni dostępu = aż 13 numerów Tygodnika
  • Ogromne archiwum
  • Zapamiętaj i czytaj później
  • Autorskie newslettery premium
  • Także w formatach PDF, EPUB i MOBI
89,90 zł
© Wszelkie prawa w tym prawa autorów i wydawcy zastrzeżone. Jakiekolwiek dalsze rozpowszechnianie artykułów i innych części czasopisma bez zgody wydawcy zabronione [nota wydawnicza]. Jeśli na końcu artykułu znajduje się znak ℗, wówczas istnieje możliwość przedruku po zakupieniu licencji od Wydawcy [kontakt z Wydawcą]

Artykuł pochodzi z numeru TP 37/2010