Polski jest uznawany za jeden z najtrudniejszych języków. Okazuje się, że nie tylko ludzie mają z nim problemy
Język, którym ludzie posługują się intuicyjnie, jest nie lada wyzwaniem dla algorytmów. Coś, co dla nas jest oczywiste – znaczenie słów, relacje pomiędzy nimi, różnice tych znaczeń w zależności od kontekstu – to coś, z czym nawet najlepsze systemy wciąż radzą sobie najwyżej średnio. Dobrym przykładem jest Tłumacz Google, który – choć działa imponująco – wciąż robi błędy, których bez problemu ustrzegłby się średnio rozgarnięty uczeń podstawówki.
Te trudności są szczególnie wyraźne w przypadku języka polskiego, który ma niezwykle złożoną odmianę, w którym wyrazy przybierają mnóstwo form, a to wszystko upstrzone jest masą wyjątków. PolEval to inicjatywa, której celem jest rozwijanie narzędzi służących komputerowemu przetwarzaniu języka polskiego.
PolEval przenosi na polski grunt założenia akcji SemEval – serii warsztatów i konkursów, których celem jest wypracowanie i ocena technik przetwarzania języka naturalnego. W tegorocznej edycji organizatorzy – Zespół Inżynierii Lingwistycznej PAN oraz firma doradcza i szkoleniowa Sages – postawili przed uczestnikami siedem zadań, takich jak automatyczne rozpoznawanie mowy, tłumaczenie maszynowe czy automatyczne wykrywanie nękania w sieci.
Wśród uczestników znaleźli się pracownicy Ośrodka Przetwarzania Informacji – Państwowego Instytutu Badawczego – Szymon Roziewski i Łukasz Podlodowski z Laboratorium Inżynierii Lingwistycznej. Zaproponowane przez nich rozwiązania dwóch zadań zostały nagrodzone. Prezentują je dziś na konferencji AI & NLP Workshop Day w Warszawie.
Konkurs PolEval pokazał, jak ważne są dane i jak trudno przenieść rozwiązania, które działają dla innych języków, tak aby działały dla tłumaczeń na polski
Pierwsze zadanie polegało na stworzeniu systemu, który będzie automatycznie łączył wybrane słowa z haseł polskiej Wikipedii z odpowiadającymi im znaczeniami.
– Głównym problemem było ujednoznacznienie wieloznacznych wyrazów – mówi autor rozwiązania Szymon Roziewski. Wiele słów w Wikipedii ma więcej niż jedno znaczenie. By właściwie przyporządkować słowo do jego znaczenia, trzeba znać kontekst. W tym celu Roziewski nauczył sieć neuronową wskazywać słowo pasujące do zadanego kontekstu, a następnie poprzez porównanie kontekstów wskazać hasło o właściwym znaczeniu.
W drugim zadaniu, którego podjęli się przedstawiciele OPI, należało stworzyć system tłumaczenia maszynowego z angielskiego na polski, z rosyjskiego na polski i z polskiego na rosyjski. Łukasz Podlodowski podzielił je na dwie części i zastosował dwa osobne rozwiązania. Na potrzeby tłumaczenia z języka angielskiego zaadaptował model sieci neuronowej, który wcześniej z powodzeniem stosowano do tłumaczenia z języka angielskiego na niemiecki. – Problem jest znacznie bardziej skomplikowany, kiedy słowo może mieć wiele form fleksyjnych – mówi Podlodowski. W tej sytuacji, by utworzyć dobrze działające narzędzie, trzeba mieć bardzo dużo danych, w tym przypadku par zdań angielski-polski.
– Jeżeli używam uczenia głębokiego, potrzebuję też dużo wysokiej jakości danych. Odpowiednia wielkość sieci pozwala mi oczekiwać, że wzorce zostaną wyekstrahowane automatycznie bez ingerencji z zewnątrz. Można taki model traktować jak „czarną skrzynkę”, która za pomocą skomplikowanych procesów optymalizacji matematycznej uczy się sama – tłumaczy.
Głębokie uczenie to proces, w którym dane wejściowe (na przykład tekst czy obrazy) przechodzą przez kolejne warstwy wirtualnych „neuronów”. W każdej kolejnej warstwie dane są przedstawione w bardziej ogólny i abstrakcyjny sposób. W rezultacie sieć neuronowa jest w stanie odnaleźć ukryte i nieoczywiste zależności i wzorce w zbiorze danych. Proces głębokiego uczenia wymaga ogromnej ilości danych wejściowych i dużej mocy obliczeniowej.
Głębokie uczenie nie zawsze jest najlepszym narzędziem do wykonania jakiegoś zadania. – Starsze podejścia często opierały się na tym, że działanie systemu określa się za pomocą warunków logicznych, tzw. reguł, które przygotowane były przez ludzi. W przypadku tłumaczenia maszynowego mogą to być reguły gramatyczne – mówi Podlodowski.
Właśnie to „klasyczne” podejście okazało się skuteczne w tłumaczeniu między rosyjskim a polskim – języki są do siebie podobne, a organizatorzy udostępnili uczestnikom niewielki zbiór danych testowych, który nie pozwoliłby na wyuczenie wysokiej jakości sieci neuronowej. Zamiast tego autor zastosował rozwiązanie „hybrydowe”, łączące podejście statystyczne (do tłumaczenia pojedynczych słów z jednego języka na drugi) i szereg reguł gramatycznych pozwalających na dobór odpowiedniej formy wyrazu.
– Ten konkurs najbardziej pokazał to, jak ważne są dane i jak skomplikowany jest problem przeniesienia rozwiązań, które działają dla innych języków, tak aby działały dla tłumaczeń na polski – mówi Podlodowski.