Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Przetwarzaniejęzyka naturalnego
Dariusz BanasiakKatedra Informatyki Technicznej
Wydział Elektroniki
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 2
Przetwarzanie języka naturalnego
NLP – Natural Language Processing (przetwarzanie języka
naturalnego)
Głównym celem prac prowadzonych w tej dziedzinie jest
opracowanie modeli opisujących strukturę języka oraz
poznanie mechanizmów rozumienia i formułowania
wypowiedzi.
Zrozumienie zasad budowy i posługiwania się językiem
naturalnym możliwe jest dzięki wspólnym wysiłkom
badaczy z wielu dyscyplin naukowych:
lingwistyki, logiki, filozofii, psychologii, neurofizjologii oraz
informatyki.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 3
Przetwarzanie języka naturalnego
Definicja NLP
NLP to dział AI zajmujący się poszukiwaniem metod
formalnego opisu języka naturalnego oraz reprezentacji
wiedzy zawartej w tekstach.
Początki zainteresowania przetwarzaniem języka
naturalnego związane są z problemem automatycznego
tłumaczenia tekstów z jednego języka na inny.
Pierwszy projekt badawczy dotyczący automatycznego
tłumaczenia tekstów rozpoczęto w roku 1946 w Birkbeck
College w Londynie.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 4
Przetwarzanie języka naturalnego
Zastosowanie systemów NLP:
� rozpoznawanie i synteza mowy
� interfejsy w języku naturalnym (HCI z j. ang. human -computer interfaces)
� rozumienie i generowanie tekstów, (np. inteligentne wyszukiwania informacji, dokonywanie streszczeń, tworzenie bazy wiedzy, itd.)
� prowadzenie dialogu człowiek-komputer
� automatyczne tłumaczenie tekstów (np. system JANUS-II)
� inteligentne edytory tekstów
� nauka języków obcych
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 5
Przetwarzanie języka naturalnego
Zalety stosowania systemów NLP:
� korzystanie z komputera przez osoby bez specjalistycznego przygotowania
� szybkość (klawiatura 0,5 słowa/s; profesjonalna maszynistka 1.5-2.5 słowa/s; spontaniczna mowa 2.5-3.6 słowa/s)
� zwolnienie rąk użytkownika (równoległe wykonywanie innych czynności)
� komunikacja z komputerem w nietypowym środowisku (pod wodą, w statku kosmicznym)
� zmniejszenie czasu reakcji (szybsza reakcja werbalna niż manualna np. wyłączenie urządzenia w przypadku awarii)
� korzystanie z komputerów przez osoby niepełnosprawne
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 6
Przetwarzanie języka naturalnego
U podstaw procesu porozumiewania się za pomocą języka naturalnego leżą bardzo złożone mechanizmy związane z percepcją i wytwarzaniem wypowiedzi. Wyróżnia się następujące poziomy analizy języka naturalnego:
� akustyczny – rytm i intonacja języka
� fonologiczny – badanie struktury dźwiękowej języka
� morfologiczny – badanie struktury słów (rdzenie, końcówki)
� syntaktyczny – analiza gramatyczna zdania
� semantyczny – opis znaczenia wyrazów i zdań
� pragmatyczny – badanie znaczenia w zależności od kontekstu wypowiedzi
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 7
Przetwarzanie języka naturalnego
Podstawowe problemy analizy języka naturalnego:
� złożoność problemu
(bogate słownictwo, różnorodne struktury, itd.)
� wieloznaczność syntaktyczna wyrazów
(np. wyraz "work" może oznaczać rzeczownik "praca"
lub czasownik "pracować" )
� wieloznaczność semantyczna wyrazów
(np. czasownik "order" może posiadać jedno ze
znaczeń: "rozkazać", "zamówić", "uporządkować" )
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 8
Przetwarzanie języka naturalnego
� wieloznaczność syntaktyczna na poziomie fraz (lub
zdań)
(John) (sent) (a package) (to New York)
(John) (booked) (a flight to New York)
� problem odniesień anaforycznych
The airline bought the plane because it had already decided
to do so earlier
� problem zakresu kwantyfikatorów i negacji
Nie wszyscy chłopcy i dziewczynki poszli do kina
� wystąpienie w zdaniu nieznanych słów.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 9
Przetwarzanie języka naturalnego
Przykładowe realizacje systemów NLP:
� SAD-SAM (R. Lindsay, 1963) – system odpowiadający na pytania dotyczące stopnia pokrewieństwa
� BASEBALL (B. Green i inni, 1963) – system bazy danych, odpowiadający na pytania dotyczące spotkań baseballowych
� LUNAR (W. A. Woods, 1972) – system do wyszukiwania danych na temat próbek gruntu księżycowego pobranych przez Apollo 11
� LADDER (G. Hendrix, 1978) – system dialogowego dostępu do rozproszonych baz danych
� HAM-ANS (1981-86) i WISBER(1986-89) – systemy prowadzące dialog na temat rezerwacji hotelowej (w języku niemieckim)
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 10
Przetwarzanie języka naturalnego
� ORBIS (A. Colmerauer, 1983) – system bazy danych,
odpowiadający na pytania dotyczące planet układu
słonecznego
Projekty 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)
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 11
Przetwarzanie języka naturalnego
Schemat blokowy systemu dialogowego (wg MIT):
synteza
mowy
rozpoznanie
mowy
zrozumienie
wypowiedzi (języka)
kontekst
dialogu
generowanie
wypowiedzi
rama
semantyczna
układ
sterujący baza danych
Pytanie
Odpowiedź
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 12
Przetwarzanie języka naturalnego
Przykład dialogu w systemie Merkury:
S: Welcome to the initial development version of the MIT air travelinformation 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 Ihelp you?
U: I want to fly to San Francisco the first Sunday in November and return the
following Thursday.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 13
Przetwarzanie języka naturalnego
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 youprovide 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:20a.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:40p.m. Would that work?
U: Yes, I’ll take that one.
S: American flight 195 has been added to your itinerary. You departBoston at 9 a.m. and arrive in San Francisco at 12:40 p.m. Shall I helpyou with the return flight now?
U: Yes, please....
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 14
Przetwarzanie języka naturalnego
Analiza syntaktyczna
Dla "zrozumienia" zdania języka naturalnego konieczna
jest nie tylko znajomość znaczenia użytych w nim wyrazów,
ale również informacja o ich wzajemnym układzie i
powiązaniach.
Opisem reguł budowy zdań z wyrazów zajmuje się
syntaktyka. Termin "syntaksa" wywodzi się z greckiego
wyrazu "syntaktis" (zestawienie, uszeregowanie).
Zbiór reguł syntaktycznych dla danego języka nazywamy
gramatyką tego języka.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 15
Przetwarzanie języka naturalnego
Proces analizy syntaktycznej nazywany jest parsowaniem,
a program realizujący ten proces parserem.
Zadaniem parsera jest transformacja liniowego zapisu
tekstu na pewną strukturę, która zawiera informację o
związkach i zależnościach pomiędzy wyrazami i częściami
zdania.
Wprowadzenie przez Chomskiego w latach pięćdziesiątych
naszego wieku pojęcia gramatyki generatywnej stanowiło
przełom w lingwistyce, i uważane jest za jedno z ważniej-
szych wydarzeń w tej dziedzinie.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 16
Przetwarzanie języka naturalnego
Podstawowe pojęcia dotyczące gramatyk
Alfabetem nazywamy skończony zbiór symboli
występujących w danym języku. Dla języka naturalnego
są to wyrazy.
Słowem nazywamy skończony ciąg symboli należących do
alfabetu. Dla języka naturalnego są to zdania.
Językiem nazywamy zbiór słów nad pewnym alfabetem.
Język naturalny jest więc zbiorem zdań.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 17
Przetwarzanie języka naturalnego
Gramatykę definiuje się jako "czwórkę" <T, V, P, S>:
� T – zbiór terminali (symbole końcowe np. słowa języka
naturalnego)
� V – zbiór nieterminali (kategorie syntaktyczne np.
<zdanie>, <fraza rzeczownikowa>, itd.)
� P – zbiór produkcji (reguły tworzenia zdań np.
S → NP VP )
� S – wyróżniony symbol początkowy
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 18
Przetwarzanie języka naturalnego
Postać reguł produkcji stanowi podstawę klasyfikacji
gramatyk na cztery typy (wg Chomskiego):
� typ 0 – gramatyki rekurencyjnie przeliczalne (bez ograniczeń – dowolny ciąg symboli terminalnych i nieterminalnych można zastąpić innym ciągiem tych symboli):
α → β, α, β - dowolne (α ≠ ε)
� typ 1 – gramatyki kontekstowe (ciąg symboli po lewej stronie można zastąpić innym ciągiem co najmniej o tej samej długości):
α A β → α γ β, A – symbol nieterminalny
α, β, γ - dowolne (γ ≠ ε)
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 19
Przetwarzanie języka naturalnego
� typ 2 – gramatyki bezkontekstowe (po lewej stronie
reguły może wystąpić wyłącznie jeden symbol
nieterminalny, prawa strona jest dowolna):
A → α, A – symbol nieterminalny,
α - dowolne
� typ 3 – gramatyki regularne (jeden symbol nieterminalny
można zastąpić jednym symbolem terminalnym lub
połączeniem symbolu nieterminalnego i terminalnego):
A → a lub A → a B, A, B – symbole nieterminalne,
a – symbol terminalny
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 20
Przetwarzanie języka naturalnego
Postać reguł produkcji decyduje o mocy danej gramatyki.
Przez moc gramatyki rozumie się liczbę typów konstrukcji
językowych przez nią generowanych. Najmniejszą moc ma
gramatyka regularna, największą gramatyka rekurencyjnie
policzalna.
Chomsky pokazał, że do opisu języka angielskiego
(i wielu innych języków naturalnych) niezbędna jest
gramatyka kontekstowa.
W praktyce, w wielu zastosowaniach używana jest
gramatyka bezkontekstowa (nie można opisać wszystkich
konstrukcji, ale istnieją efektywne algorytmy).
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 21
Przetwarzanie języka naturalnego
Gramatyka bezkontekstowa dla języka angielskiego (fragment):
S → NP VP
VP → vi (vi – czasownik nieprzechodni np. „spać”)
VP → vt NP (vt – czasownik przechodni np. "widzieć„)
VP → vt NP PP
NP → n
NP → det n
NP → pron (pron – zaimek)
NP → det adj n
PP → prep NP (PP – grupa przyimkowa)
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 22
Przetwarzanie języka naturalnego
Analiza zdania:
They visit friends in Egypt
pron vt n prep n
Drzewo struktury frazowej:
S
NP VP
pron NP PPvt
n NPprep
invisitthey friendst Egypt
n
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 23
Przetwarzanie języka naturalnego
Każda gramatyka powinna spełniać dwa kryteria:
� generować wszystkie poprawne zdania danego języka
� generować wyłącznie zdania tego języka (nie może
generować zdań niepoprawnych).
Przykład
1. Chłopiec czyta książkę.
2. Chłopiec je ciastko.
3. Chłopiec czytają książkę.
4. Chłopiec czyta książka.
5. Chłopiec czyta ciastko.
6. Chłopiec je książkę.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 24
Przetwarzanie języka naturalnego
Gramatyka powinna w swoich regułach uwzględniać
również konieczność uzgadniania form fleksyjnych
wyrazów (istotne dla języków fleksyjnych np. j. polskiego).
Problem ten można rozwiązać przez przypisanie symbolom
gramatyki dodatkowych atrybutów (np. osoby, liczby,
rodzaju, przypadku itd.):
S → NP(case, gender, nb, person) VP(gender, nb, person)
NP(case,gender,number) → Noun(case,gender,number)
Warunkiem zastosowania danej reguły jest wówczas
dodatkowo zgodność wartości odpowiadających sobie
atrybutów.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 25
Przetwarzanie języka naturalnego
Problemy występujące podczas analizy syntaktycznej:
� wieloznaczność syntaktyczna
(Poszedłem) (po proszek) (do sklepu)
(Poszedłem) (po proszek do prania)
� nieciągłość fraz
Dziewczynki będą dziś wieczorem rysowały
� swobodny szyk wyrazów
Ewa dała jabłko Adamowi (możliwe 24 permutacje)
� konstrukcje współrzędnie złożone
� elipsy i konstrukcje z elementami domyślnymi
John wants [John] to dance
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 26
Przetwarzanie języka naturalnego
Rodzaje gramatyk spotykane w literaturze:
� gramatyki transformacyjne
� gramatyki Montague
� gramatyki struktur frazowych
� gramatyki funkcyjne
� gramatyki logiczne
� gramatyki składania drzew
� gramatyki unifikacyjne
� ...
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 27
Przetwarzanie języka naturalnego
Gramatyka dla języka polskiego (wg Szpakowicza):
� jednostki elementarne (klasy wyrazów) - 20
� wyrazy funkcyjne (spójniki i zaimki) - około 100
� jednostki składniowe (nieterminale) - około 100
� reguły - około 270
Przykładowa reguła:
ZDANIEELEM (1, r, l, o, tr, cz, neg)
= [SZFRZ(r, l, o) SZFCZ(OSOB, r, l, o, tr, cz, neg)] .
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 28
Przetwarzanie języka naturalnego
Analiza semantyczna
Semantyka zajmuje się opisem znaczenia. Wyróżnia się trzy poziomy analizy semantycznej: opis znaczenia wyrazów, zdań oraz tekstów.
Cele analizy semantycznej:
� sprawdzenie poprawności zdania pod względem zrozumiałości i sensowności (np. odrzucenie zdań nielogicznych)
� usunięcie niejednoznaczności w strukturze zdania (np. właściwa interpretacja wyrazów, wybór właściwego rozbioru gramatycznego zdania),
� określenie reprezentacji znaczenia zdania (np. opis znaczenia zdania w celu dalszej analizy).
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 29
Przetwarzanie języka naturalnego
Zagadnienie semantyki pojawiło się stosunkowo późno w polu zainteresowania lingwistów (lata 60-te XX wieku).
Dwa podejścia stosowane do opisu semantyki:
� strukturalne (relacyjne)
� składnikowe.
Podejście strukturalne:
jednostkom języka (głoskom, wyrazom itp.), wyróżnionym w toku analizy zdania, można przypisać znaczenie na podstawie ich relacji w stosunku do innych jednostek danego systemu językowego.
Znaczenie wyrazu definiują relacje z wyrazami sąsiednimi (bliskoznacznymi) i opozycyjnymi (np. WORDNET).
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 30
Przetwarzanie języka naturalnego
Podejście składnikowe:
znaczenie może być zdefiniowane przez rozkład na
prostsze (elementarne) komponenty semantyczne.
mężczyzna = człowiek + męski + dorosły
kobieta = człowiek + żeński + dorosły
chłopiec = człowiek + męski + młodociany
Znaczenie czasownika "dać" można zdefiniować za
pomocą czasowników elementarnych "powodować" i
"mieć":
X daje Y-owi Z = X powoduje, Y ma Z
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 31
Przetwarzanie języka naturalnego
Kazimierz Polański – „Słownik syntaktyczno-generatywny czasowników polskich”:
[+ Abstr] – abstrakcyjność [- Abstr] – konkretność
[+ Anim] – żywotność [- Anim] – nieżywotność
[+ Hum] – osobowość [- Hum] – nieosobowość,
[Coll] – zbiorowość [Elm] – żywioł
[Fl] – roślina [Instit] – instytucja
[Instr] – narzędzie [Liqu] – płyn,
[Mach] – maszyna [Mat] – materiał
[Pers] – część
Cechy te mogą tworzyć różne kombinacje np.: [- Abstr, - Anim] – obiekt materialny nieożywiony np. kamień, szkło
[+ Hum, Pars] – część ciała ludzkiego np. ręka, głowa, ząb
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 32
Przetwarzanie języka naturalnego
Podstawowe teorie semantyczne w systemach NLP:
� gramatyki semantyczne (ang. semantic grammars)
� teoria zależności pojęciowych Schanka
(ang. Conceptual Dependancy Theory)
� gramatyka przypadków głębokich Fillmore'a
(ang. case grammar)
Gramatyki semantyczne łączą opis składniowy zdania z informacją semantyczną zawartą w zdaniu (np. gramatyka bezkontekstowa, w której symbole nieterminalne repre-zentują pewne pojęcia semantyczne).
Podstawowe zastosowanie: systemy umożliwiające dostęp do baz danych w języku naturalnym.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 33
Przetwarzanie języka naturalnego
Reguły analizy pytań w systemie LADDER:
S → QUERY the SHIP_PROP of SHIP ?
QUERY → what is | [can you] tell me
SHIP_PROP → speed | length | beam | type | class
SHIP → the SHIP_NAME | SHIP_NAME | the fastest SHIP2 | SHIP2
SHIP_NAME → Kennedy | Enterprise | Lafayette | ...
SHIP2 → COUNTRY SHIP3 | SHIP3
SHIP3 → SHIP_TYPE LOC | SHIP_TYPE
SHIP_TYPE → carrier | submarine
COUNTRYS → American | British
LOC → in the Pacific | in the Atlantic
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 34
Przetwarzanie języka naturalnego
Teoria zależności pojęciowych Schanka (teoria CD)
Teoria CD Schanka wykorzystuje zjawisko "pojęciowego"
podobieństwa czasowników. Podstawą reprezentacji
informacji zawartych w zdaniu jest struktura, która przed-
stawia wzajemne relacje między pojęciami stanowiącymi
główne elementy danego zdarzenia, takimi jak:
� czynność,
� sprawca czynności,
� obiekt podlegający czynności,
� cel czynności
� ...
Struktura ta nazywana jest formułą CD.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 35
Przetwarzanie języka naturalnego
W zapisie formuł zastosowano uproszczenia dotyczące
nazywania czynności. W tym celu zostały wprowadzone
tzw. akcje elementarne, które w formułach pełnią funkcję
czasowników.
Schank zaproponował jedenaście akcji elementarnych:
� MTRANS
� ATRANS
� PTRANS
� PROPEL
� INGEST
� MBUILT
� ATTEND
� SPEAK
� MOVE
� GRASP
� EXPEL.
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 36
Przetwarzanie języka naturalnego
Przykład
Janek dał Marii jabłko.
Maria wzięła od Janka jabłko.
Zdania te będą miały następującą reprezentację w postaci
formuł CD:
akcja - ATRANS akcja - ATRANS
aktor - Janek aktor - Maria
obiekt - jabłko obiekt - jabłko
kierunek DO - Maria kierunek DO - Maria
OD - Janek OD - Janek
Autor: Dariusz Banasiak – Katedra Informatyki Technicznej 37
Przetwarzanie języka naturalnego
Nagroda Loebnera (od 1990 roku)
Nagroda ufundowana dla programisty, który zdoła napisać
program, który skutecznie przejdzie test Turinga.
Nagroda ta obejmuje przyznanie złotego medalu oraz
100 000 USD dla programu prowadzącego konwersację,
który zdoła skutecznie zmylić wszystkich sędziów.
http://www.loebner.net/Prizef/loebner-prize.html