Zrozumieć język

W Instytucie Podstaw Informatyki PAN trwają prace nad automatycznym przetwarzaniem języka polskiego. Naukowcy zajmujący się tym zagadnieniem działają w obszarze tzw. lingwistyki komputerowej.

W Instytucie Podstaw Informatyki PAN trwają prace nad automatycznym przetwarzaniem języka polskiego. Naukowcy zajmujący się tym zagadnieniem działają w obszarze tzw. lingwistyki komputerowej.

Język to fascynujące osiągnięcie cywilizacji. Praktycznie każda kultura stworzyła własny język. Zawsze, będąc dziełem człowieka (powstałym na przestrzeni rozwoju wielu pokoleń), którego nie udaje się do końca zbadać, stanowi jeden z naturalnych wyrazów inteligencji ludzkiej. Zastosowanie języka naturalnego do komunikacji z komputerem stanowi jeden z obszarów prac nad rozwojem sztucznej inteligencji. Posługując się na co dzień ojczystym językiem, na ogół w ogóle nie zdajemy sobie sprawy, jak bardzo skomplikowany jest to twór. Daje to o sobie znać, gdy w umiejętność rozumienia języka naturalnego chcemy wyposażyć komputery.

Stosowana lingwistyka komputerowa miałaby zasklepić pęknięcie na płaszczyźnie komunikacji między człowiekiem a maszyną. Komputer nie potrafi zrozumieć języka naturalnego, którym posługuje się użytkownik, użytkownik (zwłaszcza ten przeciętny) zaś ma ogromne trudności w nauczeniu się reguł porozumiewania, które rozpoznaje komputer. Klasycznym przykładem są wyszukiwarki internetowe, które na ogół wymagają od użytkownika, by był on w stanie zadać zapytanie w forma- cie zrozumiałym w języku bazoda- nowym, jeśli nie wystarcza wprowa- dzenie samych słów kluczowych. Chwila, w której komputery pojmą polecenia wydawane w języku natu- ralnym, stanie się momentem prze- łomowym, zostaną otwarte zupeł- nie nowe obszary rozpowszechnienia technologii komputerowej. Komputer stanie się faktycznie przyjaznym dla użytkownika urządzeniem. Dzi- siaj jest to możliwe jedynie w przypadku posługiwania się bardzo ograni- czonym i zdefiniowanym wcześniej zbiorem słów.

Teoretyczna lingwistyka komputerowa tworzy modele języka, które są tak bardzo złożone, że często nie można nad nimi pracować nie korzystając z komputera. Tworzone są programy, które pozwalają na weryfikowanie teorii i ich dalsze rozwijanie. Na rozwój lingwistyki komputerowej mają wpływ i inne nauki kognitywistyczne, w tym psycholingwistyka (powiązanie procesów psychicznych z powstawaniem, uczeniem i rozumieniem mowy).

Celem "od zawsze" stawianym przed komputerami było automatyczne tłumaczenie tekstu na różne języki. Niestety, osiągane dzisiaj rezultaty nie są zadowalające i komputerowe przekłady z reguły są niezgrabne językowo, miejscami wręcz bezsensowne. A prędko się tego nie zmieni.

Nie tak łatwo

Należy przede wszystkim rozróżnić analizę (przetwarzanie, czyli Natural Language Processing) języka naturalnego od jego rozumienia. Rozpoznawanie to w gruncie rzeczy działanie podstawowego modułu kompilatorów języków programowania, czyli tzw. parsera. Zazwyczaj przetwarza on wejściowy zbiór symboli (ciąg znaków czy zdanie) na strukturę w postaci drzewa, która pozwala odtworzyć, w jaki sposób z danej gramatyki wyprowadzono dany zbiór.

Ten zbiór to w prostym przypadku program komputerowy napisany w kodzie źródłowym. W odniesieniu do języka naturalnego to dowolna wypowiedź. Trudność polega na bardzo wysokim stopniu złożoności gramatyki języka naturalnego. W przypadku języka komputerowego można ją zapisać na kilku czy kilkunastu kartkach. Język naturalny nie daje się w pełni opisać żadną gramatyką, a przynajmniej nikomu to się jeszcze nie udało.

"Żadna gramatyka nie jest nigdy kompletna. Bogactwo języka naturalnego zawsze wymyka się z wszelkich formalnych opisów" - mówi Małgorzata Marciniak. Właśnie tropieniem różnych "dziwnych" form i zjawisk językowych zajmują się lingwiści komputerowi, choć oczywiście nie stanowi to głównego obszaru ich działalności, bowiem jest nim tworzenie formalnego opisu różnych konstrukcji językowych. Formy te i zjawiska w dużym stopniu zależą od konkretnego języka, każdy z nich ma nietypowe reguły, wyjątki czy idiomy.

Charakterystyczne zagadnienie w języku polskim to np. uzgadnianie form liczby i rodzaju pomiędzy liczebnikiem i rzeczownikiem czy np. znane już w kręgach lingwistów zdanie "siwe poschylały głowy". Jakie siwe? Głowy siwe? Czy te siwe poschylały? To tzw. frazy nieciągłe. Tutaj niestety komputery głupieją. Brakuje informacji o kontekście, bez której niemożliwie staje się prawdziwe rozumienie tekstu.

"Staramy się opisać różne zawiłości naszego języka. To ogromna praca" - podkreśla Agnieszka Mykowiecka. Rozmiar rozpoznawanego podzbioru języka naturalnego można zwiększać poprzez mnożenie liczby reguł (ekspansję gramatyki) lub dodawanie informacji związanych z wyrazami zapisanymi w słowniku. Na ogół podąża się równolegle obiema drogami.

Analiza jest w pewnym sensie kompilacją języka naturalnego. Kompilacja umożliwia wychwycenie błędów składniowych, czyli odstępstw od wskazanej gramatyki. "Pozwala to np. stwierdzić, czy dany tekst został napisany poprawnie po polsku" - mówi Anna Kupść. Tutaj oczywiście można sobie od razu wyobrazić hipotetycznego wirtualnego nauczyciela, który będąc programem komputerowym wskazywałby uczniowi poczynione przez niego w wypracowaniu błędy składniowe. Droga do takich programów jest jednak daleka i to nawet w przypadku języka angielskiego, o czym dobrze świadczy np. korektor gramatyczny zawarty w programie MS Word, którego główna funkcja sprowadza się do wskazywania zbyt długich zdań. "Efekty prac nad przetwarzaniem języka naturalnego mogą być również wykorzystywane w jego syntezie, czyli automatycznym tworzeniu wypowiedzi języka naturalnego" - twierdzi Adam Przepiórkowski.

Rozpoznawanie jest więc czymś, co stanowi warunek konieczny do rozu-mienia języka naturalnego. Jest jed- nak znacznie prostsze, dlatego w tym obszarze ogniskuje się większość pro- wadzonych badań. Ich efekty są już wykorzystywane w praktyce, np. w wyszukiwarkach internetowych.

Niezupełnie jak w C i Pascalu

Znawcy metod translacji, nauki informatycznej, której rozwój w latach 60. i 70. pozwolił na stworzenie nowoczesnych kompilatorów i języków pro- gramowania, wyróżniają języki kontekstowe i bezkontekstowe. Te ostatnie wymagają wykonywania znacznie mniejszej liczby obliczeń do rozpoz- nania tekstu niż w przypadku języka kontekstowego. Język naturalny jest w pewnym sensie kaskadą języków bezkontekstowych, tj. większość rzeczy udaje się opisać w sposób bezkontekstowy, natomiast do powiązania całości potrzebne są reguły kontekstowe. Tutaj widać ścisłe powiązanie informatyki z lingwistyką komputerową. Obie bowiem są oparte na pracach Chomsky'ego sprzed kilkudziesięciu już lat.

Znaczna część formalizmów powinna być niezależna od konkretnego języka. "Takie też powinny być teorie lingwistyki komputerowej" - uważa Agnieszka Mykowiecka. Potrzebna jest zatem grupa egzotycznych języków do testowania stopnia niezależności. Co ciekawe, język polski jest zaliczany do grupy języków typowych.

Celem jest uzyskanie sposobu zapisu reguł języka, tak aby najlepiej przystawał do wiedzy o języku i dawał opis uogólnień. Opis musi być dostatecznie ścisły, by można go było przetłumaczyć na program. Zarazem musi odpowiadać uwarunkowaniom, jakie nakładają reguły obliczeniowe komputerów. Zdanie składające się z kilkunastu słów może mieć tysiące różnych drzew rozbiorów!

Język angielski wcale nie jest językiem prostym, chociaż nie ma tam problemów z koniugacją czy deklinacją, które stanowią pewne utrudnienie w języku polskim. Język angielski ma jednak własne meandry. "Angielskim zajmują się ogromne sztaby naukowców, dlatego lingwistyka komputerowa rozwinęła się najbardziej właśnie w przypadku tego języka. To właśnie może stwarzać mylne wrażenie, że pewne rzeczy, które da się zrobić z angielskim, są trudne czy wręcz niemożliwe w przypadku języka polskiego" - twierdzi Agnieszka Mykowiecka. W przypadku języka polskiego nie ma gotowych produktów opisujących jego składnię, w ogóle brakuje parserów uwzględniających semantykę naszego języka.

Dwa łyki statystyki

Można również stosować rozwiązania koncepcyjnie prostsze, czyli metody statystyczne. Są one oparte na maszynowym uczeniu zależności statystycznych w języku. Do komputera ładuje się ogromną liczbę różnych tekstów, na bazie których można zbudować bazę zawierającą dane o tym, ile razy występują określone słowa, i w jakich związkach frazeologicznych i jakim sąsiedztwie. W ten sposób uzyskuje się informację o prawdopodobieństwie, że dany sposób odczytania określonego zdania będzie poprawny (na metodach statystycznych często są oparte analizatory rozpoznające teksty mówione, tzw. voice recognition). "Język to bardzo złożone zjawisko statystyczne" - mówi Łukasz Dębowski. - "Ale dotychczas stosowany aparat matematyczny do przetwarzania zjawisk statystycznych niezbyt przystaje do potrzeb analizy języka". Klasyczny rachunek prawdopodobieństwa jest oparty głównie na zjawiskach niezależnych, a o to raczej trudno w przypadku języka. Dlatego próbuje się łączyć oba podejścia - formalizmy (metody symboliczne) i statystykę.

Takie "karmienie" komputera bogatymi zbiorami tekstów przypomina oczywiście proces uczenia sieci neuronowej na bazie gotowych przykładów. Lecz to właśnie sieć neuronowa, czy raczej jej symulacja w pamięci komputera, jest przecież złożoną bazą informacji statystycznych. To układy o bardzo skomplikowanej dynamice, których działanie w znacznym stopniu zależy od sposobu ich zaprogramowania. Wciąż nie wiadomo, jak tak naprawdę powinno się to robić. W tym kontekście marzenia o sieci neuronowej, która nagle sama nauczy się mówić (słuchając jak dziecko innych), pozostają raczej obszarem science fiction niż rzeczywistej nauki.

--------------------------------------------------------------------------------

Więcej informacji o prowadzonych w Polsce badaniach nad przetwarzaniem języka naturalnego można znaleźć w Internecie pod adresem http://www.ipipan.waw.pl/mmgroup/clip.html.


TOP 200