Ważny dział sztucznej inteligencji - przetwarzanie i analiza tekstów

W cyklu moich wpisów na tym blogu staram się przedstawiać różne obszary sztucznej inteligencji, opisując je jako "wyspy" pewnego "archipelagu". Wynika to z faktu, że struktura sztucznej inteligencji jako działu informatyki przypomina luźną strukturę archipelagu, bo poszczególne metody i techniki nie łączą się w całość, nie tworzą zwartej metodologii czy technologii, tylko rozwiązują różne problemy wychodząc często z zupełnie różnych założeń i korzystając z całkowicie odmiennych środków. Łączy je podobieństwo ogólnego celu - zastępowania ludzkiego intelektu pracą mądrej maszyny. Dlatego można mówić o "archipelagu". Ale różnią się mnóstwem szczegółów i nie mają części wspólnej - stąd "wyspy". Dzisiejszy odcinek tego cyklu anonsuje widok znanej wyspy, na której stoi statua trzymająca księgę. I o tę księgę chodzi, gdyż chcę dziś opowiedzieć o metodach komputerowego przetwarzania tekstów.

A właściwie przetwarzania i inteligentnej analizy tekstów!



Cywilizacja ludzka od czasów starożytnych rozwijała się między innymi dzięki temu, że gromadziła i akumulowała wiedzę wielu ludzi. Przez setki lat wiedzę tę gromadziliśmy głównie w postaci tekstów. Piszemy i czytamy książki, artykuły, listy, dokumenty, komunikaty... W takiej formie rejestrujemy do dziś różne fakty, utrwalamy myśli, komunikujemy się ze sobą, gromadzimy intelektualne zasoby ludzkości. Również ogromna część naszej aktywności zawodowej i prywatnej ma pośredni lub bezpośredni związek z różnymi tekstami. Są one dla nas bardzo ważne.
Pismo towarzyszy ludziom od tysięcy lat. Inskrypcje i teksty ryte w kamieniu, odlewane w spiżu, kaligrafowane na pergaminie, drukowane na papierze - są esencją kultury i cywilizacji. Rewolucja teleinformatyczna, której jesteśmy świadkami i uczestnikami, wprowadziła w tym zakresie pewną zmianę, ponieważ poszerzyła znacząco obszar informacji multimedialnej. Coraz łatwiej i coraz chętniej korzystamy z obrazu, z zapisu dźwięków, z nagrań wideo, z komputerowych animacji. Łatwiej je wytwarzamy, łatwiej gromadzimy, łatwiej przesyłamy. A jednak istotne treści nadal najwygodniej i najskuteczniej jest przedstawiać w postaci tekstów - i dlatego teksty nadal stale nam towarzyszą.

Nauczyliśmy się te teksty gromadzić w serwisach informatycznych, głównie internetowych, potrafimy je skutecznie wyszukiwać, umiemy je automatycznie formatować i redagować. Komputer jest dziś nieocenionym pomocnikiem każdego, kto musi korzystać z informacji tekstowych. Jednak te wszystkie działania, które na co dzień wykonujemy na tekstach rejestrowanych cyfrowo i elektronicznie przetwarzanych, niewątpliwie pożyteczne i wygodne, są jedynie powierzchowną, wręcz naskórkową ich analizą. Działanie komputera kończy się bowiem zwykle na poziomie formy tekstu, a nie sięga do jego znaczenia.
I tu "leży pies pogrzebany". Komputer może tekst zapisać, odtworzyć, przekształcić - ale nie potrafi go zrozumieć. A tymczasem byłoby dla nas bardzo przydatne, gdyby technika informatyczna mogła nas wprowadzić także w obszar znaczeń niesionych przez teksty. Moglibyśmy wtedy wyszukiwać informacje na podstawie ich sensu, niezależnie od tego, jakich słów użyto dla wyrażenia tego sensu. Moglibyśmy znacząco usprawnić proces automatycznego tłumaczenia tekstów z jednego języka na drugi, unikając paradoksów, jakie rodzą się nieraz przy automatycznym przekładach opartych jedynie na korzystaniu z elektronicznych słowników i algorytmicznie traktowanych reguł gramatyki. Moglibyśmy zażądać od komputera, żeby przeanalizował kilkadziesiąt dokumentów zawierających łącznie kilkaset stronic tekstu na jakiś wybrany temat - i żeby przedstawił zwarte jednostronicowe streszczenie tego, o czym w tych dokumentach jest mowa i co z tego wynika.

Narzędziem do osiąganie wymienionych wyżej celów są metody sztucznej inteligencji określane zwykle jako NLP (Natural Language Processing - przetwarzanie języka naturalnego), a także cały obszar problemowy nazywany lingwistyką komputerową.

Specjaliści sztucznej inteligencji wkroczyli do tej tematyki początkowo bardzo zuchwale. Pierwsze próby automatycznego tłumaczenia pojawiły się wraz z powstaniem pierwszych komputerów. Znany jest eksperyment nazwany Georgetown-IBM experiment, przeprowadzony 7 stycznia 1954, w trakcie którego komputer IBM podczas publicznego pokazu w Nowym Jorku tłumaczył teksty z języka rosyjskiego na angielski. Wywołało to entuzjazm między innymi w wojsku i w administracji USA, w wyniku czego prace nad automatycznym tłumaczeniem uzyskały bardzo znaczące wsparcie finansowe.
Szybko jednak okazało się, że nawet duże pieniądze i skoncentrowany wysiłek bardzo wielu badaczy nie są w stanie pokonać bariery, jaka istnieje między pokazowym tłumaczeniem pojedynczych zdań, a prawdziwą translacją dużych tekstów. Dzisiaj dysponujemy programami, które w prostych sytuacjach są w stanie zaproponować w miarę poprawne tłumaczenia z jednego języka na drugi, ale w odróżnieniu od pierwszych prac, w których usiłowano korzystać z reguł gramatyki i rozbudowanych słowników - dzisiejsze systemy bazują najczęściej na podejściu statystycznym i na wielkich bazach danych z przykładami. Takie podejście stosuje między innymi szeroko znany tłumacz Google.

Jednak nawet bardzo sprawne automatyczne tłumaczenie tekstów z jednego języka na drugi nie oznacza, że komputer rozumie treść tłumaczonych dokumentów. On po prostu zamienia jedne napisy (w jednym języku) na drugie(w innym języku), posługując się metodami przekształceń symbolicznych, opisanymi tutaj.

Na podobnej zasadzie (stosowania algorytmicznych reguł zamieniających jedne napisy na inne napisy) działają także programy prowadzące z ludźmi dialogi na różne tematy (tak zwane chatboty). Na ich temat także już pisałem w kontekście tak zwanego "testu Turinga", więc Czytelników zainteresowanych szczegółami zapraszam tutaj. Mamy obecnie mnóstwo przykładów programów, w których komputer (reprezentowany zwykle przez wyświetlany na ekranie awatar) odpowiada na pytania, dyskutuje z człowiekiem, prowadzi dialog.
Pierwszy program tego typu (nazwany ELIZA w nawiązaniu do sztuki "Pigmalion" G.B. Shawa) został zbudowany w 1966 roku przez Josepha Weizenbauma. Był on bardzo prymitywny, korzystał z zaledwie 30 reguł takiego przekształcania wypowiedzi człowieka, że stawały się one "odpowiedziami" maszyny, co - o dziwo! - nikomu nie przeszkadzało. Ludzie byli zachwyceni i uważali, że maszyna jest miła i sympatyczna, chociaż w istocie rozmówca dostawał z powrotem swoje własne słowa, nieco tylko przeformułowane i przegrupowane. ELIZA była bardzo prosta, by nie powiedzieć - prymitywna - a jednak wywołała sensację, bo w tamtych czasach nikt podobnych programów nie produkował.

Obecnie do chatbotów przywykliśmy, a rozgrywane co roku konkursy o nagrodę Loebnera pokazują, że mimo ogromnego postępu także w tej dziedzinie - komputerowe programy naśladujące człowieka w zakresie swobodnej pogawędki na dowolny temat ciągle jeszcze znacząco ustępują ludzkim kompetencjom językowym.
Powód jest podobny, jak przy budowie systemów do automatycznego tłumaczenia z jednego języka na drugi - komputer nie rozumie sensu kierowanych do niego wypowiedzi człowieka, a sama tylko żonglerka słowami nie wystarcza do tego żeby uzyskać efekt inteligentnej rozmowy.

Co zrobić, żeby komputery nauczyły się rozumieć teksty? Trzeba je wyposażyć w wiedzę, bo ludzie komunikując się za pomocą języka naturalnego bardzo mocno bazują na tym, że osoba, do której adresowany jest taki czy inny przekaz, zrozumie jego sens także wtedy, gdy komunikat będzie niekompletny. Człowiek jako rozmówca (albo jako czytelnik interpretujący tekst, na przykład w celu jego inteligentnego przekładu lub zwartego streszczenia) korzysta ze swojej wiedzy i dlatego może dotrzeć do znaczenia tekstu. Żeby komputer mógł zrobić to samo, musi zostać wyposażony w wiedzę i w umiejętność automatycznego rozumowania. To pierwsze okazało się o wiele trudniejsze, niż to drugie...
Problem reprezentacji wiedzy ludzkiej w systemach komputerowych opisywałem już w kontekście tak zwanych systemów ekspertowych, tam jednak chodziło o wiedzę specjalistyczną, wbrew pozorom łatwiejszą do odwzorowania w komputerze. Do odwzorowania wiedzy ogólnej, zdroworozsądkowej, wynikającej z codziennych doświadczeń i codziennego obcowania z ludźmi potrzebne są specjalne narzędzia. Najbardziej popularnym z nich jest dziś tak zwana ontologia. Ten termin, nawiązujący do filozofii, ale mający w informatyce ściśle określony, znacznie węższy i uboższy sens, został wprowadzony przez T. Grubera. Ontologia w informatyce jest formalną specyfikacją znaczeń słów i fraz występujących w tekstach oraz związków pomiędzy tymi słowami czy frazami. Na rysunku poniżej pokazano przykład ontologii zawierający powiązania kilku podstawowych pojęć prostymi relacjami.
Rzeczywiste systemy inteligentnej semantycznej (to znaczy ukierunkowanej na znaczenia) analizy tekstów języka naturalnego zawierają dziś setki tysięcy pojęć i miliony relacji.

Wciąż jednak okazuje się, że to za mało...
Trwa ładowanie komentarzy...