• Nie Znaleziono Wyników

Należy zauważyć, że wypowiedzi te nie są zbudowane z izolowanych, nie powiązanych ze sobą zdań

N/A
N/A
Protected

Academic year: 2021

Share "Należy zauważyć, że wypowiedzi te nie są zbudowane z izolowanych, nie powiązanych ze sobą zdań"

Copied!
24
0
0

Pełen tekst

(1)
(2)

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 znacze- nia wypowiedzi w zależności od kontekstu dyskursu.

Analiza pragmatyczna wypowiedzi obejmuje następujące zagadnienia:

- problem odniesień (referencji) do ludzi i rzeczy np. zjawisko anafory, - opis struktury wypowiedzi,

- interpretacja wypowiedzi podczas dialogu.

Wypowiedzi w języku naturalnym składają się z wyrazów, które tworzą z kolei zdania. Należy zauważyć, że wypowiedzi te nie są zbudowane z izolowanych, nie powiązanych ze sobą zdań. Wprost przeciwnie, zdania tworzące wypowiedź są ze sobą powiązane i tworzą logiczną całość.

(3)

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. Przykładem dyskursu może być więc podręcznik dotyczący przetwarzania języka naturalnego. Ten typ dyskursu nazy- wamy monologiem. Jego cechą charakterystyczną jest istnienie mówcy (nadawcy) oraz odbiorcy. W przypadku monologu komunikacja przebie- ga tylko w jednym kierunku: od nadawcy do odbiorcy.

Szczególnym przypadkiem dyskursu jest dialog. Posiada on następu- ją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:

(4)

Jednym z obszarów zainteresowania badaczy sztucznej inteligencji jest tworzenie systemów, które umożliwiają komunikację człowiek-komputer (z ang. HCI – human-computer interaction).

Na ogół działanie systemów z HCI różni się od typowej konwersacji człowiek-człowiek. Ze względu na możliwości współczesnych syste- mów informatycznych dialog ten ogranicza się do ściśle ograniczonej dziedziny.

(5)

Strategie dialogu człowiek-komputer

Chatbot (lub Chatterbot) - program komputerowy symulujący zacho- wannie człowieka, z którym można prowadzić rozmowę przy użyciu języka naturalnego i interfejsu tekstowego. Zadaniem chatbota jest przeważnie takie prowadzenie rozmowy, aby użytkownik (rozmówca) miał wrażenie, że rozmawia z żywym, 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. Turing zaproponował ten test w celu zamiany pełnego emocji i w jego pojęciu bezsensownego pytania "Czy maszyny myślą?" na pytanie lepiej zdefi- niowane, w ramach badań nad stworzeniem sztucznej inteligencji.

(6)

Nagroda Loebnera - nagroda ufundowana przez Hugha Loebnera w 1990 roku, dla programisty, który zdoła napisać program, który skute- cznie 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 (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.

Oprócz tego nagroda ta obejmuje też przyznanie pozłacanego, brązowego medalu oraz nagrody pieniężnej 3 000 USD temu progra- miście, który w danym roku dostarczy program, który co prawda nie przejdzie w pełni testu Turinga, ale będzie zdaniem sędziów najsku- teczniej udawał ludzką konwersację.

(7)

ALICE (Artificial Linguistic Internet Computer Entity) - nazwa wielokrotnie nagradzanego 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 w roku 1995.

(8)

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 <aiml> i kończyć się znacznikiem </aiml>.

Minimalny dokument języka AIML ma więc postać:

<aiml>

...

</aiml>

Opis działania chatbota w języku AIML oparty jest na schemacie szablon - odpowiedź.

Podstawowymi elementami w języku AIML są znaczniki <category>, które zawierają po jednym znaczniku <pattern> oraz <template>.

Znacznik <pattern> zawiera opis wzorca wypowiedzi wprowadzanej przez użytkownika, natomiast znacznik <template> reakcję bota na wypowiedź użytkownika.

(9)

Ilustruje to następujący przykład:

<aiml>

<category>

<pattern> CZESC </pattern>

<template> Witaj, jak się masz ? </template>

</category>

</aiml>

W wyniku działania powyższego znacznika na powitanie użytkownika

„Czesc” chatbot udzieli odpowiedzi: „Witaj, jak się masz ?”.

Wyrażenie znajdujące się wewnątrz znacznika <pattern> jest prostym wyrażeniem regularnym języka AIML, jest więc pisane w całości wielkimi literami i może zawierać znaki specjalne „*” oraz „_” ozna- czające „cokolwiek”. Należy jednak pamiętać, że znaki „*” i „_” nie mogą oznaczać pustego ciągu.

(10)

Przy następującej definicji:

<aiml>

<category>

<pattern> CZESC * </pattern>

<template> Witaj, jak się masz? </template>

</category>

</aiml>

program zareaguje na zdanie „Czesc cokolwiek”, ale nie zareaguje już na samo „Czesc”.

Teoretycznie za pomocą znaczników typu <category> można opisać działanie prostego chatbota. Istnieją jednak inne znaczniki, które poz- walają na bardziej efektywne pisanie programu w języku AIML.

Opis najważniejszych z nich przedstawiono poniżej.

(11)

Znacznik <srai>

Znacznik <srai> pozwala definiować synonimy dla pewnych określo- nych wyrażeń. Dzięki temu uniknąć można wielokrotnego definiowania tych samych reakcji dla różnych wypowiedzi użytkownika.

<aiml>

<category>

<pattern>CZESC</pattern>

<template>Witaj, jak się masz?</template>

</category>

<category>

<pattern>WITAJ</pattern>

<template><srai>CZESC</srai></template>

</category>

<category>

<pattern>CZESC *</pattern>

<template><srai>CZESC</srai></template>

(12)

Znacznik <random>

Znacznik <random> umieszczony wewnątrz znacznika <template>

powoduje, że odpowiedź programu będzie wybrana losowo z pewnego zestawu możliwych odpowiedzi. Odpowiedzi te definiujemy jako listę, której każdy element umieszczony jest między tagami <li> i </li>.

<aiml>

<category>

<pattern>CZESC</pattern>

<template>

<random>

<li>Witaj, jak się masz?</li>

<li>No hej.</li>

<li>Dzień dobry.</li>

</random>

</template>

</category>

</aiml>

(13)

Znacznik <star/>

Znacznik <star/> jest umieszczany wewnątrz tagu <template>. Powo- duje on wstawienie w danym miejscu ciągu, którym w części <pattern>

została zastąpiona gwiazdka („*”).

<aiml>

<category>

<pattern>CO TO JEST *</pattern>

<template>

Wiesz, nie mam pojecia co moze oznaczac słowo <star/>.

</template>

</category>

</aiml>

W przypadku, gdy wzorzec wypowiedzi użytkownika zawiera kilka symboli „*” znacznik <star/> może zawierać dodatkowo zmienną index określającą, o którą „gwiazdkę” nam chodzi.

(14)

Znacznik <input>

Znacznik <input> pozwala chatbotowi odwołać się do jednej z poprze- dnich wypowiedzi użytkownika (uwzględnienie kontekstu rozmowy).

Umieszczany jest w środku znacznika <template> i może przyjąć jeden parametr index który oznacza numer wypowiedzi użytkownika liczony wstecz (1 oznacza wypowiedź, na którą bot reaguje w danej chwili).

<aiml>

<category>

<pattern>CZY TY MNIE SLUCHASZ</pattern>

<template>Tak, powiedziales: <input index=”2”/></template>

</category>

<category>

<pattern>A PRZEDTEM</pattern>

<template>Hmm. Przedtem powiedziales <input index=”4”/></template>

</category>

</aiml>

(15)

Znaczniki <get> i <set>

Chatboty mogą przechowywać podczas działania różne informacje (np.

imię rozmówcy). Są one trzymane w zmiennych, które ustawić i odczy- tać można przy pomocy znaczników <get> i <set>.

<aiml>

<category>

<pattern>MAM NA IMIE *</pattern>

<template>

<set name=”userName”><star/></set>

Hmm. To ładne imię.

</template>

</category>

(16)

<category>

<pattern>OPOWIEDZ MI DOWCIP</pattern>

<template>

OK. <get name=”userName”/>. Spróbuję coś sobie przypomnieć, w tym czasie Ty opowiedz jakiś mi.

</template>

</category>

</aiml>

Znacznik <topic>

Znacznik <topic> 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 wypowiedzią użytkownika, ale związany z ostatnio porusza- nym tematem.

(17)

Znacznik <topic> jest jedynym znacznikiem poza <category>, który mo- że znajdować się bezpośrednio wewnątrz znacznika <aiml>.

<aiml>

<category>

<pattern>WITAJ</pattern>

<template>

<think><set name=“topic“>powitanie</set></think>

Dzień dobry

</template>

</category>

<topic name=”POWITANIE”>

<category>

<pattern>*</pattern>

<template>

Jaka jest u Ciebie pogoda?

</template>

</category>

(18)

Uwaga! Znacznik <think> umożliwia wyznaczenie wewnątrz znacznika

<templete> fragmentów, które nie mają być wyświetlone na ekranie.

Interpretery AIML:

http://aitools.org/programd - interpreter ProgramD

Przydatna strona:

https://home.pandorabots.com/home.html

(19)

<xml version="1.0" encoding="ISO-8859-1"?>

<aiml version="1.0">

<!-- -->

<!-- Free software (c) 2011 ALICE A.I. Foundation. -->

<!-- This program is open source code released under -->

<!-- the terms of the GNU General Public License -->

<!-- as published by the Free Software Foundation. -->

<!-- Complies with AIML 1.0 Tag Set Specification -->

<!-- as adopted by the ALICE A.I. Foundation. -->

<!-- Last modified 11/23/2011 -->

<!-- -->

<category>

<pattern>WHO IS LAUREN</pattern>

<template><set name="she">Lauren</set> is a bot on Pandorabots.</template>

</category>

<category>

<pattern>WHAT IS AI</pattern>

<template>Artificial intelligence is the branch of engineering and science devoted to constructing machines that think.

(20)

Przykładowy program w języku AIML (c.d):

<category>

<pattern>WHO CREATED AIML</pattern>

<template>Dr. Richard S. Wallace created AIML. </template>

</category>

<category>

<pattern>WHAT LANGUAGE ARE YOU WRITTEN *</pattern>

<template>Dr. Wallace created AIML to write me. The underlying technology is Lisp. </template>

</category>

<category>

<pattern>WHAT LANGUAGE ARE YOU *</pattern>

<template>Dr. Wallace created AIML to write me.

<think> <set name="he">Dr. Wallace</set> </think> The underlying technology is Lisp. </template>

</category>

<category>

<pattern>WHAT IS PROGRAM Z</pattern>

<template>Program Z is a lisp-based version of AIML. Z, the last version anyone will ever need.

</template>

</category>

<category>

<pattern>WHAT IS PROGRAM BAWT</pattern>

<template><br/>Significant demand for a version of ALICE compatible with<br/>pre- Java 2 (formerly known as Java 1.2) prompted the<br/>development of "Bawt.java", an open source java program<br/>

(21)

Schemat blokowy przykładowego systemu dialogowego (wg. MIT):

(22)

Prace prowadzone w Massachusetts Institute of Technology (MIT):

• JUPITER – system informacji o pogodzie, dostęp przez telefon (około 500 miast)

• MERCURY – system rezerwacji lotów (dostęp przez telefon)

• PEGASUS – system informacji o lotach (odloty, przyloty)

• VOYAGER – system informacji o ruchu drogowym, pomoc w nawigacji (dotyczy Bostonu)

(23)

Przykład dialogu w systemie Merkury:

S: Welcome to the initial development version of the MIT air travel information system. This call is being recorded for system development. You may hang up or ask for help at any time.

For enrolled users please say your first and last name.

Otherwise, say ‘new user.’

U: Joe Polifroni

S: Please speak the month and day you registered as your password, as in ‘May first.’

U: I want to key in my password.

S: Okay, Please enter your four digit date password... <keyed in>

S: Welcome, Joe. You have successfully logged onto mercury. How may I help you?

U: I want to fly to San Francisco the first Sunday in November and return the following Thursday.

(24)

S: Okay, flights from Boston to San Francisco on Sunday November 5. Can you provide the approximate departure time or airline preference?

U: Are there any flights in the morning?

S: Okay, flights from Boston to San Francisco departing between 5 a.m. and 12 p.m. on Sunday November 5. One moment please. ... Can you provide a

departure or arrival time? I have flights on American, Frontier, America West, Nordic East Airways, Northwest, and United.

The earliest nonstop United flight leaves at 7 a.m. and arrives at 10:20 a.m.

U: I don’t want to fly on United.

S: I have a nonstop American flight leaving at 9 a.m. arriving at 12:40 p.m. Would that work?

U: Yes, I’ll take that one.

S: American flight 195 has been added to your itinerary. You depart Boston at 9 a.m. and arrive in San Francisco at 12:40 p.m. Shall I help you with the return flight now?

U: Yes, please.

...

Cytaty

Powiązane dokumenty

Podstawą procesu edukacyjnego jest komunikacja w relacji nauczyciel – – student i to ona będzie przedmiotem dalszych rozważań, uporządkowa- nych za pomocą metafory

Atrybut ten definiujemy przy użyciu wartości liczbowych – czyli z ilu kolumn ma się składać komórka..

Praca własna: Wykonaj trzy przykłady (jeden wiersz)

Warto zwrócić uwagę, że miłość jawi się jako siła, której nie można się przeciwstawić, jest ona ponad człowiekiem.. Uczucie ma wymiar nadprzyrodzony, a

W rezultacie, jeśli przed T nie było ani jednego „zdarzenia”, to sztucznie przyjmujemy że momentem ostatniego zdarzenia było

Oczywiście, jeśli jest jakiś problem z innego przedmiotu możecie też- i wiele osób tak robi, zgłaszać do mnie i ja przekażę do nauczyciela, który także łączy się z

Gdy inny proces wywoła procedurę monitora będzie on zablokowany do chwili opuszczenia monitora przez pierwszy proces.. Istnieje możliwość wstrzymania i wznowienia procedur monitora

Metoda notify() i notifyAll może być wykonana tylko przez wątek który jest właścicielem monitora obiektu.. Wątek staje się właścicielem monitora