Wykład 10. Analiza pragmatyczna wypowiedzi. Zjawisko anafory. Strategie prowadzenia dialogu człowiek-komputer. Pragmatyka jest nauką o relacjach między językiem a kontekstem jego użycia. Inaczej mówiąc, pragmatyka bada sposoby posługiwania się językiem przez ludzi, a w szczególności rozumienie i interpretowanie wypowiedzi w zależności od kontekstu. Celem analizy pragmatycznej jest więc praktyczne określenie znaczenia wypowiedzi w zależności od kontekstu dyskursu. W ramach pragmatyki wypowiedzi rozpatrywane są następujące zagadnienia: - problem odniesień (referencji) do ludzi i rzeczy np. zjawisko anafory, - opis struktury wypowiedzi, - interpretacja wypowiedzi podczas dialogu. Należy zauważyć, że wypowiedzi nie są zbudowane z izolowanych, nie powiązanych ze sobą zdań. Wprost przeciwnie, zdania tworzące wypowiedz są ze sobą powiązane i tworzą logiczną całość. Przez dyskurs będziemy rozumieli grupę powiązanych ze sobą strukturalnie i logicznie zdań. Przykładem dyskursu może być tekst dotyczący określonej osoby, obiektu, zdarzenia itd. (np. pod- ręcznik dotyczący przetwarzania języka naturalnego). Ten typ dyskursu nazywamy monologiem. W przypadku monologu komunikacja przebiega w jednym kierunku: od nadawcy do odbiorcy. Szczególnym przypadkiem dyskursu jest dialog. Posiada on następujące cechy: - występuje w nim przynajmniej dwóch uczestników, - w czasie dialogu role uczestników zmieniają się okresowo (dany uczestnik raz jest nadawcą, aby chwilę potem stać się odbiorcą). W przypadku dialogu mamy do czynienia z różnymi typami wypowiedzi: stawianie pytań, udzie- lanie odpowiedzi, wprowadzanie poprawek itd. Jednym z obszarów zainteresowania badaczy sztucznej inteligencji jest tworzenie systemów, które umożliwiają na komunikację człowiek-komputer (z ang. HCI human-computer interaction). Analiza języka na poziomie dyskursu wymaga uwzględnienia wielu zjawisk. Jednym z tych zjawisk jest anafora. Anaforę definiuje się jako zjawisko językowe, które polega na skrótowym odwoływaniu się do tego o czym była mowa we wcześniejszych partiach tekstu lub rozmowy . Znaczny rozwój badań nad zjawiskiem anafory można zauważyć w związku z pracami informatyków nad stworzeniem systemów umożliwiających komunikację człowieka z komputerem. Rozpatrzmy następujący przykład pytania do pewnego systemu: Czy próbki A5, A7 i A19 zawierają żelazo? (1) Załóżmy, że po uzyskaniu odpowiedzi na powyższe pytanie chcemy uzyskać informację o zawartości węgla w tych samych próbkach. W naturalny sposób nasze pytanie przyjmie postać: A czy zawierają one węgiel? (2) Zdania (1) i (2) są właśnie przykładem zjawiska anafory. Zamiast powtarzać zwrot próbki A5, A7 i A19 możemy odwołać się do niego w sposób skrótowy używając zaimka one . Zjawisko anafory jest typowe dla tekstów i wynika z postulowanej w wielu językach zasady unikania powtórzeń w tekście (uznawanych za błąd stylistyczny). Drugim powodem występowania anafory jest dążenie do upraszczania wypowiedzi. Rozpatrzmy kolejny przykład : Richard Axel, M.D. (born July 2, 1946, New York City) is an American scientist whose work on the olfactory system won him and Linda B. Buck, (3) a former post-doctoral scientist in his research group, the Nobel Prize in Physiology or Medicine in 2004 W zdaniu tym występują dwa zaimki him oraz his, które odnoszą się w tym przypadku do podmiotu zdania, czyli Richarda Axela. Jest to przykład anafory wewnątrzzdaniowej (zaimki oraz obiekt, do którego się one odwołują występują w jednym zdaniu). W tekście mogą wystąpić również międzyzdaniowe odwołania anaforyczne: In their landmark paper published in 1991, Buck and Axel cloned olfactory receptors, showing that they belong to the family of G protein coupled receptors. By analyzing rat DNA, they estimated that there were (4) approximately one thousand different genes for olfactory receptors in the mammalian genome Odpowiedz na pytanie, do jakiego obiektu (obiektów) odnosi się zaimek they znajduje się we wcześniejszym zdaniu. Zjawisko anafory jest na tyle powszechne, że nie może być pominięte w procesie analizy tekstów języka naturalnego przez komputer. Podczas analizy należy więc dla każdego wyrażenia anaforycznego znalezć w tekście element (poprzednik anaforyczny), do którego się ono odwołuje. W zdecydowanej większości przypadków odwołania anaforyczne polegają na zastępowaniu rzeczowników (lub całych grup nominalnych, których ośrodkiem jest rzeczownik) przez zaimki. 2 Znalezienie dla danego zaimka jego poprzednika anaforycznego sprowadza się najczęściej do znalezienia w tekście ostatniego wyrażenia, które jest zgodne z tym zaimkiem pod względem liczby, osoby, rodzaju gramatycznego czy przypadku. John has three new Acuras. They are red. (5) John gave Mary a ring. She can t find it. (6) W przykładzie (5) zaimek they może odnosić się zarówno do rzeczownika John , jak i frazy rzeczownikowej three new Acuras . W tym przypadku dla właściwego powiązania zaimka wystarczy sprawdzić jego zgodność z możliwymi frazami pod względem liczby. W tym celu sprawdzenia zgodności zaimków z innymi frazami można użyć tabel: Nie zawsze jednak proces ten przebiega w tak prosty sposób. Niekiedy do właściwego powiązania wyrażenia anaforycznego z jego poprzednikiem może być konieczna analiza semantyczna lub skomplikowany proces wnioskowania. Rozpatrzmy następujące zdania: The airline bought the plane because it had already decided to do so earlier (7a) John told Peter that he was hungry (7b) John told Peter that he was arrogant (7c) W zdaniu (7a) przyimkowi it może odpowiadać jeden z rzeczowników: airline lub plane . Do analizy tego zdania wystarczy dosyć prosty rodzaj wiedzy o świecie. Wiedza ta może być reprezentowana w postaci ramy dla czasownika decide, która opisuje z jakimi przypadkami 3 (kategoriami semantycznymi) może się on łączyć i jakie muszą one posiadać cechy semantyczne. Przypisując rzeczownikowi airline cechę semantyczną company, natomiast rzeczownikowi plane cechę artifact można jednoznacznie stwierdzić, że zaimkowi it będzie odpowiadać rzeczownik airline (samoloty nie mogą podejmować decyzji). Bardziej złożona sytuacja występuje w przypadku zdań (7b) i (7c). Występującemu w nich zaim- kowi he może odpowiadać zarówno John, jak i Peter. Do właściwej interpretacji tych zdań potrzebny jest złożony proces wnioskowania wykorzystujący dosyć specyficzną wiedzę o świecie opartą na doświadczeniu. Na podstawie tej wiedzy można stwierdzić, że w zdaniu (7b) zaimek he odnosi się raczej do Johna, natomiast w zdaniu (7c) zaimek he odnosi się raczej do Petera. Algorytm określający właściwe odniesienia anaforyczne dla zaimków zaproponowali Lappin i Leass (1994). Algorytm ten uwzględnia odległość między danym zaimkiem a odpowiadającą mu frazą w tekście oraz pewne czynniki syntaktyczne (np. funkcja danej frazy w zdaniu podmiot, dopełnienie, itd.). W zależności od tej funkcji fraza otrzymuje odpowiednią ilość punktów: Czynniki semantyczne w algorytmie nie są uwzględniane. Znaczenie poszczególnych współczyn- ników jest następujące. Dana fraza pojawiająca się w kolejnym analizowanym zdaniu otrzymuje 100 pkt. Kolejne punkty są dodawane w zależności od roli danej frazy w zdaniu (najwięcej jeżeli występuje w grupie podmiotu, najmniej jeżeli jako dopełnienie dalsze): An Acura Integra is parked in the lot. (subject) There is an Acura Integra parked in the lot. (existential predicate nominal) John parked an Acura Integra in the lot. (direct object) John gave his Acura Integra w bath. (indirect object) Inside his Acura Integra, John showed Susan his New CD player. (demarcated adverbial PP) 4 Dodatkowo dana fraza otrzymuje 80 pkt. jeżeli stanowi ośrodek (rdzeń) grupy nominalnej. Działanie algorytmu przebiega w następujący sposób: 1. Określ potencjalne odniesienia dla zaimków (maksymalnie dla 4 ostatnich zdań), 2. Usuń potencjalne odniesienia, które są niezgodne z zaimkiem pod względem liczby lub rodzaju, 3. Usuń potencjalne odniesienia, które nie spełniają wymagań składniowych (np. specjalne trakto- wanie zaimków zwrotnych i emfatycznych tj. him himself), 4. Obliczenie sumy współczynników dla poszczególnych odniesień z uwzględnieniem dotychcza- sowych wartości (przy przejściu do nowego zdania współczynnik jest dzielony przez 2), 5. Wybór odniesienia o największej wartości współczynnika. Przykład. Rozpatrzmy następujące zdania: John saw a beautiful Acura Integra at the dealership. He showed it to Bob. He bought it. Analiza pierwszego zdania: John saw a beautiful Acura Integra at the dealership. Poniższa tabela przedstawia sumę współczynników dla poszczególnych potencjalnych odniesień: Ponieważ pierwsze zdanie nie zawiera zaimków przechodzimy do analizy kolejnego zdania. Dotychczasowe współczynniki są dzielone przez 2: Analiza drugiego zdania: He showed it to Bob. Pierwszą frazą nominalną w drugim zdaniu jest zaimek he . Ponieważ jest on rodzaju męskiego, na podstawie 2 kroku algorytmu do tego zaimka pasuje jedynie fraza John . Od razu następuje rozszerzenie naszego modelu ( he otrzymuje następujące punkty: 100+80+50+80=310): 5 Następną frazą nominalną w drugim zdaniu jest zaimek it . Może on się odnosi zarówno do frazy the Integra , jak i dealership . Przed dokonaniem wyboru następuje przeliczenie współczynni- ków (fraza the Integra otrzymuje dodatkowe 35 pkt. za zgodność funkcji w zdaniu z zaimkiem it ). Porównując otrzymane wartości (175 dla Integra oraz 115 dla dealership) zaimek it zosta- nie przypisany do frazy the Integra . Następnie obliczamy nowe wartości współczynników: Drugie zdanie zawiera dodatkowo frazę Bob. Zostaje ona uwzględniona w naszym modelu (suma współczynników wynosi 100+40+50+80=270): Przed analizą trzeciego zdania współczynniki są dzielone przez 2: Na tej podstawie zaimek he zostanie powiązany z frazą John , natomiast zaimek it z frazą the Integra . Eksperymenty wykazały skuteczność powyższego algorytmu na poziomie 86%. 6 Strategie dialogu człowiek-komputer Chatbot (lub Chatterbot) - program komputerowy symulujący człowieka, z którym można prowa- dzić rozmowę przy użyciu języka naturalnego i interfejsu tekstowego. Zadaniem chatbota jest takie prowadzenie rozmowy, aby użytkownik miał wrażenie, że rozmawia z inteligentnym człowiekiem. Test Turinga to sposób określania zdolności maszyny do posługiwania się językiem naturalnym i pośrednio mającym dowodzić opanowania przez nią umiejętności myślenia w sposób podobny do ludzkiego. Test ten został zaproponowany w 1950 roku przez Alana Turinga. Nagroda Loebnera - nagroda ufundowana przez Hugha Loebnera w 1990 roku, dla progra- misty, który zdoła napisać program, który skutecznie przejdzie Test Turinga. Zawody o nagrodę Loebnera odbywają się co roku, w The Cambridge Center of Behavioral Studies. Nagroda ta obejmuje przyznanie złotego medalu (całego z 18-karatowego złota) oraz 100 000 USD dla programisty, który przedstawi program, który zdoła skutecznie zmylić wszystkich sędziów (testerów) programu. ALICE (Artificial Linguistic Internet Computer Entity) - nazwa wielokrotnie nagradza- nego programu starającego się naśladować ludzką konwersację i jednocześnie nazwa projektu Open Source mającego na celu stałe jego poprawianie. ALICE nie zdołał jeszcze całkowicie spełnić testu Turinga, ale trzykrotnie wygrał zawody o nagrodę Loebnera oraz zdobył mistrzostwo w turnieju Chatterbox Challenge w roku 2004. AIML (Artificial Intelligence Markup Language) - język opisu sztucznej inteligencji, który jest pochodną języka XML. AIML został wymyślony pierwotnie jako baza wiedzy dla chatterbota ALICE przez amerykańskiego naukowca Richarda Walleca (rok 1995). Struktura języka AIML Plik AIML jest plikiem tekstowym składającym się z tak zwanych tagów , czyli znaczników zaczynających się od znaku < i kończących się znakiem > . Każdy dokument AIML musi zaczynać się od znacznika i kończyć się znacznikiem . Minimalny dokument języka AIML ma więc postać: ...
Opis działania chatbota w języku AIML opiera się na prostym schemacie: szablon odpowiedz. Podstawowymi elementami wiedzy w języku AIML są więc znaczniki , które zawierają po jednym znaczniku oraz . Znacznik zawiera opis wzorca wypo- 7 wiedzi wprowadzanej przez użytkownika, natomiast znacznik reakcję bota na wypowiedz użytkownika. Ilustruje to następujący przykład: CZESC Witaj, jak się masz?
W wyniku działania powyższego znacznika na powitanie użytkownika Czesc chatbot udzieli odpowiedzi: Witaj, jak się masz kolei? . Wyrażenie znajdujące się wewnątrz znacznika jest prostym wyrażeniem regular- nym języka AIML, jest więc pisane w całości wielkimi literami i może zawierać znaki specjalne * oraz _ oznaczające cokolwiek . Należy jednak pamiętać, że znaki * i _ nie mogą oznaczać pustego ciągu. Przy następującej definicji: CZESC Witaj, jak się masz?
program zareaguje na zdanie Czesc cokolwiek , ale nie zareaguje już na samo Czesc . Teoretycznie za pomocą znaczników typu można opisać działanie prostego chatbota. Istnieją jednak inne znaczniki, które pozwalają na bardziej efektywne pisanie programu w języku AIML. Oto najważniejsze z nich. Znacznik Znacznik pozwala definiować synonimy dla pewnych określonych wyrażeń. Dzięki temu uniknąć można wielokrotnego definiowania tych samych reakcji dla różnych wypowiedzi użytkownika: CZESC Witaj, jak się masz?
WITAJ CZESC
8 CZESC * CZESC
WITAJ * CZESC
Znacznik Znacznik umieszczony wewnątrz znacznika powoduje, że odpowiedz pro- gramu będzie wybrana w sposób losowy z pewnego zestawu możliwych odpowiedzi. Odpowiedzi te definiujemy jako listę, której każdy element umieszczony jest między tagami
i
: CZESC
Witaj, jak się masz?
No hej.
Dzień dobry.
Znacznik Znacznik jest umieszczany wewnątrz Tagu . Powoduje on wstawienie w danym miejscu ciągu, którym w części została zastąpiona gwiazdka ( * ): CO TO JEST *
Wiesz, nie mam pojęcia co może oznaczać słowo .
W przypadku, gdy wzorzec wypowiedzi użytkownika zawiera kilka symboli * znacznik może zawierać dodatkowo zmienną index określającą, o którą gwiazdkę nam chodzi. Znacznik Znacznik pozwala chatbotowi odwołać się do jednej z poprzednich wypowiedzi użytkow- nika (uwzględnienie kontekstu rozmowy). Umieszczany jest w środku znacznika i może 9 przyjąć jeden parametr index który oznacza numer wypowiedzi użytkownika liczony wstecz (1 oznacza wypowiedz, na którą bot reaguje w danej chwili): CZY TY MNIE SLUCHASZ Tak, powiedziales:
A PRZEDTEM Hmm. Przedtem powiedziales
Znaczniki i Chatboty mogą przechowywać podczas swego działania różnego rodzaju informacje (np. imię roz- mówcy). Są one trzymane w zmiennych, które ustawić i odczytać można przy pomocy znaczników i : MAM NA IMIE *
Hmm. To ładne imię.
OPOWIEDZ MI DOWCIP
OK. . Spróbuję coś sobie przypomnieć, w tym czasie Ty opowiedz jakiś mi.
Znacznik Znacznik pozwala programowi orientować się w rozmowie na podstawie tematów. Może się zdarzyć taka sytuacja, że chatbot nie jest w stanie odpowiedzieć na zdanie swojego rozmówcy. Wtedy może ratować się ucieczką i odpowiedzieć w sposób niezwiązany bezpośrednio z wypowie- dzią użytkownika, ale związany z ostatnio poruszanym tematem. Znacznik jest jedynym znacznikiem poza , który może znajdować się bezpośre- dnio wewnątrz znacznika : 10 WITAJ
powitanie Dzień dobry
*
Jaka jest u Ciebie pogoda?
Uwaga! Znacznik umożliwia wyznaczenie wewnątrz znacznika fragmentów, które nie mają być wyświetlone na ekranie. Interpretery AIML: http://aitools.org/programd - interpreter ProgramD 11