Historia analizy języka naturalnego, część II

W 1966 r. Joseph Weizenbaum stworzył program o nazwie ELIZA, który odbierał pisane do niego przez użytkownika zdania i przeformułowywał je w taki sposób, aby – odsyłane do człowieka – podtrzymywały dialog.

Publikacja: 04.10.2024 05:20

Joseph Weizenbaum (1923–2008) – profesor informatyki w Massachusetts Institute of Technology, który

Joseph Weizenbaum (1923–2008) – profesor informatyki w Massachusetts Institute of Technology, który w 1966 r. stworzył program ELIZA

Foto: NationalPortraitGalleryLondon / National Portrait Gallery / Forum

W poprzednim felietonie opowiedziałem między innymi o tym, jak kolejni badacze starali się zbliżyć do możliwości swobodnego operowania językiem naturalnym przez komputery. Poniżej kontynuuję ten temat.

Rozmowa (tekstowa) człowieka z komputerem była postulowana już przez Alana Turinga w 1950 roku w ramach tak zwanego testu Turinga i potem inspirowała wielu twórców systemów informatycznych, ale o tym pisałem w „Rzeczy o Historii” 21 kwietnia 2023 r., dlatego ten wątek pominę. Natomiast godna uwagi jest udana próba zbudowania programu komputerowego prowadzącego dialog z człowiekiem podjęta w latach 1964–1967 w MIT przez Josepha Weizenbauma. Zbudował on program o nazwie ELIZA, który odbierał pisane do niego przez człowieka (użytkownika) zdania i przeformułowywał je w taki sposób, aby – odsyłane do człowieka – podtrzymywały dialog, chociaż maszyna de facto nie dysponowała żadnymi zaawansowanymi metodami analizy języka naturalnego.

Bardzo trafnym pomysłem Weizenbauma było przyjęcie tzw. scenariusza DOKTOR. Według tego scenariusza człowiek kontaktujący się z komputerem występował w roli pacjenta, który zjawia się w gabinecie psychologa, by opowiedzieć mu o swoich problemach życiowych, a psycholog ma mu pomóc w spojrzeniu na jego problemy w sposób pozwalający na ich przezwyciężenie. Weizenbaum zdecydował się na stworzenie programu DOCTOR w kontekście psychoterapii, aby „ominąć problem udostępnienia programowi wiedzy ze świata rzeczywistego”.

Teoretycznie ELIZA mogła przeprowadzać wstępny wywiad, z którego powstawał raport przydatny potem przy spotkaniu pacjenta z rzeczywistym psychologiem. Efekt był jednak taki, że ludzie uczestniczący w tym eksperymencie bardzo wysoko oceniali odpowiedzi komputera, które nacechowane były zrozumieniem i współczuciem, choć w istocie stanowiły przeformułowane ich własne zdania.

Czytaj więcej

Zwiedzanie polskich zabytków techniki. Dzieje krakowskich mostów, część II

Rozmówca nie poznaje, że rozmawia z komputerem

Najzabawniejszy dialog programu ELIZA odbył się z prawdziwym psychoanalitykiem, który przyszedł do IBM zrobić awanturę, że jego zawód jest ośmieszany przez jakiś program udający lekarza. Psycholog trafił do pokoju, w którym stał monitor z wyświetlonym pytaniem: „Napisz, co Cię trapi?”. No więc napisał! Że to jest granda, żeby jakiś komputer udawał psychoanalityka! ELIZA była tak zaprogramowana, żeby się nie sprzeciwiać człowiekowi, tylko mu współczuć. Odpowiedziała więc, że to rzeczywiście jest granda. Psychoanalityk twierdził, że żaden komputer nie zrozumie człowieka. ELIZA potwierdziła: Nie zrozumie!

Wywiązał się w efekcie dialog, w trakcie którego oboje rozmówcy doszli do zgodnego wniosku:

– To całkiem niemożliwe, żeby komputer mógł zastąpić psychoanalityka!

Tekst tego dialogu jest opublikowany i traktowany jako coś bardzo zabawnego. Niektórzy zwolennicy komputerowej analizy języka naturalnego uznali, że oto słynny test Turinga został zaliczony: człowiek rozmawiał z komputerem i nie zorientował się, że jego rozmówcą nie jest inny człowiek, tylko odpowiednio zaprogramowany komputer!

Ontologie pojęciowe

Mimo sukcesów odnoszonych przez systemy takie jak ELIZA czy SHRDLU (system rozumiejący język naturalny, który został opracowany przez Terry’ego Winograda z MIT w latach 1968–1970), próby budowy systemów analizy języka naturalnego oparte na słownikach i rozmaicie implementowanych gramatykach okazały się mało efektywne.

W latach 70. XX w. drogą do analizy języka naturalnego były tzw. ontologie pojęciowe. Były to narzędzia gromadzące informacje o określonych pojęciach i relacjach pomiędzy nimi. Ontologie musiały być budowane osobno dla tekstów dotyczących różnych dziedzin. Najwięcej nadziei budziły ontologie dotyczące ekonomii i filozofii, powstały też ontologie związane z techniką (w szczególności z informatyką), biologią i wieloma dziedzinami szczegółowymi. Podsumowaniem tego okresu rozwoju metod komputerowej analizy języka naturalnego był artykuł Toma Grubera, który w 1993 r. opublikował pracę „Towards Principles for the Design of Ontologies Used for Knowledge Sharing” (W stronę zasad projektowania ontologii używanych do dzielenia się wiedzą). Podejście do analizy języka naturalnego oparte na ontologiach bywa nazywane podejściem regułowym, podobnym do podejścia stosowanego w tzw. systemach ekspertowych należących do sztucznej inteligencji. Niemniej także to podejście okazało się niewystarczające, aby spełnić wymagania twórców systemów prowadzących dialog z użytkownikiem (tzw. chatbotów) w różnych zastosowaniach – głównie w call centers.

Oczekiwania spełniły systemy wykorzystujące odmienną metodę.

Czytaj więcej

Zwiedzamy polskie zabytki techniki: Kanały Augustowski i Elbląski

Podejście statystyczne i gotowe narzędzia

Rosnąca pojemność pamięci systemów komputerowych i wzrost ich mocy obliczeniowej doprowadził do tego, że zamiast tworzyć słowniki i algorytmy wykorzystujące prawa gramatyki, postanowiono oprzeć się na zestawianiu ze sobą całych tekstów wyrażających podobne myśli w dwóch językach. Podstawą do takiego działania są tzw. korpusy. Zawierają całe zdania czy nawet akapity w dwóch zestawianych ze sobą językach, a metody uczenia maszynowego pomagają odnajdywać zdania w języku docelowym pasujące do tłumaczonego zdania w języku źródłowym. W dopasowywaniu odpowiednich zdań czy pojedynczych fraz pomaga to, że korpusy są często anotowane – do fraz czy zdań dodawana jest informacja, w jakich okolicznościach takie czy inne sformułowania powinny być stosowane. Statystyczne metody analizy języka naturalnego miały istotną zaletę względem podejścia regułowego, były znacznie bardziej odporne na niedoskonałe dane wejściowe. Język używany na co dzień jest dużo bardziej zanieczyszczony niż perfekcyjnie przygotowane zdania w lingwistyce regułowej. Pojawiają się powtórzenia, błędy gramatyczne wprowadzone przez człowieka, cofnięcia, przerwy w trakcie formułowania tekstu itp.

Sukces metod analizy języka naturalnego opartych na podejściu statystycznym spowodował, że powstały szeroko dostępne systemy dokonujące przekładów tekstów w różnych językach. Warto wymienić kilka z nich: Google Translate (dawniej część Google Language Tools) – darmowy serwis umożliwiający tłumaczenie wybranych par języków; AltaVista Babel Fish – konkurencyjny serwis do tłumaczenia maszynowego, obecnie udostępniany pod nazwą Microsoft Translator; Siri – wirtualny osobisty asystent stworzony przez firmę Apple, wbudowany w systemy operacyjne MacOS, iOS, iPadOS; Cortana – wirtualny asystent firmy Microsoft; Alexa – wirtualny asystent firmy Amazon; Google Assistant – wirtualny asystent firmy Google.

Inne cele analizy języka naturalnego

Rozważając wyżej różne metody analizy języka naturalnego, skupialiśmy uwagę na tych systemach, które pozwalają na tłumaczenie tekstów z jednego języka na inny. Z takimi systemami czytelnik tego felietonu będzie miał styczność z największym prawdopodobieństwem, warto więc było na tym się skupić. Są jednak także inne cele, które są stawiane przed takimi systemami.

Buduje się np. programy komputerowe, które służą do tzw. rozpoznawania jednostek referencyjnych (Named Entity Recognition, w skrócie NER). W analizowanych tekstach nie dąży się wtedy do analizy budowy i znaczenia wszystkich zdań, tylko wyławia się te teksty, w których występują wybrane jednostki referencyjne. Tymi jednostkami mogą być np.: nazwy miejsc, nazwiska osób, nazwy organizacji, kody medyczne, nazwy operacji finansowych i dowolne inne wynikające z potrzeb. To podejście umożliwia m.in. przetwarzanie dużych ilości tekstów w celu identyfikacji i wyodrębnienia z nich kluczowych informacji.

Przydatność takich narzędzi wiąże się choćby z wykorzystaniem komputerowej analizy języka naturalnego przez prawników. Dzięki temu można skrócić czas potrzebny na ręczne przeglądanie i analizę dokumentów oraz znaleźć istotne zależności i wzorce, które mogą mieć znaczenie dla procesów prawnych. Techniki analizy języka naturalnego mogą być wykorzystane do automatycznego indeksowania i klasyfikacji dokumentów prawnych, co ułatwia wyszukiwanie konkretnych informacji wśród tysięcy dokumentów. Przykładowym narzędziem służącym do rozpoznawania jednostek referencyjnych może być zestaw narzędzi w języku Java, opracowany na Uniwersytecie Sheffield w 1995 r. i udostępniony pod nazwą GATE (General Architecture for Text Engineering).

Czytaj więcej

Zwiedzamy polskie zabytki techniki. Kopalnia Soli Wieliczka

Można także używać narzędzi komputerowej analizy języka naturalnego do klasyfikacji zdań ze względu na ich znaczenie. Najprostsza klasyfikacja może dotyczyć podziału ze względu na cel wypowiedzi. Można wyróżnić zdania oznajmujące, pytające i rozkazujące. Klasyfikacje takie nie są na ogół głównym celem, ale mogą pomagać we wstępnej orientacji co do charakteru i przeznaczenia określonych dokumentów, np. przy wspomaganiu prac administracji różnych szczebli.

Najbardziej egzotyczną formą zastosowania narzędzi komputerowej analizy języka naturalnego jest analiza sentymentu. Okazuje się, że analizując komputerowo tekst, można (w przybliżeniu) obliczyć, jaki nastrój miała osoba pisząca, a to może okazać się przydatne do oceny przygotowanego dokumentu. Na ile udało się to ustalić, początki badań dotyczących tego tematu pojawiły się w MIT. Już w 1966 r. ukazała się publikacja „The General Inquirer: A Computer Approach to Content Analysis” (Ogólny zapytywacz: Komputerowe podejście do analizy treści). Jej autorami byli Philip J. Stone, Dexter C. Dunphy, Marshall S Smith i Daniel M. Ogilvie. Od tego czasu temat żyje.

Najczęściej metody analizy sentymentu są wykorzystywane do automatycznego sortowania różnych opinii (np. klientów) w celu udoskonalenia marketingu, ale także do klasyfikacji wypowiedzi w mediach społecznościowych. Narzędziem dokonującym oceny sentymentu jest system RoBERTa (Bidirectional Encoder Representations from Transformers) wprowadzony w październiku 2018 r. przez Jacoba Devlina, Ming-Wei Changa, Kentona Lee i Kristinę Toutanovą, badaczy z firmy Google. Analiza literatury pokazuje, że to podejście i ten konkretny program został dość powszechnie zaakceptowany. W szczególności zapytania kierowane przez użytkowników do serwisu Google w języku angielskim są tym programem analizowane.

Jak widać, opisana wyżej długa i trudna historia rozwoju systemów analizy języka naturalnego jest z „happy endem”. Dzięki temu na naszych komputerach, smartfonach czy na specjalizowanych elektronicznych translatorach możemy bez trudu korzystać z automatycznych tłumaczeń tekstów pisanych, a także mówionych. Komputer może dla nas wyszukiwać potrzebne teksty, kierując się różnymi kryteriami. Jest to potrzebne, bo tych tekstów jest ogromna ilość i ich liczba szybko wzrasta. Współczesny internet jest niemal bilion razy obszerniejszy niż ten z 1995 r. Obecnie ludzkość co dwa dni tworzy tyle nowych informacji, ile między początkiem cywilizacji a 2003 r. Bez narzędzi informatycznych przeznaczonych do analizy języka naturalnego zginiemy pod tą lawiną. Dlatego opisanie ich historii i poznanie aktualnych możliwości było warte tego, żeby państwu to przedstawić w postaci niniejszego felietonu.

Autor jest profesorem Akademii Górniczo-Hutniczej w Krakowie

W poprzednim felietonie opowiedziałem między innymi o tym, jak kolejni badacze starali się zbliżyć do możliwości swobodnego operowania językiem naturalnym przez komputery. Poniżej kontynuuję ten temat.

Rozmowa (tekstowa) człowieka z komputerem była postulowana już przez Alana Turinga w 1950 roku w ramach tak zwanego testu Turinga i potem inspirowała wielu twórców systemów informatycznych, ale o tym pisałem w „Rzeczy o Historii” 21 kwietnia 2023 r., dlatego ten wątek pominę. Natomiast godna uwagi jest udana próba zbudowania programu komputerowego prowadzącego dialog z człowiekiem podjęta w latach 1964–1967 w MIT przez Josepha Weizenbauma. Zbudował on program o nazwie ELIZA, który odbierał pisane do niego przez człowieka (użytkownika) zdania i przeformułowywał je w taki sposób, aby – odsyłane do człowieka – podtrzymywały dialog, chociaż maszyna de facto nie dysponowała żadnymi zaawansowanymi metodami analizy języka naturalnego.

Pozostało 92% artykułu
2 / 3
artykułów
Czytaj dalej. Subskrybuj
Historia
Czy Niemcy oddadzą traktat pokojowy z Krzyżakami
Historia
80 lat temu przez Dulag 121 przeszła ludność Warszawy
Historia
Gdy macierzyństwo staje się obowiązkiem... Kobiety w III Rzeszy
Historia
NIK złożyła zawiadomienie do prokuratury ws. Centralnego Przystanku Historia IPN
Historia
Geneza bitwy pod Wiedniem