Semantyka języka naturalnego
Download
Report
Transcript Semantyka języka naturalnego
Skrót: wykłady 7-11
i trochę semantyki z wykładu 6
Semantyka czyli znaczenie
ustalenie co jest znaczeniem konkretnego wyrażenia w
języku naturalnym
– nazwy obiektów, relacji między nimi, ...
– sieci semantyczne wskazujące na hierarchię i
pokrewieństwo terminów
ustalenie sposobu reprezentowania znaczenia
określenie niezbędnego zakresu wiedzy pragmatycznej
określenie zasad wnioskowania
„warstwy” problemu
reprezentacja znaczenia : metoda zapisu potrzebnych
informacji
wnioskowanie : uzyskiwanie nowych informacji z już
dostępnych
analiza semantyczna : automatyczne generowanie zapisu
znaczenia zdań (równocześnie lub nie z analizą syntaktyczną)
Reprezentacja znaczenia
W jaki sposób można reprezentować semantykę języka naturalnego,
czyli jakie mechanizmy formalne można tym celu wykorzystać
(zdefiniować)?
... W praktyce może to być „cokolwiek”, co odpowiada praktycznym
potrzebom programu dokonującego interpretacji semantycznej
Kiedy potrzebna jest semantyka:
– odpowiedzi na pytania
– ustalenie, czy dane zdanie jest prawdziwe
– wnioskowanie,
– etc.
Rachunek predykatów I rzędu
„Naturalną” metodą reprezentowania semantyki jest rachunek
predykatów I rzędu
Nie jest to idealny sposób zapisu, nie pozwala na wyrażenie
wszystkich znaczeń, ale ma wiele właściwych cech:
– pozwala zapisać czy jakiś fakt jest prawdziwy czy fałszywy
– pozwala zapisywać pytania (użycie zmiennych)
– są metody wnioskowania
Wybór rachunku pred. I rzędu nie jest całkowicie arbitralny czy
sterowany konkretnymi aplikacjami. Można zauważyć pewne
analogie między językiem naturalnym a językiem rachunku
predykatów.
Cechy rachunku pred. I rzędu: wprowadzenie zmiennych, użycie
kwantyfikatorów, częściowo kompozycyjna semantyka
Struktura predykatowo-argumentowa
Nawet dość pobieżna analiza wykazuje, że struktura
predykatowo -argumentowa dobrze oddaje znaczenie wielu
elementów języka naturalnego.
W szczególności niektóre typy słów w łatwy sposób można
przetłumaczyć na predykaty, podczas gdy inne pełnią funkcje
ich argumentów:
słowa kojarzone z predykatami:
– czasowniki (frazy czasownikowe), przyimki, przymiotniki,
niektóre czasowniki
słowa kojarzone z argumentami:
– rzeczowniki (frazy rzeczownikowe)
Przykład zapisu znaczenia
Reprezentacja rzeczowników:
- imiona własne -> tłumaczone na unikalne nazwy
Jan -> Jan, Marii -> Maria
(często to nie wystarcza)
- rzeczowniki pospolite nie określają konkretnego obiektu, ale
pewien obiekt o jakiś znanych cechach
książka -> x Isa(x, Book)
Przykład zapisu znaczenia
Przykład:
Jan dał Marii książkę.
Tłumaczenie „bezpośrednie”:
Dać(Jan, Maria, książka)
„Lepsze” (dokładniejsze) tłumaczenie:
(należy stosować ten sposób)
– czasownik decyduje o nazwie predykatu, liczbie i roli jego
argumentów, ‘dać’ oznacza więc:
w,x,y,z Giving(x) Giver(w, x) Givee(y, x) Given(z, x)
dla powyżsższego zdania więc:
x,y Giving(x) Giver(John, x) Givee(Mary, x) Given(y, x)
Isa(y, Book)
Różnica między zapisem rzeczowników ‘Jan’ i ‘książka’ to różnica interpretacji
rzeczowników własnych i pospolitych
Analiza semantyczna
Analiza semantyczna to proces przekształcenia wyrażenia
lingwistycznego w zapis jego znaczenia
Są miliony sposobów dokonania takiego przekształcenia, od
rozwiązań całkowicie ad hoc, opracowanych na potrzeby
konkretnych aplikacji do wyrafinowanych metod
teoretycznych o często wątpliwym znaczeniu praktycznym
Większość metod analizy semantycznej opiera się na
wynikach analizy syntaktycznej (albo jest dokonywana
równolegle z nią)
Semantyka kompozycyjna
Większość metod zapisu znaczenia zakłada
KOMPOZYCYJNOŚĆ
semantyki, tzn. przyjmuje założenie, że znaczenie
większych fragmentów teksu (zdania) może zostać
określona jako funkcja znaczeń jego elementów, czyli słów
i fraz
Na czy polega to w praktyce? Pokażemy na przykładzie
zdania:
(AyCaramba to nazwa restauracji (niewgetariańskiej))
AyCaramba serves meat
Przykład
AyCaramba serves meat
S e Isa(e, Serving) Server(e, AyCaramba) Served(e, Meat)
NP
VP
NP
Proper-Noun
Verb
AyCaramba
serves
Mass-Noun
meat
Rozszerzone reguły syntaktyczne
Jak uzyskać znaczenie zdania ze znaczenia elementów?
Dołączymy do reguł gramatyki CFG dodatkowe informacje
(podobnie jak miało to miejsce przy rozszerzaniu CFG do
gramatyk unifikacyjnych)
Reguła gramatyki będzie miała teraz postać:
A 1 ... n { f(j.sem, ... , k.sem) }
W powyższym przykładzie:
ProperNoun AyCaramba {AyCaramba}
MassNoun meat
{Meat}
NP ProperNoun
{ProperNoun:sem}
NP MassNoun
{MassNoun:sem}
Verb serves { e, x, y Isa(e, Serving) Server(e, x) Served(e, y)}
Wyrażenia Lambda
Jak włączyć semantykę argumentów do semantyki czasownika?
Wyrażenia Lambda :
xP(x)
xP(x)(A)
P(A)
Verb serves
{xy {e Isa(e, Serving) Server(e, y) Served(e, x)}
S NP VP
VP Verb NP
{VP:sem(NP:sem)}
{Verb:sem(NP:sem)}
Przykład analizy semantycznej
S ( AyCaramba serves meat )
e Isa(e, Serving) Server(e, AyCaramba) Served(e, Meat)
NP AC
VP
ye Isa(e, Serving) Server(e, y) Served(e, Meat)}
NP
Meat
Proper-Noun AC
Verb
Mass-Noun Meat
AyCaramba
serves
meat
Kolejny przykład
W restauracji podają mięso.
Wydaje się, że interpretacją powyższego zdania powinno być:
e,x Isa(e, Serving) Server(e, x) Served(e, Meat) Isa(x,
Restaurant)
ale, jeżeli założymy, że interpretacją wyrazu ‘restauracja’ jest wyrażenie:
x Isa(x, Restaurant)
to jak uzyskać powyższe tłumaczenie z:
{xy {e Isa(e, Serving) Server(e, y) Served(e, x)}
Proste zastąpienie zmiennej wyrażeniem nie prowadzi do właściwego
rezultatu. Wynikiem jest:
e Isa(e, Serving) Server(e, xIsa(x, Restaurant)) Served(e, Meat)
niestety powyższy zapis nie jest wyrażeniem rach. pred. I rz. (FOPC)
Wprowadzenie termów złożonych
Rozwiązaniem problemu jest taki zapis semantyki fraz
rzeczownikowych, aby jej elementy były dostępne „z zewnątrz”:
Wprowadzenie „termów złożonych” i sposobu ich przekształcania:
< Quantifier variable body > , np. x Isa(x; Restaurant)
e Isa(e, Serving) Server(e, < xIsa(x, Restaurant) >) Served(e,
Meat)
Przekształcenie na wyrażenie logiki I rzędu:
P (< Quantifier variable body >)
Quantifier variable body Connective P(variable)
Server(e, < xIsa(x, Restaurant) >)
xIsa(x, Restaurant) Server(e, x)
Niejednoznaczności
– Struktura składniowa (i znaczenie)
Pacjent opuścił salę operacyjną w dobrym stanie
– „nawiasowanie” negacji
Nie zrobisz tego? Nie (nie zrobię albo właśnie, że zrobię)
– kwantyfikacja
Każdy chce mieć piękny samochód. (każdy inny)
Każdy chce wygrać szczęśliwy los. (ten jedyny)
– wiązane zaimków
Jan kazał Piotrowi wyczyścić swoje buty.
Wieloznaczność kwantyfikatorów
Every restaurant has a menu.
Czy to ...
x (Isa(x, Restaurantx)
e, y Having(e) ^ Haver(e, x) ^ Isa(y, Menu) ^ Had(e, y) )
czy ...
y (Isa(y, Menu) ^ x Isa(x, Restaurant)
e Having(e) ^ Haver(e, x) ^ Had(e, y) )
przy wieloznaczność zakresu kwantyfikatorów, brak jest
ogólnych reguł rozstrzygania
Statystyka a język naturalny
Chomsky, 1969
„It must be recognized that the notion of a ‘probability of a
sentence’ is an entirely useless one, under any interpretation of
this term”
Powszechnie zaakceptowane powinno być stwierdzenie, że
‘prawdopodobieństwo zdania’ jest pojęciem całkowicie
nieprzydatnym, niezależnie od sposobu jego zdefiniowania.
… ale jednak tak nie jest
Podejście statystyczne
dane: teksty w języku naturalnym
metody analizy: liczenie wyrazów, liter, znaków
możliwe wnioski:
– kolejność słów, stałe frazy (nazwy produktów, firm, ...)
– współwystępowanie słów (np. w tekście, w którym często pojawia się
słowo ‘drzewa’ słowo ‘bal’ ma pewnie znaczenie inne niż w tekście, w
którym występuje często słowo ‘suknia’ czy ‘frak’) - podział tekstów
na kategorie tematyczne
– rozpoznanie języka, w którym jest tekst (nie trzeba mieć słownika),
np. duża liczba słów zaczynających się od wielkiej litery może
sugerować niemiecki, częstotliwość zbitek ‘th’ lub ‘ph’ angielski ...
Podejście statystyczne, cd.
Dane: teksty w języku naturalnym z anotacjami (tagami)
zawierającymi:
– informacje o części mowy i cechach fleksyjnych
metody analizy: liczenie wyrazów lub tagów (i ich sekwencji)
1 wersja: anotacje wzięte ze słownika, niejednoznaczne
– piec
rzeczownik, r. m3, mianownik,
czasownik, bezokolicznik
2 wersja: anotacje ujednoznacznione (ręcznie lub automatycznie ,
w szczególności metodami statystycznymi)
3: inne rodzaje anotacji: informacje o granicach zdań, fraz, o
strukturze składniowej ...
Podejście statystyczne, cd.
Co można osiągnąć?
– anotacje ujednoznacznione znacznie zwiększają skuteczność
wyszukiwania,
np. w odpowiedzi na pytanie ‘mama’ (we wszystkich formach)
nie otrzymamy form czasownika mieć
aby jednak dalej poprawić skuteczność potrzebne są anotacje
semantyczne:
np. ‘serwis’ : porcelanowy, sportowy/giełdowy czy początek gry
– wyszukiwać określonego typu informacje bnez znajomości
dokładnej struktury tesktu
– formułowanie hipotez o budowie tekstu (znajdowanie granic
fraz, zdań, wzorców syntaktyznych)
Rozstrzyganie niejednoznaczności.
Reguły czy statystyka?
Przykłady problemów, jednoznaczność w kontekście, np.:
– she books, ona pali --> books, pali (?) to czasowniki
–
–
–
–
reguła: jeżeli niejednoznaczne słowo (rzeczownik/czasownik)
poprzedzone jest (zgodnym) zaimkiem, to jest to czasownik
ale nie zawsze, np. przecież ona pali nie przesunęła
niejasne sytuacje:
on pali, nie potnie teraz tych pali
on pali, o ile wiem, nie potnie, pali
pociąć bal -> czasowniki narzucają wymagania na typ obiektów
opisywanych przez ich wymagania
przygotowywać się na bal
podnieść bal
ale: tańczyć na balu
Postulaty
Nie
zgaduj, jeśli wiesz
– morfologia (odmiana)
– słowniki (listy słów)
– jednoznaczne nazwy
– być może część stałych fraz
– reguły syntaktyczne??
Wykorzystuj
statystykę (opierając się o dane rzeczywiste)
dla ustalania preferencji
Prawo Bayes’a
p(A,B) = p(B,A)
bo p(A p(B
czyli: skoro p(A|B)=p(A B) /p(B) to
p(A B) = p(A|B) p(B)
i
p(A B) = p(B|A) p(A)
p(A|B) p(B) = p(B|A) p(A)
i
p(A|B) = p(B|A) p(A) / p(B)
p(B|A) = p(A|B) p(B) / p(A)
Powyższa reguła znana jest jako prawo Bayes’a. Pozwala ona
na przechodzenie między prawdopodobieństwami p(A|B) i p(B|A)
w zależności od tego, jakimi danymi dysponujemy
„Noisy Channel Model”
Zadaniem jest odkodowanie sygnału źródłowego
Input
0,1,1,1,0,1,0,1,...
SOURCE
The
Thechannel
channel
(adds noise)
(adds noise)
Output(noisy)
0,1,1,0,0,1,1,0,...
NOISY CHANNEL DECODER
word
noisy word
guess at original word
Model to prawdopodobieństwo błędów (szumu):
Przykład: p(0|1) = .25 (otrzymaliśmy 1 a było 0 - czyli prawdopodobieństwo
że było ‘0’ pod warunkiem, ze otrzymaliśmy ‘1’)
p(1|1) = .75 (otrzymaliśmy 1 i było 1)
p(1|0) = .5 (otrzymaliśmy 0, a było 1) p(0|0) = .5
„Noisy Channel’ - zastosowania
Wiele problemów związanych z NLP może być widziane jako problemy
związane z likwidacją szumów (noisy channel problems), m.in.
– OCR
text print (adds noise), scan image
– rozpoznawanie pisma odręcznego
text neurones, muscles (“noise”), scan/digitize image
– poprawianie błędów pisowni (spelling correctors)
– rozpoznawanie mowy (dyktowanie, wydawanie poleceń)
text conversion to acoustic signal (“noise”) acoustic waves
– ??tłumaczenie maszynowe
text in target language translation (“noise”) source language
– tagowanie (Part of Speech Tagging)
sequence of tags selection of word forms text
Wykorzystanie prawa Bayes’a
W przypadku zaszumienia sygnału poszukujemy najbardziej prawdopodobnego
ciągu wejściowego, który mógłby odpowiadać zaobserwowanemu sygnałowi.
Poszukujemy więc:
argmax Source P(Source|Signal)
p(A|B) = p(B|A) p(A) / p(B)
Niestety zwykle brak niezbędnych danych. Jednak:
P (Source|Signal) = P (Signal|Source) P(Source) / P (Signal)
co nam daje:
argmax Source P(Signal|Source)P(Source) / P(Signal)
W jaki sposób to nam może pomóc, skoro dysponujemy jedynie
zaobserwowanym sygnałem, a nie znamy sygnału właściwego?
Wiemy, jaka jest przestrzeń możliwych danych początkowe. Możemy wstawić
każdą z nich do powyższego równania, policzyć prawdopodobieństwa i wybrać
hipotezę o najwyższym prawdopodobieństwie.
Wykorzystanie prawa Bayes’a do
kontroli pisowni
dane (signal):
słowo źle napisane
rezultat (source): poprawne słowo
Załóżmy, że V jest przestrzenią możliwych słów, w oznacza prawidłowe
słowo, a s błędną jego pisownię
w = argmax wV P(w|s) = argmax wV P(s|w)P(w) / P(s)
Do policzenia powyższego potrzebujemy:
P(s|w) , P(w), P(s)
P(s) - prawdopodobieństwo pojawienia się błędnego słowa s
P(w) - prawdopodobieństwo pojawienia się w tekście słowa w
P(s|w) - prawdopodobieństwo pojawienia się s zamiast w
Rozważmy przykład: w tekście pojawiło się acress zamiast actress ...
musimy policzyć prawdopodobieństwo zrobienia takiego błędu ...
Rodzaje błędów pisowni
Postulat zbadania częstości występowania konkretnych błędów w
poszczególnych słowach jest nierealistyczny. Nie da się zebrać danych
odpowiedniej wielkości
Trzeba więc policzyć P(s|w) nie dysponując bezpośrednimi danymi.
Źródła błędów:
– wstawienie zbędnej litery: ther - the, jeje - jej
– brak litery: ther - there, jj - jej
– zastąpienie prawidłowej litery inną: noq - now,
– zmiana kolejności liter: teh - the, nei - nie
Wystąpienie słowa acress zamiast actress może być potraktowane jako
błąd braku ‘t’, a więc poszukiwane prawdopodobieństwo to ...
Należy więc w odpowiednio dużym (niepoprawianym) korpusie policzyć
częstość braku litery ‘t’.
Metoda Kernighan’a (1990)
Tabela prawdopodobieństw pomyłek (na podstawie korpusu)
P (t|c) =
del[c p-1, cp] / count[c p-1cp] if deletion
ile razy zamiast c p-1cp wystąpiło c p-1
ins[c p-1, tp] / count[cp-1] if insertion
ile razy zamiast c p-1 wystąpiło c p-1cp
sub[t p, cp] / count[cp] if substitution
ile razy zamiast cp wystąpiło t p
trans[c p, c p+1 ] / count[c pcp+1] if transposition
ile razy zamiast c p-1cp wystąpiło cpc p-1
Przykładowo jeśli chcemy podać prawdopodobieństwo błędu jje
zamiast jej liczymy częstość wystąpienia je zamiast ej.
Metoda Kernighan’a, cd.
założenie podstawowe: w słowie jest tylko jeden błąd
generujemy wszystkie możliwe pojedyncze błędy dla danego
(błędnego) słowa
wyznaczamy wszystkie możliwe rezultaty tych błędów i sprawdzamy,
które z nich są słowami naszego języka
wyznaczamy prawdopodobieństwo wystąpienia poszczególnych słów
proponujemy słowa w kolejności ich prawdopodobieństw
Wyniki dla acress zamiast
actress
Korpus 44 milionów słów, poprawka dla słów niewystępujących w
korpusie - dodanie 0.5 do wszystkich częstości
P(c) = (C(c)+0.5) /(N+0.5*V) V- liczba słów w słowniku
c
actress
cress
caress
access
across
acres
acres
freq(c)
1343
0
4
2280
8436
2879
2879
p(c)
.0000315
. 00000014
. 000001
.000058
.00019
.000065
.000065
p(t|c)
.000117
.00000144
.00000164
.000000209
.0000093
.0000342
.0000342
p(t|c)p(c)
3.69 x 10 -9
2.02 x 10-14
1.64 x 10-13
1.21 x 10-11
1.77 x 10-9
2.22 x 10-9
2.22 x 10-9
%
37%
0%
0%
0%
18%
21%
21%
Podsumowanie metody
Brak wykorzystania kontekstu, np..
a stellar and versatile acress whose... (actress)
Zamiast obliczania prawdopodobieństwa błędu na podstawie korpusu
ustalenie początkowo wszystkich prawdopodobieństw jako równych i
„uczenie się” na podstawie dostarczanych zbiorów danych (pary słów
błędnych i poprawnych)
! Jest (bardzo) wiele sposobów, na jakie można w danej sytuacji
zastosować model Bayesa - zależy to głownie od rodzaju danych jakie
chcemy/możemy zebrać
Problemy związane z tym podejściem:
– potrzeba istnienia korpusów
– szczególne traktowanie słów, które nie wystąpiły ani razu
Automaty z prawdopodobieństwem,
rozpoznawanie mowy
Jeżeli założymy, że reprezentacja wymowy jest niestandardową
pisownią możemy rozpoznawanie mowy potraktować jako szczególny
przykład ‘korektora’ pisowni
Do rozpoznawania mowy konstruujemy automat, w którym
– stany reprezentują elementy wejścia (phones, letters, etc).
– przejścia wzbogacone są o prawdopodobieństwa mówiące jakie
jest jego prawdopodobieństwo, Suma prawdopodobieństw na
przejściach wychodzących z jednego stanu musi wynosić 1
– z uwagi na tradycję symbole zgodnie z którymi dokonywane są
przejścia przypisywane są do stanów, a nie samych przejść
– Ponieważ analizujemy tekst w języku naturalnym ograniczymy
automaty do takich, w których wszystkie przejścia prowadzą „w
przód”
Prob, FSA, modele słów
Automat rozpoznający wymowę słowa ‘need’
start
...
n1
n
a14=.11
iy2
.89
iy
Observation Sequence (phone symbols)
d3
d
end
...
Wykorzystanie
probabilistycznych FSA
Wykorzystując probabilistyczne FSA możemy odpowiedzieć
na pytania:
jakie jest prawdopodobieństwo wygenerowania konkretnego
wyrażenia?
Jaka jest najbardziej prawdopodobna ścieżka przejścia dla
danego wyrażenia ?
Jaki jest najbardziej prawdopodobny rezultat (wyjście) dla
danego wejścia?
Jak przypisać prawdopodobieństwa do przejść? (??)
Model Bayesa dla wymowy
Zadanie:
na podstawie serii fonemów obliczyć najbardziej prawdopodobne
słowo, które im odpowiada (założymy chwilowo, że fonemy te są
prawidłowo rozpoznane i że znamy granice słowa)
Przykład:
założymy, że rozpatrywaną sekwencją jest [ni]
korpus mówionego języka angielskiego (Switchboard Corpus) podaje
następujące słowa, których wymowa jest [ni]:
– the, neat (neat little), new (New York), need, knee, to (talking to
you) , you !
Wybór zgodnie z regułą
w’ = argmax wW P(y|w) P(w)
y= [ni], w -jedno z 7 słów
Jak wyznaczyć p(y|w) ?
Reguły probabilistyczne
Propozycja 1: analogicznie jak dla błędów pisowni (tabele
częstości pojedynczych błędów (dla pisowni były to: zamiana,
opuszczenie, wstawianie, przestawienie kolejności)
– przeszkoda: zmian wymowy może być w jednym słowie wiele, są od
siebie zależne (dotyczą nie tylko jednego fonemu)
Idea: reguły probabilistyczne
przykład: reguła, która mówi, że po wyrazie zakończonym na ‘n’, lub ‘m’
(głoska nosowa) słowo the może być wymówione jako [ni] (a dokładniej
dźwięk [] może być zastąpiony przez [n]):
n / [+nasal]# __
zmiana ta nie zachodzi jednak zawsze:
[.15] n / [+nasal]# __
– Jak ustalić wartość [.15]? - odpowiedź: na podstawie korpusu
Przykład, I need, cd.
Słowo
the
neat
need
new
reguła
nasal assimilation
pominięcie końcowego ‘t’
pominięcie końcowego ‘d’
zmiana ‘u’ przed ‘y’
w
freq(w) p(w)
knee
61
0.00024
the
115
0.046
neat 338
0.00013
need 1417
0.00056
new 2625
0.001
P
n / [+nasal]# __
t / V __ #
d / V __ #
u i / __ #y
p(y|w)
1
0
0.52
0.11
0.36
[.15]
[.52]
[.11]
[.36]
p(y|w)p(w)
0.000024
0
0.000068
0.000062
0.00036
Poprawa wyniku - uwzględnienie kontekstu (np. bigramy)
Metody statystyczne
w inżynierii lingwistycznej, cz.2
Słowa w kontekście
Most zaprojektowany prawie 100 lat
temu przez Leonarda da Vinci
otwarto
w środę
w Norwegii.
GW, 3-4.11.2001
W wielu przypadkach jesteśmy w stanie przewidzieć kolejne słowo (a
przynajmniej klasę do jakiej należy)
Rodzaje zasobów wiedzy, z której korzystamy:
– wiedza ogólna o świecie i dotycząca konkretnej dziedziny
– wiedza syntaktyczna
– wiedza leksykalna
Słowa w kontekście
Postulat:
Dużą część wiedzy niezbędnej do przewidywania możliwego dalszego
ciągu wypowiedzi możemy analizować korzystając z metod
statystycznych.
W szczególności możemy mówić o prawdopodobieństwie zdania
(wypowiedzi)
Czy rzeczywiście chcemy przewidywać jakie będzie następne słowo?
NIE, ale jeżeli umiemy to zrobić, to znaczy, że umiemy porównywać
prawdopodobieństwa pewnych połączeń - umiemy oceniać
prawdopodobieństwo/poprawność zdania.
np. Przy analizie mowy możemy ocenić która z naszych hipotez jest
najbardziej prawdopodobna
Rzeczywiste błędy pisowni
Wiadomo, że pewne typy błędów prowadzą do słów, które występują w
słowniku (wykrycie ich wymaga uwzględniania kontekstu); sposób
traktowania takich błędów, np.
– budowa listy często mylonych słów: piece/peace, whether/weather/,
their/there etc.
– Jeżeli w zdaniu występuje któreś z często mylonych słów -
konstrukcja alternatywnego zdania,
– zbadanie prawdopodobieństwa konkurencyjnych zdań i wybór słowa,
które wchodziło w skład zdania o większym prawdopod.
– np.: ... blah blah blah the whether... vs blah blah blah the weather...
Prawdopodobieństwo zdania może być widziane jako iloczyn
prawdopodobieństwa słów, w nim występujących, np.
P(The big cat)= P (the ^ big ^ cat)
Łańcuchy (Chain Rule)
Przypomnijmy definicję prawdopodobieństwa warunkowego:
p(A|B) = p(A^B) / p(B)
czyli p(A ^ B) = p(B|A) p(A) tzn.
p(The ^ dog) = p(dog|the) p(the)
W ogólności:
p(A1, A2, A3, A4, ..., An) =
p(A1|A2,A3,A4,...,An) p(A2|A3,A4,...,An)
p(A3|A4,...,An) ... p(An-1|An) p(An)
inaczej
p(wn1) = p(w 1 )p(w2 | w1) p(w3 |w21) ... p(wn | wn-11)
= n k=1 p(wk | wk-11)
(reguła łańcucha to bezpośrednia konsekwencja reguły Bayesa)
!
„Złota reguła”
(klasycznej statystycznej inżynierii
lingwistycznej)
Jeżeli jesteśmy zainteresowani zdarzeniem A pod warunkiem B i
jeśli bezpośrednie oszacowanie p(A|B) jest praktycznie trudne
bądź niezgodne z naszymi zamierzeniami:
– zgodnie z regułą Bayes’a liczymy:
argmaxA p(A|B) = argmaxA p(B|A) . p(A) / p(B) =
argmaxA p(B|A) p(A)
!
... gdyż p(B) jest stałe dla zmieniających się A
„Złota reguła ...”
OCR, ASR,
MT,MT,
... ...
OCR,
ASR,HR,
HR,
p(A|B) = p(B|A) p(A) / p(B) (formuła Bayesa)
Abest = argmaxA p(B|A) p(A) („złota zasada”)
p(B|A): model akustyczny, leksykalny, ... (nazwa zależna od
aplikacji)
p(A): model języka
W statystycznych aplikacjach dotyczących języka naturalnego
wiedza o źródle danych nazywana jest częściej modelem języka
(Language Model) niż gramatyką.
Idealny model języka
Język
to ciąg form wyrazowych
notacja: A ~ W = (w1,w2,w3,...,wd)
zadanie
(cel modelowania):
p(W) = ?
Oczywiście jest reguła:
p(W) = p(w1,w2,w3,...,wd) =
= p(w1) p(w2|w1) p(w3|w1,w2) ... p(wd|w1,w2,...,wd-1)
ale niezbyt praktyczna -> zbyt wiele parametrów nawet przy
małym d
Łańcuchy Markova
W idealnym
modelu - pamięć nieskończona:
– dla wi, znamy wszystkich poprzedników w1,w2,w3,...,wi-1
Przybliżanie
- założenie Markova:
P (w n | wn-11) P (w n | wn-1n-N+1) ,
(robimy założenie, które umożliwia nam zbieranie statystyk)
tzn. pamięć ograniczona:
– zapominamy o „zbyt dawnych” poprzednikach
– pamiętamy tylko kilka (k) poprzedzających słów :
wi-k,wi-k+1,...,wi-1
– metoda ta nazywana jest aproksymacją Markova k-tego rzędu
– “kth order Markov approximation”
– + niezmienność w czasie
Łańcuchy Markova, bigramy
pełny
wzór:
P (wn1) = P (w 1) P(w 2 | w 1 ) P(w 3 | w 12)... P(w n | w 1n-1)
=
P(w k | w 1k-1)
k=1..n
przybliżenie
- założenie Markova:
P (w n | wn-11) P (w n | wn-1n-N+1)
założenie
Markova dla bigramów
P (wn1) P(w k | w k-1)
k=1..n
(N- rząd)
Łańcuchy Markova, bigramy
: P(w k | w k-1) na podstawie częstości w korpusie
treningowym
Estymacja
P (w n | wn-1) = c(w n-1 wn) /
w
c(w n-1 w) =
= c(w n-1 wn) / c(w n-1)
Przykłady
x-Gramy
– unigrams: (bez pamięci)
P(dog),
P(sen)
– bigramy: (pamięć jednego słowa)
P(dog|big),
P(sen|kolorowy)
– trigramy: (pamięć dwóch sów)
P(dog|the big)
– quadrigramy:
P(sen|nienaturalnie kolorowy)
(pamięć trzech słów)
P(dog|the big bad)
P(sen|bardzo nienaturalnie kolorowy)
Przykłady z
„Berkeley restaurant project”
Prawdopodobieństwa poszczególnych ciągów słów mogą być
przybliżane przez liczebności w odpowiednio dużym korpusie.
system odpowiada na pytania dotyczące restauracji w Berkeley,
California korzystając z odpowiedniej bazy danych
przykładowe pytania:
I’m looking for Cantonese food.
I’d like to eat dinner someplace nearby.
Tell me about Chez Panisse.
Can you give me a list of the kinds of food that are available?
When is cafe Venezia open during the day?
Korpus ok. 10 000 zdań, 1616 form wyrazowych
BERP, bigramy
Counts
I
want
to
eat
Chinese
food
lunch
Probs
I
want
to
eat
Chinese
food
lunch
I
8
3
3
0
2
19
4
I
.0023
.0025
.00092
0
.0094
.013
.0087
want
1087
0
0
0
0
0
0
want
.32
0
0
0
0
0
0
to
0
786
10
2
0
17
0
to
0
.65
.0031
.0021
0
.011
0
P (w n | wn-1) =c(w n-1 wn) / c(w n-1)
eat
13
0
860
0
0
0
0
eat
.0038
0
.26
0
0
0
0
Chinese food
lunch
0
0
0
6
8
6
3
0
12
19
2
52
0
120
1
0
0
0
0
1
0
Chinese
0
.0049
.00092
.020
0
0
0
food
lunch
0
0
.0066 .0049
0
.0037
.0021 .055
.56
.0047
0
0
.0022 0
uni.
3437
1215
3256
938
213
1506
459
Prawdopodobieństwo zdania
Prawdopodobieństwa policzone z danych:
eat on (on|eat)
- 0.16 eat at
eat some - 0.06
eat Indian eat lunch - 0.06
eat Thai <s> I
- 0.25
I want
- 0.32
British food- .6
want to
to eat
Wyliczone prawdopodobieństwo zdania:
P(I want to eat British food) =
-
0.04
0.04
0.03
.65
.26
= 0.000016
P(I|<s>) P(want|I) P(to|want) P(eat|to) P(British|eat) P(food|British)
(z uwagi na małe liczby operujemy zwykle na logarytmach, logprob)
Kilka uwag o podanych liczbach:
Częste połaczenia:
P (want|I) = .32 P (to|want) = .65 P (eat|to) = .26
P (food|chinese) = .56 P (lunch|eat) = .055
Rzadkie połączenia:
P (I|I)
P (I|want) P (I|food)
ale nie niemożliwe:
P (I|I) I I I I want...
P (I|want) I want I want
P (I|food) the kind of food I want is...
N-gramowe modele języka
n-gram Language Models
Aproksymacja Markova (n-1)th rzędu n-gram LM:
p(W) df i=1..dp(wi|wi-n+1,wi-n+2,...,wi-1)
W szczególności (przy słowniku |V| = 60k):
– 0-gram LM: uniform model,
p(w) = 1/|V|,
– 1-gram LM: unigram model,
– 2-gram LM: bigram model,
– 3-gram LM: trigram model,
1 parametr
p(w),
6104 parametry
p(wi|wi-1)
3.6109 parametry
p(wi|wi-2,wi-1) 2.161014 parametry
Kilka uwag - wnioski
niewielka liczba zdarzeń występuje z dużą częstością
duża liczba zdarzeń występuje z niska częstością.
! Można szybko zebrać dane dotyczące dużych częstości
! Zebranie danych dotyczących niskich częstości może trwa zbyt długo
! Zera pojawiające się w tabelach są dwojakiego rodzaju:
– rzeczywiste 0
– 0 wynikające ze zbyt małej próby
N-gramy, problem zerowych
wystąpień
– w przypadku generowania tekstów jesteśmy ograniczeni tylko do
tych n-gramów, które wystąpiły w analizowanym korpusie; przy
dostatecznej wielkości korpusu ograniczenie to ma niewielkie
znaczenie praktyczne;
– przy analizie system przypisuje zerowe prawdopodobieństwa
wyrażeniom, które zawierają takie elementy, które nie wystąpiły w
korpusie - tak być nie może.
Metody „obejścia” problemu
– nie wykorzystywać n-gramów wyższego rzędu
– wprowadzenie poprawek do modelu (smoothing)
zmniejszeni liczności n-gramów, które wystapiły na rzecz tych,
które nie wystąpiły (metody: Add-One , Witten-Bell)
środki matematyczne (backoff (Katz Backoff), interpolacja)
BERP, bigramy, model Add One
Counts,org. I
I
8
want
3
to
3
eat
0
Chinese
2
food
19
lunch
4
Counts+1
I
want
to
eat
Chinese
food
lunch
I
6
2
3
0.37
0.36
10
1.1
want
1087
0
0
0
0
0
0
want
740
0.42
0.69
0.37
0.12
0.48
0.22
to
0
786
10
2
0
17
0
to
0.68
331
8
1
0.12
9
0.22
eat
13
0
860
0
0
0
0
Chinese food
0
0
6
8
3
0
19
2
0
120
0
0
0
1
lunch
0
6
12
52
1
0
0
eat
Chinese food lunch
10
0.68 0.68
0.68
0.42 3
4
3
594
3
0.69
9
0.37
7.4
1
20
0.12 0.12 15
0.24
0.48 0.48
0.48
0.48
0.22 0.22
0.44
0.22
Co osiągnęliśmy?
Add One jest złą metodą przybliżania
– bardzo duże zmiany częstości
(duży % przypisany tym n-gramom, które nigdy nie
wystąpiły)
– Gale i Church (1994) dowodzą, że jest to metoda gorsza
nawet od wersji zupełnie nie poprawianej
– można dodawać mniej niż 1, ale wciąż nie jest to
najlepsza metoda ..
Witten-Bell
Idea: prawdopodobieństwo n-gramu, który jeszcze nie wystąpił jest
zależne od tego jaka część z możliwych n-gramów nie pojawiła się jeszcze
w korpusie
Ile razy rozpoznawaliśmy jakiś n-gram po raz pierwszy? - tyle razy ile
stwierdziliśmy różnych n-gramów (każdy był kiedyś rozpoznany po raz
pierwszy), T
Tak więc prawdopodobieństwo napotkania nowego typu (ngramu) (czyli suma prawdopodobieństw wszystkich n-gramów, które
jeszcze nie wystapiły):
pi* = T /( N + T)
T- liczba typów, które wystąpiły w korpusie
i:ci=0
N-liczba wszystkich wystąpień wszystkich typów
Witten-Bell Discounting
Ustaliliśmy prawdopodobieństwo wystąpienia wszystkich nie
napotkanych jeszcze n-gramów, ale jak je rozdzielić ...
Najprostsza propozycja - po równo
Z = 1 czyli Z - liczba typów o licz. 0
pi* = T / Z ( N + T)
i:ci=0
inaczej : pi* = T / Z ( N + T) if ci =0
Nie możemy jednak tylko dodać przewidywanych
prawdopodobieństw - musimy unormować sumę do 1. Tym samym
pomniejszamy prawdopodobieństwa tych n-gramów, które się
pojawiły w korpusie:
pi* = ci / (N + T) if (ci > 0)
Witten-Bell dla bigramów
W przypadku unigramów metoda ta przypomina metodę Add One
Dla bigramów jednak metoda ta uwzględnia w pewnien sposób
„historię”:
rozdzielanie prawdopodobieństwa równo pomiędzy wszystkie ngramy nie jest najlepszą strategią -- niektóre słowa częściej niż inne
wprowadzają nowe konteksty,
możemy oszacować prawdopodobieństwo wprowadzenia nowego
bigramu na podstawie dotychczas zgromadzonych danych:
– Dla danego słowa liczymy ile różnych bigramów zaczyna i
dzielimy przez liczbę wystąpień wszystkich bigramów
zaczynających się od niego
metoda często używana w systemach rozpoznawania mowy
Final Witten-Bell Bigram Equations
Całkowite prawdopodobieństwo bigramów, które się jeszcze
nie pojawiły:
i:c(wx
wi )=0
pi* (wi|wx) = T (wx) /( N(wx) + T(wx))
T- liczba typów bigramów, N- liczba wystąpień
Dla poszczególnych bigramów (tak jak poprzednio):
Z(wx)=
1
(ile bigramów ma 0 wystąpień)
i:c(wx wi )=0
pi* (wi|wi-1) = T(wi-1) / Z(w i-1) (N + T(wi-1))
if c(wi-1 wi )= 0
BERP
Liczba różnych bigramów dla słów z przykładu:
I
- 95
Chinese - 20
want
food
- 76
- 82
to
-130
lunch - 45
eat
- 124
liczba słów 1616, więc dla każdego słowa możliwych bigramów - 1616
liczba „niewidzianych” bigramów:
I
- 1521 want - 1540 to
- 1486 eat - 1492
Chinese - 1596 food
- 1534 lunch - 1571
BERP, bigramy, model Witten-Bell
Counts
I
want
to
eat
Chinese
food
lunch
CountsWB
I
want
to
eat
Chinese
food
lunch
I
8
3
3
0
2
19
4
I
8
3
3
0.75
2
18
4
want
1087
0
0
0
0
0
0
to
0
786
10
2
0
17
0
eat
13
0
860
0
0
0
0
want to
eat
1060
0.62
13
0.46 740
0.46
0.85 10
827
0.75
2
0.075
0.12 0.01
0.12
0.59 16
0.59
0.26
0.2
0.26
Chinese food lunch
0
0
0
6
8
6
3
0
12
19
2
52
0
120
1
0
0
0
0
1
0
Chinese
0.62
6
3
17
0.12
0.59
0.26
food lunch
0.62
0.62
8
6
0.085 12
2
20
109
1
0.59
0.59
1
0.26
bigramy, porównanie Add One i W-B
CountsWB I
I
8
want
3
to
3
eat
0.75
Chinese
2
food
18
lunch
4
want to
eat
Chinese food lunch
1060
0.62
13
0.62 0.62
0.62
0.46 740
0.46
6
8
6
0.85 10
827
3
0.085 12
0.75
2
0.075 17
2
20
0.12 0.01
0.12
0.12 109
1
0.59 16
0.59
0.59
0.59
0.59
0.26 0.2
0.26
0.26
1
0.26
Counts +1
I
I
6
want
2
to
3
eat
0.37
Chinese
0.36
food
10
lunch
1.1
want to
eat
Chinese food lunch
740
0.68
10
0.68 0.68
0.68
0.42 331
0.42
3
4
3
0.69 8
594
3
0.69
9
0.37 1
0.37 7.4
1
20
0.12
0.12
0.12 0.12 15
0.24
0.48
9
0.48 0.48
0.48
0.48
0.22
0.22
0.22 0.22
0.44
0.22
Good-Turing Discouting
Idea ogólna: (metoda dobra dla estymacji z dużych danych)
– wyznaczenie częstości występowania N-gramów,
N(c) określa ile słów występowało c - razy (count-of-counts)
– estymator prawdopodobieństwa względnego wyznaczony na
podstawie częstości występowania:
pr(w) = (c(w) + 1) N(c(w) + 1) / (|T| N(c(w)))
– w szczególności oszacowanie częstości grupy na podstawie
oszacowanego stosunku grupy 1 do 0 (dla słów jeszcze
niespotykanych: c(w) = 0)
pr(w) = N(1) / (|T| N(0))
– mała liczba grup (< 5-10, N(c) wysokie)
– oczywiście konieczna normalizacja (aby w p’(w) = 1)
Metody Backoff (cofania,
korzystania z wiedzy częściowej)
Celem jest znalezienie przybliżeń dla n-gramów, które nie pojawiły
się w zbiorze treningowym, a dokładniej prawdopodobieństwa
pojawienia się formy x w konkretnym kontekście
O ile forma ta już wcześniej występowała (ale w innym kontekście)
możemy oprzeć nasze przypuszczenia na danych jej dotyczących.
Na przykład: jeżeli nie mamy danych dla P(proces|poszlakowy)
możemy skorzystać jakoś z P(proces), które zapewne nie jest zerowe.
Ale trzeba wziąć pod uwagę dwa fakty:
– normowanie całkowitego prawdopodobieństwa do 1,
zachowanie proporcji, tak by nie przypisać zerowym
wystąpieniom prawd. wyższego niż dla wystąpień nie zerowych
– prawdopodobieństwa te ustalane są w różnych przestrzeniach
Katz Backoff
Jeżeli N-gram ma liczność zero, „cofamy się” do N-1 gramu, jeśli ten też ma liczność zero, to do n-2 - gramu ...
w przypadku trigramów...
pi (wi| wi-2 wi-1)
p`(wi| wi-2 wi-1) = 1 pi (wi| wi-1)
2 pi (wi)
if c(wi-2 wi-1 wi )> 0
if c(wi-2 wi-1 wi )= 0
and c( wi-1 wi )> 0
wpp.
Podsumowanie
Każda z zaprezentowanych metod oparta jest na jakieś obserwacji
dotyczącej częstości występowania słów w języku.
Żadna z tych obserwacji nie jest nieprawdziwa, ale uwzględnienie ich
prowadzi do modeli dających różne rezultaty.
Tak naprawdę wiele zależy od wielkości i rodzaju korpusu i potrzeb
konkretnej aplikacji. Nie ma metody najlepszej.
Model języka
najprostszy model języka składa się z:
– zestawu N-gramów opracowanego na podstawie korpusu
– z częstościami „wygładzonymi” przy pomocy metody Witten-
Bell lub Good-Turing w połączeniu z jakąś formą backoff.
Mimo swej prostoty taki model jest użyteczny dla wielu zastosowań
Testowanie i uczenie
Próbujemy odgadnąć prawdopodobieństwa zdarzeń, które
się nigdy nie wydarzyły
! Jak możemy ocenić prawidłowość naszych przypuszczeń?
Podział zbioru danych na dwa rozłączne podzbiory:
– zbiór treningowy wykorzystywany do wyliczenia danych
modelu (uczenie się w tym kontekście oznacza wyliczanie
częstości występowania w korpusie poszczególnych n-gramów)
– zbiór testowy wykorzystywany do sprawdzania modelu
Testowanie i uczenie
Lepszy sposób:
Podział danych na trzy rozłączne zbiory:
– zbiór treningowy (Training Set)
– zbiór (Dev Test Set) służący do sprawdzenia modelu,
poprawienia go bądź wyboru pomiędzy alternatywnymi
modelami
– zbiór testowy (Test Set) wykorzystywany do końcowej oceny
modelu.
Dlaczego podział na więcej niż dwa zbiory?
– Trudno uniknąć wielokrotnego sprawdzania modelu, a jeżeli tylko
sprawdzimy go na danych testowych i wprowadzimy poprawki, to
wprowadzamy zakłócenia i nasz zbiór testowy traci niezależność staje się zbiorem treningowym
Testowanie i uczenie
Held Out Data (cross-validation)
podział danych na N zbiorów
trenowanie modelu na N-1 zbiorach
testowanie na N-tym zbiorze
powtarzanie tego procesu dla n różnych wyborów zbioru
testowego
uśrednienie rezultatów
Rozpoznawanie mowy
Zadanie: przekształcenie sygnału mowy na tekst czyli:
jakie zdanie języka L jest najbardziej prawdopodobnym źródłem
sygnału akustycznego o.
Obecne systemy komercyjne dotyczą różnych zastosowań:
– teksty o szerokiej tematyce (słownik rzędu 5000-60000 słów)
– teksty z wąskiej dziedziny, polecenia
– pojedyncze słowa
Problemy:
– wielu mówców mówiących jednocześnie
– hałaśliwe otoczenie
– szumy kanałów przesyłu (telefon, TV, ...)
Zadanie rozpoznawania mowy podejście statystyczne
Przypomnienie:
Wbest = argmaxw p(W|O)
Wbest = argmaxw p(O|W) p(W) („złota zasada”)
p(O|W): model akustyczny
p(W): n-gramowy model języka
HMM to metoda wyznaczenia p( O | W)
Rozpoznawanie mowy, zadanie
łatwe czy trudne?
ciąg fonemów (dane z korpusu):
ay d ih s hh er d s ah m th ih ng ax b aw m uh v ih ng r ih s en l ih
to
I just heard something about moving recently
„łatwiejszy” przykład
[aa n iy dh ax ]
I need the
Model słowa
automat z wagami (łańcuch Markova)
‘need’
a14=.11
a01
start
...
a12
n1
n
o1
iy2
a23= .89
ly
d3 end
a34
d
...
o2
o3
observation sequence (phone symbols)
zakładaliśmy tu, że znamy fonemy wejściowe, ale tak naprawdę
nie mamy symboli fonemów tylko sygnał, który musimy
podzielić na fonemy i słowa ...
Model słowa, HMM
‘need’
a14=.11
start
prawdop.
n1
b1(o1) b1(o2)
iy2
d3
b2(o3) b2(o4) b2(o5)
end
b3(o6)
wyjściowe
......
o1
o2
o3
o4
o5
o6
observation sequence
(spectral feature vectors)
(trzeba jeszcze dodać pętle w stanach n1, iy2 i d3 dla różnej
długości fonemów)
Ukryte modele Markova,
Hiden Markov Models, HMM
„Ukrycie
alfabetu”
Najprostszy HMM: stany generują symbole wyjściowe
wykorzystując odpowiedni alfabet, ale nie ma to związku z
nazwą stanów, jest „niewidzialne” (poniżej jeszcze każdy stan
generuje inny symbol):
a
e
1
3
0.2
2
1
0.6
0.3
0.4
t
0.12
0.4
0.88
p(4|3) = 0.1 4
o
1
p(toe) = .6 .88 1 = .528
Zwiększona „elastyczność”
...
ale różne stany mogą powodować wypisanie takich
samych symboli (bo dlaczego nie?):
sumowanie prawdopodobieństw dla wszystkich ścieżek
t
e
1
0.6
0.3
0.4
t
3
0.2
2
1
0.12
0.4
0.88
p(4|3) = 0.1 4
o
1
p(toe) = .6 .88 1 +
.4 .1 1 = .568
Wyjście związane z przejściami
• Jeszcze większa elastyczność: generowanie wyjścia na
przejściach, nie w stanach
t
t
e
t
0.4
o
0.88
0.1
1
4
0.2
e
o
2
0.12
0.4
3
1
1
0.6
0.3
e
o
p(toe) = .6 .88 1 +
e
.4 .1 1 +
.4 .2 .3 +
.4 .2 .4 = .624
... i w końcu prawdopodobieństwa wyjścia
• Maksymalna elestyczność: [Unigramowy] rozkład (przestrzeń alfabet wyjściowy) na każdym wyjściu:
p(t)=0
p(o)=0
p(e)=1
p(t)=.8
p(o)=.1
p(e)=.1
!simplified!
0.6
3
p(t)=.5
p(o)=.2
p(e)=.3
0.12
1
0.4
2
1
0.88
0.88
p(t)=0
p(o)=1
p(e)=0
1
4
p(t)=.1
p(o)=.7
p(e)=.2
p(toe) = .6.8.88.71.6 +
.4.5 11 .88.2 +
p(t)=0
.4.5 11 .121
p(o)=.4
@ .237
p(e)=.6
Inne ujęcie
• Zamiast przypisywać rozkład prawdopodobieństwa do jednego
przejścia, można zapisać odpowiednio wiele przejść i każdemu
przypisać odpowiedni symbol wyjściowy i prawdopodobieństwo:
t,.2
o,.06
e,.06
1
t,.48
o,.08
e,.12
o,1
3
e,.12
2
e,.176
t,.088
o,.616
4
o,.4
e,.6
p(toe) = .48.616.6+
.21.176 +
.21.12 @ .237
W praktyce wykorzystuje się ten sposób, który w danej sytuacji jest wygodniejszy.
Formalizacja
HMM (najogólniejszy przypadek) to (S, s0, Y, PS, PY) , gdzie:
– S = {s0,s1,s2,...,sT} to zbiór stanów, s0 jest stanem początkowym,
– Y = {y1,y2,...,yV} to alfabet wyjściowy,
– PS(sj|si) zbiór prawdopodobieństw przejść
wielkość PS: |S|2.
– PY(yk|si,sj) zbiór prawdopodobieństw wyjściowych
(wygenerowania symboli)
Przykład:
– S = {x, 1, 2, 3, 4}, s0 = x
– Y = { t, o, e }
wielkość PY: |S|2 x |Y|
HMM, przykład
0.6
0.12
1
0.4
Dla omawianego grafu:
0.88
0.88
3
– S = {x, 1, 2, 3, 4}, s0 = x
2
1
1
4
– Y = { e, o, t }
PYo:
x – 1PS:2 3 4
x 0 .6 0 .4 0
1
2
3
4
0
0
0
0
0
0
1
0
.12
0
0
1
0 .88
0 1
0 0
0 0
=1
t x
x 1
1 2
2 3
3 4
4
e
x
1
1
.8
2
3
4
0
x 1 2 3 4
1 2 3 4
2 3 4
.2
.5
.7
.1
0
0
0
=1
Wykorzystanie HMM
Generowanie (o niewielkim praktycznym znaczeniu
:-)):
1. początek w s = s0.
2. przejście z s do s’ z prawdopodobieństwem PS(s’|s).
3. Wypisanie symbolu yk z prawdopodobieństwem PS(yk|s,s’).
4. powtarzanie od kroku 2 (aż ktoś powie dość )
analiza:
rozpoznawanie mowy, przypisywanie tagów
morfologicznych ...
Wykorzystanie HMM
HMM: model probabilistyczny i niedeterministyczny
– sekwencja stanów nie pozwala na jednoznaczne odtworzenie danych
– dane nie wyznaczają jednoznacznie ciągu stanów
– „najlepsze co można zrobić” to dla danego ciągu wejściowego odnaleźć
najbardziej prawdopodobny ciąg stanów (lub odwrotnie, dla danego
ciągu stanów wskazać najbardziej prawdopodobny ciąg wejściowy):
Dla danego HMM & sekwencji wyjściowej Y = {y1,y2,...,yk}:
(Zadanie 1) oblicz prawdopodobieństwo Y;
(Zadanie 2) oblicz najbardziej prawdopodobny ciąg stanów, który
doprowadził do wygenerowania Y
Zad. 1: obliczenie prawdopodob.
(zakładamy dla ułatwienia wyjście deterministyczne)
time/position t
Trellis(siatka)
HMM:
0
1
2
3
,0
t
A
B
0.12
.6
0.3 0.4
C
,1
,2
,3
A,1
A,2
A,3
B,2
B,3
C,2
C,3
e
1
.6
0.88
D
0.1
A,0
“rollout”
B,0
1
C,0
.4
B,1
C,1
0.2
t
o
p(toe) = .6 .88 1 +
.4 .1 1 = .568
.88
.1
D,0
- trellis state: (HMM state, position)
- each state: holds one number (prob):
- probability of Y: in the last state
- za Jan Hajic, 1999
Y:
D,1
t
+
1
D,2
D,3
o
e
(,0) = 1 (A,1) = .6 (D,2) = .568 (B,3) = .568
(C,1) = .4
4...
Obliczanie wartości - start
rozpoczynamy
w stanie początkowym
(),
position/stage
– set its (,0) to 1.
tworzymy
0
pierwszą kolumnę siatki:,0
– dla pierwszego symbolu
=1
“wyjściowego” y1 kolumnę
siatki, uwzględniając tylko
te stany, w których można
wygenerować y1
– (state,1) = PS(state|) * (,0)
...i
zapominamy o kolumie 0
1
.6
A,1 = .6
.4
C,1
e
t
Następny krok
1
A
0.3
0.4
0.88
D
0.1
C
Załóżmy,
że jesteśmy w kroku i
Tworzenie następnego kroku:
– utworzenie „komórek” siatki dla tych
stanów, które generują yi+1, ale tylko
dla tych, które są osiągalne, z któregoś
ze stanów kroku i
– ustalenie (state,i+1) na:
0.12 B
1
0.2
t
o
p(to) = .6 .88 1 +
.4 .1 1 = .568
position/stage
i=1
2
A,1
= .6
.88
C,1
= .4 .1
PS(state|prev.state) (prev.state, i)
(dodanie wszystkich tych wartości dla łuków
+
dochodzących do jednej komórki/stanu yi+1 = y2:
siatki )
– ... i zapominamy o stanie i
D,2
o
= .568
Ostatni krok
Kontunujemy,
aż do wyczerpania “wyjścia”
– dla przykładu z ‘toe’ |Y| = 3 czyli do kroku 3
wszystkie (state,|Y|)
to jest szukane P(Y).
dodajemy
Uwagi
last position/stage
B,
3 = .568
o algorytmie (miłe):
– zużycie pamięci: 2|S|
– max mnożeń: |S|2|Y|
1
D,2
= .568
P(Y) = .568
(S -zbiór stanów)
Pełny przykład (wyjście nieterministyczne)
Stage:
,0
0 .48
1
=1
1
A,1 = .48 A,1
.2
2
A,2 = .2
2
A,2
3
.12
B,3 = .024 + .177408 = .201408
1
.176
C,1
= .2
C,1
.616
+
.6
y1: t
y2: o
e,.12
o,.06
e,.06
A
t,.48
e,.176
o,.08
t,.088
e,.12
o,1
t,.2
o,.616 D
C
B
o,.4
e,.6
D,2
@ .29568
D,2
D,3
= .035200
y3: e
P(Y) = P(toe) = .236608
Zadanie 2: Algorytm Viterbi
Algorytm
znajdowania najbardziej prawdopodobnej
ścieżki stanów, której przejście mogło doprowadzić do
wygenerowania zaobserwowanego sygnału (Y)
znajdujemy
Sbest = argmaxS P(S|Y)
(Y jest stałe, więc i P(Y)):
Sbest = argmaxSP(S,Y) =
= argmaxSP(s0,s1,s2,...,sk,y1,y2,...,yk) =
= argmaxSi=1..k p(yi|si,si-1)p(si|si-1)
(prawdopodobieństwo wygenerowania yi przy przejściu ze stanu
si-1 do si razy prawdopodobieństwo przejścia z si-1 do si )
Jednocześnie rozwiązujemy inny problem - segmentację wejścia na
słowa
Algorytm Viterbi ogólnie
w tablicy viterbi[ stan, pozycja_wejścia_t] przechowujemy
max. prawdop., z jakim mogliśmy dojść do tego miejsca
w dodatkowej tablicy back_pointers przechowujemy dla
każdego stanu numer stanu poprzedniego, który leżał na
‘najlepszej’ ścieżce
do „przedłużenia” ścieżki z s wybieramy s’ takie, że iloczyn
prawdopod. ścieżki do s razy prawd. przejścia z s do s’
razy prawd. wygenerowania w s’ t
jest max (dla wszystkich stanów)
Viterbi
function Viterbi(observations of len T,state-graph) returns best-path
num-states num-of-states(state-graph)
Create a path probability matrix viterbi[num-states+2,T+2]
viterbi[0,0] 1.0
for each time step t from 0 to T do
prawdop. przejścia z s do s’
for each state s from 0 to num-states do
for each transition s’ from s specified by state-graph
new-score viterbi[s, t] * a[s, s’] * b s’ (o t )
prawdop. s’|ot
if ((viterbi[s’, t+1] = 0) or (new-score > viterbi[s’ , t+1]))
then viterbi[s’ , t+1] new-score
back-pointer[s’, t+1] s
Backtrace from highest probability state in the final column of viterbi[]
and return path
Viterbi Example
‘r’ classification (C
t,r
t,r
,
0.6
,C
or V?, sequence?):
C,C
.2
0.12
1
V,V
1
0.88
0.4
,V
1
o,e,y,r
0.07
C,V
0.93
V,C
.8
o,e,y,r
o,e,y,r
t,r
p(t|C) = .3
p(r|C) = .7
p(o|V) = .1
p(e|V) = .3
p(y|V) = .4
p(r|V) = .2
argmaxXYZ p(rry|XYZ) = ?
Possible state seq.: (,V)(V,C)(C,V)[VCV], (,C)(C,C)(C,V)[CCV], (,C)(C,V)(V,V) [CVV]
Viterbi Computation
Y:
p(t|C) = .3
p(r|C) = .7
p(o|V) = .1
p(e|V) = .3
p(y|V) = .4
p(r|V) = .2
,
0.6
t,r
t,r
,C
1
V,V
= .07392 x .07 x .4
.002070
.2
V,V
0.93
o,e,y,r
C,V
C,V
C,C = .03528 x 1 x .4
= .42 x .88 x .2
.01411
= .07392
V,C = .056 x .8 x .4
V,C
.01792 = max
,V = .08 x 1 x .7
= .056
= .4 x .2
= .08
{
0.07
V,C
.8
o,e,y,r
y
C,C
= .42 x .12 x .7
= .03528
= .6 x .7
= .42
o,e,y,r
1
C,V
r
,C
0.12
0.88
,V
=1
C,C
1
0.4
,
in trellis
state:
best prob
from start
to here
r
t,r
n-best State Sequences
Y:
Keep
,
track
=1
of n best
“back pointers”:
Ex.: n= 2:
Two “winners”:
VCV (best)
CCV (2nd best)
r
r
y
C,C
= .42 x .12 x .7
= .03528
,C
= .6 x .7
= .42
V,V
= .07392 x .07 x .4
.002070
C,V
C,V
C,C = .03528 x 1 x .4
= .42 x .88 x .2
= .07392
? .01411
V,C = .056 x .8 x .4
V,C
.01792 = max
,V = .08 x 1 x .7
= .056
= .4 x .2
= .08
{
Potrzebne zasoby
Korpus, aby wytrenować model języka. Powinien być duży i
reprezentatywny dla konkretnej dziedziny zastosowań
Słownik wymowy, który posłuży do zbudowania biblioteki
modeli wymowy słów.
korpus nagrań (wave files) z transkrypcją słowo po słowie
korpus nagrań (spectral feature frames) z transkrypcją
zawierającą fonemy
Uwagi o zasobach:
Model języka powinien możliwie dobrze oddawać dziedzinę,
której dotyczy dyktowany tekst,
słownik wymowy prawdopodobnie nie będzie kompletny,
duże ręcznie anotowane dane zawierające mowę są
kosztowne,
ręcznie anotowane dane na poziomie fonemów są jeszcze
kosztowniejsze
! W rzeczywistości nie da się uzyskać wszystkich potrzebnych
liczb z danych treningowych (konieczne estymacje)
Uwagi o algorytmie Viterbi
Najbardziej prawdopodobny ciąg stanów (odpowiadający najbardziej
prawdopodobnemu ciągowi fonemów) może nie odpowiadać
najbardziej prawdopodobnemu ciągowi słów (np. jeśli w słowniku jest
wiele sposobów wymowy niektórych słów, słowa o jednoznacznej
wymowie mogą być preferowane)
! Przy podanym sposobie analizy problemu nie przeszukujemy wcale
przestrzeni ciągów słów.
Możliwe bezpośrednie wykorzystanie tylko modelu bigramowego (dla
modelu trigramowego, ścieżka max. prawdop. nie musi być
przedłużeniem najlepszej śiceżki z poprzedniego stanu) - to można
ominąć podając więcej rozwiązań
Best First Search
Alternatywa - przeszukiwanie przestrzeni możliwych ciągów
słów przy wykorzystaniu
– modelu języka do ewaluacji ścieżki
– modelu akustycznego do sugerowania najbardziej
prawdopodobnych słów
– prawdopodobieństw stanowiących kombinację pr.
akustycznych i tych z modelu języka
Algorytm: przedłużanie najlepszej ścieżki,
wyznaczanie najlepszej , przedłużanie ..
A*
Problem:
Co się stanie, jeśli porównamy prawdopodobieństwo
rozszerzonej ścieżki do pr. innych, krótszych ścieżek?
Rozwiązanie:
Zmodyfikowanie prawdopodobieństwa tak, by zawierało
heurystykę dotyczącą prawdopodobieństwa dalszego ciągu
f *(p)= g(p) + h*(p)
f*(p) - pr. całej ściezki
g(p) - pr. kawałka p
h*(p) - estymacja ‘najlepszego dalszego ciągu’ (trudne do oszacowania,
zależne np. od liczby słów, które zostały)
Statystyczne tagowanie
morfologiczne (POS).
Estymacja parametrów HMM.
Tagset (przypomnienie)
Najczęstszy zbiór etykiet to spis wszystkich możliwych
kombinacji cech gramatycznych dla danego języka
T C1C2... Cn
– zwykle ciąg liter i cyfr:
system skrótów: NNS (gen. noun, plural)
system pozycyjny: pozycja i odpowiada Ci:
– AAMP3----2A---- (gen. Adj., Masc., Pl., 3rd case (dative),
comparative (2nd degree of comparison), Affirmative )
– tense, person, variant, etc.: N/A (oznaczone ‘-’)
Zadanie tagowania morfologicznego
Formalnie: A+ T
A to alfabet fonemów (A+ niepusty ciąg fonemów)
– bardzo często zamiast fonemów - litery
T jest zbiorem tagów (etykiet) (“tagsetem”)
Przypomnieć należy wielość poziomów analizy języka:
fonetyka... fonologia ... morfologia ... syntaktyka ... semantyka ...
”krok w bok”
–
A+ 2(L,C1,C2,...,Cn) T
morphology
tagging: disambiguation ( ~ “select”)
Przykłady
Forma słowa: A+ 2(L,C1,C2,...,Cn) T
– He always books the violin concert tickets early.
MA: books {(book-1,Noun,Pl,-,-),(book-2,Verb,Sg,Pres,3)}
tagging (ujednoznacznienie): ... (Verb,Sg,Pres,3)
– ...was pretty good. However, she did not realize...
MA: However {(however-1,Conj/coord,-,-,-),(however-2,Adv,,-,-)}
tagging: ... (Conj/coord,-,-,-)
– [a n d] [g i v] [i t] [t u:] [j u:] (“and give it to you”)
MA: [t u:] {(to-1,Prep),(two,Num),(to-2,Part/inf),(too,Adv)}
tagging: ... (Prep)
Metody statystyczne (przegląd)
“Probabilistyczne”:
oparte na regułach:
HMM
– Merialdo i wiele innych (XLT)
Maximum Entropy
– DellaPietra et al., Ratnaparkhi, i inni
TBEDL (Transformation Based, Error Driven Learning)
– Brill’s tagger
oparte na przykładach
– Daelemans, Zavrel, inne
oparte na opisie cech (języki fleksyjne)
Classifier Combination (Brill’s ideas)
Tagowanie statystyczne
Noisy Channel:
Input (tags)
Output
(words)
NNP VBZ DT...
The channel
(adds “noise”)
John drinks the ...
Ponownie ta sama historia:
Argmax P (Tag Sequence|Word Sequence)
po przekształceniu:
Argmax P(Word Sequence|Tag Sequence)P (Tag Sequence)
P (Word Sequence)
Elementy modelu - P(Tag Sequence)
Jeżeli założymy, że dysponujemy otagowanym korpusem do
trenowania naszego tagera i trigramowym modelem języka
to P (Tag Sequence) może być przybliżone jako:
P(t1) P(t2 | t1)
n i=3
P(t i | t i-2 t i-1)
co można wyliczyć z danych i wygładzić
Model word | tag
P (Word Sequence|Tag Sequence)
Czynimy w tym miejscu upraszczające założenie, że słowo
zależy tylko od tagu.
n i=1
P(wi |ti )
Łącząc to z modelem języka, poszukujemy sekwencji tagów,
które maksymalizują następującą wielkość:
P (t1 )P (t2 | t1)n i=3 P(t i | t i-2 t i-1) (n i=1 P(wi |ti ) )
Tagowanie statystyczne jako HMM
Przejścia pomiędzy stanami i ich prawdopodobieństwa
pochodzą z modelu języka
prawdopodobieństwa wygenerowania symboli wyjściowych
pochodzą z rozkładu P(word|tag)
jak w przypadku innych podobnych zastosowań znajdujemy
najbardziej prawdopodobną sekwencję tagów wykorzystując
algorytm Viterbiego
Prosty przykład HMM
a:P(a|n)P(n|n)
a:P(a|n)P(v|n)
n
a:P(a|v)P(v|v)
v
b:P(b|n)P(v|n)
b:P(b|n)P(n|n)
b:P(b|v)P(v|v)
tagi: n v
słowa: a b i obu słowom mogą być przyporządkowane oba tagi
Znajdowanie najbardziej
prawdopodob. ścieżki (Viterbi, powt.)
Znamy ciąg wyjściowy, szukamy ciągu stanów
(t) = arg max P(Word Sequence|Tag Sequence)
dla każdego stanu liczymy, jakie jest największe
prawdopodobieństwo znalezienia się w nim po t-krokach
korzystamy z wyników dla ścieżki o 1 krótszej
musimy zapamiętać wynik dla każdego stanu (przy danym
wejściu)
poprzednie wyniki możemy zapomnieć
Najbardziej prawdopodobna ścieżka
bbba
a:.3
b:.2
b:.1
a:.2
n
v
a:.4
a:.2
b:.5
b:.1
n
V
stany
ciąg stanów
prawdopod.
ciąg stanów
prawdopod.
n
1.0
v
0
b
nn
.2
nv
.1
bb
nnn
.04
nvv
.05
bbb
nnnn
.008
nvvv
.025
bbba
nvvvn
.005
nvvvv
.005
Obliczanie prawdopodobieństw
dla HMM
Dla każdego stanu s i liczymy po każdym słowie prawdopodobieństwo
z jakim dany ciąg słów (długości t) doprowadziłby nas nas tego stanu
(warunki początkowe - dla ciągu pustego, pr. dla stanu początkowego
=1, dla innych 0)
i(t) =(def) P(w 1,t-1 , St=s i ) t>1 (forward probalility)
1. P(w 1,n ) = i=1.. P(w 1,n, Sn+1=s i ) = i=1.. i(n+1)
prawd. uzyskania ciągu w 1,n jest sumą prawdopodobieństw uzyskania
go poprzez „dokończenie” ciągu o 1 krótszego poprzez przejście ze
wszystkich stanów HMM
Obliczanie prawdopodobieństw
dla HMM
j(t+1) = P(w 1,t , St+1=s j ) =
i=1..
P(w 1,t, St=s i, St+1=sj ) =
i=1..
P(w 1,t-1, St=s i)P(wt, St+1=sj | w1,t-1, St = sj ) = (Markov as.)
i=1..
P(w 1,t-1, St=s i)P(wt, St+1=sj | St = sj )=
i
j
i=1.. i (t) P(s ->(wt) s )
prawd. znalezienia się w momencie t
w stanie i razy prawdopodobieństwo
przejścia z i do j przy wt
Obliczanie prawdopodobieństw
dla HMM
bbba
b:.2
a:.3
n
b:.1
v
a:.4
a:.2
b:.5
b:.1
Time ticks
Input
n(t)
V(t)
P(w1,t)
a:.2
1
2
b
3
bb
4
bbb
5
bbba
1.0
.2
.05
.017
.0148
0.0
.1
.07
.04
.0131
1.0
.3
.12
.057
.0279
Prawdopodobieństwo liczone „wstecz”
i(t) =(def) P(w 1,t-1 , St=s i ) t>1 (forward probalility)
i(t) =(def) P(w t,n | St=s i )
(backward probalility)
prawdopod. zobaczenia ciągu w t,n o ile w kroku t znajdujemy się w s i
i(t-1) = j=1.. j (t) P(si ->(wt-1) sj )
prawd. zobaczenia ciągu
wt w momencie t razy
prawdopodobieństwo
przejścia z i do j przy wt-1
Obliczanie prawdopodobieństw
wstecz dla HMM
bbba
a:.3
b:.2
b:.1
a:.2
n
v
a:.4
a:.2
b:.5
b:.1
Input
n(i)
V(i)
1
bbba
2
bba
3
ba
4
a
5
.0279
.063
.18
.7
1
.153
.27
.4
1
Ze stanu n będziemy mogli przejść z a
albo do n z pr=.4, albo do v z pr .3
Uczenie
Aby zdefiniować HMM musimy mieć prawdopodobieństwa
(przejść i generowania słów)
jeżeli dysponujemy danymi, to możemy tak dopasowywać nasz
model, by większe prawdopodobieństwa nadawał sekwencjom,
które pojawiły się w danych treningowych
w skrajnym przypadku, możemy zapamiętać dane, ale na to
potrzeba bardzo wielu stanów (zupełnie niepraktyczne podejście)
jak inaczej: na przykład dla zwykłego łańcucha Markova - liczymy dla
danych testowych, ile razy które z przejść zostało wybrane na
wszystkie przejścia z danego stanu
a
n
b
a
v
b
Uczenie
Ciąg treningowy: abbaababbaa
Liczności:
z
n
n
v
v
wyjście liczność
a
5
b
3
a
2
b
2
do
v
n
n
n
n
b
a
a
v
b
Uczenie HMM
Nie zawsze wiemy, które z przejść zostało wybrane (zakładamy, że
wszystkie i rozdzielamy prawdopodobieństwo zgodnie z
prawdopodobieństwem danej ścieżki)
trzeba od czegoś zacząć
Problemy z ew. punktami krytycznymi, maximami lokalnymi
– C(s i -> (wk) s j) =
P(s1,n+1 |w1,n ) *licz(s i -> (wk) s j, s1,n w1,n)
ile razy (s i -> (wk) s j )pojawia się w ciągu
stanów jeśli generowane jest w1,n
Przykład
1:.17
0:.67
a
0:0.16
1:.48
b
1:1.01
Przybliżenie
0:0.04
a
0:.48
b
1:1.0
Właściwy model
ciąg treningowy: 01011
możliwe ścieżki: ababaa abaaa aaabaa aaaaaa
Definicja modelu HMM dla tagowania
(prawie) ogólny model HMM:
– output (słowa) emitowany przez stany (nie łuki)
– stany: (n-1)-tka tagów (jeżeli wykorzystujemy model n-gramowy)
– piątka (S, s0, Y, PS, PY), gdzie:
S = {s0,s1,s2,...,sT} zbiór stanów, s0 stan początkowy,
Y = {y1,y2,...,yV} alfabet wyjściowy (słowa),
PS(sj|si) zbiór prawdopodobieństw przejść między stanami
PS(sj|si) = p(ti|ti-n+1,...,ti-1); sj = (ti-n+2,...,ti), si = (ti-n+1,...,ti-1)
PY(yk|si) zbiór prawdopodobieństw emisji słów
– uproszczenie: PY(yk|si) = PY(yk|sj)
jeśli si i sj zawierają najbardziej na prawo ten sam tag:
PY(yk|si) = p(wi|ti)
Generowanie tekstów w
języku naturalnym
Jurafsky Daniel, Martin James H. (2000) Speech and Language Processing.
Upper Saddle River, Prentice Hall
Mykowiecka, A. (1992) Podstawy przetwarzania języka naturalnego.
Metody generowania tekstów, Akademicka Oficyna Wydawnicza,
RM, Warszawa
Charakterystyka problemu
Generowanie tekstów:
– teksty stałe
– wzorce z miejscami do wypełniania
– tekst budowany ze słów (niewielkich fraz)
Najogólniejszy podział zadania generacji wypowiedzi
wyróżnia trzy fazy tworzenia tekstu:
– planowanie treści wypowiedzi,
wybór adekwatnych informacji
– planowanie postaci wypowiedzi,
wybór konstrukcji językowych,
– ostateczne sformułowanie
wybór słów, powiązań, uzgodnienia
Planowanie postaci tekstów
W pracach nad komputerowym generowaniem tekstu wyróżnić można
następujące podejścia:
ustalenie schematów typowych wypowiedzi w terminach wybranego
zestawu predykatów retorycznych (McKeown, 1985),
opis znaczenia tworzonej wypowiedzi za pomocą formuł specjalnie
zdefiniowanej logiki (Appelt, 1985),
traktowanie tekstu jako drzewa opisującego relacje zachodzące
pomiędzy sąsiednimi fragmentami tekstu (Mann & Thompson, 1988),
Schematy, McKeown (1982),
Paris (1987)
Schematy opisują stereotypowe układy zdań w typowych tekstach np.
definicjach obiektów.
Zaletą schematów jest łatwość ich definiowania i wykorzystywania.
Dla wybranego zastosowania określane są schematy odpowiadające
wszystkim typom paragrafów, które pojawić się mogą w
generowanych tekstach. Dla każdego wykorzystywanego w
schematach typu zdania definiowany jest predykat precyzujący
rodzaj informacji, jaką można za pomocą takiego zdania przekazać
oraz pewne dodatkowe dane, np. ile razy ten typ zdania może pojawić
się w ramach jednego paragrafu.
Schematy są więc do pewnego stopnia niezależne od konkretnego
zastosowania, a wiedza związana z daną dziedziną wykorzystywana
jest do powiązania poszczególnych elementów schematu z
konkretnymi danymi.
Schematy
Generowanie tekstu w oparciu o schemat polega na sekwencyjnym
analizowaniu wszystkich jego elementów. W każdym kroku dokonywana
jest ewaluacja warunków stosowalności predykatów powiązanych z
kolejnym elementem schematu, wybór wariantu, dla którego warunki te
są spełnione oraz selekcja z odpowiedniej bazy danych informacji
potrzebnych do sformułowania wybranego rodzaju zdania.
Jednym z ograniczeń w stosowaniu schematów jest brak określenia
funkcji retorycznej pełnionej przez poszczególne jego elementy. Z tego
względu schematy nie są odpowiednie w przypadku systemów
wymagających dynamicznego dostosowywania się do zmiennego
kontekstu. Inną wadą jest brak elastyczności -- niezależnie od możliwości
zapisu wielu wariantów wypowiedzi schematy zawsze precyzyjnie
określają strukturę tworzonego tekstu i nie pozwalają na wprowadzanie
zmian (z góry wiadomo dokładnie jakie układy tekstu są dopuszczalne).
TEXT, K. McKeown, lata 80-te
Pennsylvania. Univ.
Zadaniem systemu TEXT było udzielanie odpowiedzi na pytania
dotyczące struktury bazy danych. Jedna z jego wersji powstała dla
bazy danych zawierającej informacje dotyczące jednostek
pływających amerykańskiej marynarki wojennej. Użytkownik
systemu mógł otrzymać odpowiedź na pytania typu:
– co to jest <obiekt>?,
– co wiesz o <obiekt>?,
– jaka jest różnica pomiędzy <obiekt1> a <obiekt>?
żądane informacje wyszukiwane były w opisie bazy danych. Sposób
wyszukiwania odpowiednich informacji oraz sposób konstrukcji
odpowiedzi był określony dla każdego typu pytania.
TEXT - wiedza ogólna
System TEXT przechowuje informacje na temat bazy danych, której
dotyczą zadawane pytania. Pamiętane dane zorganizowane są w
hierarchiczną sieć semantyczną zawierającą:
– obiekty występujące w bazie danych (np. nazwy atrybutów,
hierarchia atrybutów, powiązania między nimi, sposób w jaki
dzielą obiekty na klasy),
– obiekty powiązane (użytkownicy nie znający struktury bazy danych
mogą formułować pytania pojęć pokrewnych)
Przykładowymi faktami dodatkowymi, które należy umieścić w bazie
wiedzy są:
– definicje atrybutów, np. pracownik administracji,
– informacje niezmienne w konkretnej bazie, np. płeć dla uczniów
szkoły męskiej.
Typy zdań języka naturalnego (Grimes)
Opis atrybutu Maja ma żółtą sukienkę.
Zrównoważenie Wina wspaniałe, to wina z dobrych winnic.
Uszczegółowienie faktu Wczoraj było gorąco. Termometr_wskazywał_40
Wyjaśnienie Jan wrócił do domu ponieważ zapomniał parasola.
Potwierdzenie faktu Publiczność zauważyła różnicę. Już po pierwszych
kadrach filmu wybuchł śmiech.
Analogia Przyrządź tę potrawę tak jak poprzednio, ale dodaj więcej wina.
Podanie cechy wyróżniającej żyrafy wyróżniają się długą szyją
Wprowadzenie opisu cech bądź podklas łódź była dość duża, biała, z
biało-niebieskim żaglem
Przedstawienie możliwego ciągu zdarzeń Jeśli Piotr wróci wcześnie, to
nam wszystko opowie.
Alternatywa Możemy pójść do kina lub do kawiarni.
Skutek Naciśnięcie tego przycisku spowodowało wybuch.
Przypuszczenie To było chyba w maju.
Wniosek Nie przyjechałeś, więc Krzyś się obraził.
TEXT, schematy
Przy użyciu powyższej klasyfikacji zdań zdefiniowane zostały
następujące schematy przebiegu wypowiedzi:
identyfikacja,
opis na podstawie cech części składowych,
opis cech,
opis porównująco-różnicujący.
Schematy opisano jako sekwencje zdań o określonych
kategoriach, przy czym na jednej pozycji może w sposób
alternatywny pojawić się kilka typów zdań.
Schemat identyfikacji
Identyfikacja
{ Analogia/ Opis cech/ Atrybut/ Przemianowanie/ Przykład} *
Przykład szczegółowy/ Potwierdzenie +
{} opcjonalność, / alternatywa
* powtórzenie zero lub więcej razy,
{Podkreślenie/ Analogia/ Opis atrybutu}
+ powtórzenie co najmniej raz,
{Przykład szczegółowy/ Potwierdzenie}
Przykład tekstu, który powstał jako odpowiedź na pytanie:
Co to jest statek?
Statek to jednostka pływająca po powierzchni. Możliwości przewozowe
opisane są przez atrybuty bazy danych DISPLACEMENT i DRAFT. Inne
opisujące statek atrybuty to: MAXIMUM_SPEED, PROPULSION, FUEL
(FUEL_CAPACITY, FUEL_TYPE). Na przykład DOWNES ma
MAXIMUM_SPEED 29, PROPULSION - STMTURGD.
TEXT - Planowanie treści wypowiedzi
wybór adekwatnego do pytania podzbioru bazy wiedzy.
pytania o definicję lub o podanie wszystkich znanych faktów:
– z bazy wiedzy wydzielany jest fragment zawierający dany obiekt,
jego atrybuty i części składowe oraz obiekty w stosunku do niego
nadrzędne.
pytania o różnicę:
– dobór informacji zależy od wzajemnego położenia w hierarchii
rozpatrywanych obiektów. Dla elementów położonych blisko
siebie wyznaczany jest podzbiór zawierający wszystkie ich
atrybuty. W przeciwnym przypadku wybierane są tylko atrybuty
klas, do których należą wskazane obiekty.
TEXT - Planowanie postaci wypowiedzi
Schematy przypisane do typów pytań
– pytanie o definicję: schemat identyfikacji albo opis części
składowych
– pytania o informację: schemat opisu cech lub części
składowych.
– pytania o różnice pomiędzy dwoma obiektami: schemat
porównawczo-różnicujący
Wybór schematu zależy od tego, jakie informacje na temat
wskazanego obiektu zawarte są w bazie wiedzy.
– pytania o definicję: schemat opisu części składowych
wybierany jest wtedy, gdy o samym obiekcie dostępnych jest
mniej informacji niż o jego częściach.
Wybór w ramach schematu
Wybór alternatywnych możliwości w ramach schematu dokonywany
jest według zasad sterujących wyborem tematu kolejnego zdania.
[Sinder 79,83].
informacje dotyczące tematu wypowiedzi:
– bieżący temat,
– lista obiektów mogących stać się tematem kolejnego zdania
– stos zawierający wszystkie poprzednie tematy.
Tematem kolejnego zdania może być:
– obiekt, który był tematem poprzedniej wypowiedzi,
– obiekt, który został wprowadzony w poprzednim zdaniu,
– obiekt, który był tematem któregoś z wcześniejszych zdań,
– obiekt związany z innym, spełniającym któryś z powyższych
warunków.
Wybór w ramach schematu, cd.
Wybór konkretnej możliwości zależy od celu, jaki chce
osiągnąć mówca, np.:
kontynuacja rozmowy na ten sam temat,
rozpoczęcie rozmowy na temat wprowadzony w ostatnim
zdaniu,
powrót do poprzednio omawianych kwestii.
Rozwiązanie przyjęte w systemie TEXT:
– jeżeli istnieje możliwość zmiany tematu to system jej dokonuje,
– w przypadku wyboru pomiędzy tematem bieżącym, a którymś
z tematów wcześniejszych system pozostaje przy temacie
bieżącym.
Ostateczne sformułowanie
wypowiedzi
Przypisanie informacji pochodzących z bazy wiedzy do
poszczególnych zdań konstruowanego akapitu.
– Z każdym typem zdania związana jest specyfikacja rodzaju
informacji, która może stanowić jego treść.
– Sposób przyporządkowania zależny jest od zastosowania.
– Nie zależy natomiast od schematu bazy danych.
Implementacja schematów:
– automat, w którym stany odpowiadają pozycjom w schemacie,
a łuki wyborowi możliwości.
– testowanie wszystkich możliwości na jeden krok naprzód.
– w każdym stanie odbywa się ewaluacja wszystkich możliwości,
funkcje określające sposób wyboru najlepszej zawierają zasady
wyznaczania tematu następnego zdania
RST - teoria opisu struktury
wypowiedzi
Teoria struktury retorycznej RST (Rhetorical Structure
Theory) (Mann, 1988).
określenie funkcji pełnionych przez poszczególne elementy
składowe tekstu poprzez zbudowanie hierarchii ich
wzajemnych zależności.
formalizm ten stał się podstawą kilku praktycznych
rozwiązań problemu generowania wypowiedzi (m.in. Hovy,
1990; Moore & Swartout, 1991).
W stosunku do metody opisu tekstów za pomocą schematów
RST zapewnia większą różnorodność tworzonych
konstrukcji, umożliwia też bezpośrednie uzależnienie postaci
wypowiedzi od celu, jaki chce osiągnąć rozmówca.
Relacja RST
RST opisuje teksty w kategoriach relacji pomiędzy ich elementami
składowymi. Każda relacja dotyczy dwóch obiektów, z których jeden
traktowany jest jako główny ( nucleus), a drugi jako zależny (satelite).
Element główny może wystąpić samodzielnie, natomiast użycie w
wypowiedzi tylko elementu zależnego jest niewłaściwe.
relacja
nucleus
satelite
1-n
n+1 - m
element zależny można zastąpić innym bez szkody dla spójności tekstu,
zamiana elementu głównego ma zazwyczaj zasadniczy wpływ na sens
całości.
np. wyjaśnienie jakiegoś faktu może zawierać jeden z wielu możliwych
sposobów tłumaczenia, różne argumenty, ale temat wyjaśnień jest stały.
Składowe relacji RST
– warunki, które musi spełniać obiekt główny,
– warunki, które powinien spełniać element zależny,
– zależności pomiędzy obydwoma obiektami,
– efekty powodowane przez zastosowanie opisywanej relacji (obl.)
Przykładowo relacja świadectwa (evidence) dotyczy sytuacji, w której
budowane zdanie ma przekonać odbiorcę o prawdziwości jakiegoś faktu.
Obiektem głównym relacji jest głoszona teza, a elementami zależnymi
argumenty ją potwierdzające. Odpowiednie warunki zdefiniowane są
następująco:
– odbiorca nie jest pewny prawdziwości faktu,
– odbiorca jest przekonany o słuszności argumentu,
– zrozumienie argumentu powiększy wiarę odbiorcy w fakt.
Efekem zastosowania powyższej relacji jest wzrost przekonania
odbiorcy o prawdziwości faktu.
Analiza tekstu w terminach RST
Analiza tekstu to określenie relacji zachodzących między sąsiadującymi
ze sobą blokami tekstu; utworzona w ten sposób struktura musi być
drzewem.
Zdefiniowane w powyższy sposób relacje stanowią element składowy
schematów reprezentujących budowę większych fragmentów tekstu.
Przykładowe schematy to: okoliczność, tło, uwiarygodnienie,
warunek, interpretacja. Poszczególne schematy mogą zawierać jedną
lub więcej relacji.
W wersji oryginalnej teoria zawierała definicje następujących relacji:
okoliczność, rozwinięcie, umożliwienie, świadectwo, zamierzona
przyczyna, zamierzony rezultat, antyteza, warunek, interpretacja,
ponowne stwierdzenie, następstwo, rozwiązanie, tło, motywacja,
potwierdzenie, niezamierzona przyczyna, niezamierzony rezultat,
ustępstwo, inaczej, ewaluacja, podsumowanie, kontrast, sposób,
porównanie, wkład, połączenie
Przykładowa
analiza
tekstu
1. W opinii X spadek cen na giełdzie był przesadny.
2. Przyczyną tego był wzrost stóp procentowych wielu banków
amerykańskich.
3. Ale sceptycyzm jest nadal wysoki.
4. Trudno jest teraz przekonać kogoś do inwestycji na Wall Street.
5. Możliwe jednak, że rynek zareaguje pozytywnie na wystąpienie przew. BRF,
6. który podkreślił, że bank rezerw nie wzmocni swoich warunków
kredytowych.
concession
1-2
3-6
backgroud
3
cause
1
2
4
bacground
5-6
elaboration
5
6
Uwagi ogólne
Struktury RST zawierają jedynie część informacji związanej z danym
tekstem
– są reprezentowane powiązania między poszczególnymi frazami
wchodzącymi w skład wypowiedzi.
– brak - danych dotyczących użycia konkretnych konstrukcji
językowych, kolejności poszczególnych elementów, zasad
uzgadniania cech gramatycznych.
Pierwotną funkcją RST było opisywanie struktury już istniejących
tekstów. Przy generowaniu wymagane jest narzucenie pewnych
warunków na zasady łączenia relacji tak, by tworzony tekst był spójny.
Jednym z podstawowych problemów związanych z RST jest ustalenie
listy relacji, które mogą zachodzić między poszczególnymi fragmentami
tekstu (próba systematyki: Hovy (1990), około 350 różnych relacji
pochodzących z prac 25 osób)
Porównanie relacji RST i
schematów
Zalety schematów:
– duża czytelność oraz
– łatwość ich definiowania i wykorzystania.
Analizując schemat widzimy od razu (oczywiście w pewnym
przybliżeniu) strukturę końcowego tekstu.
Relacje RST tworzą zbiór oddzielnych reguł opisujących
poszczególne zdania. Powiązania wyrażone są za pomocą
elementów zależnych i pośrednio poprzez warunki stosowania
relacji. Określenie struktury większych fragmentów tekstu
wymaga więc prześledzenia wielu relacji, trudno też wskazać
konsekwencje zmiany poszczególnych definicji.
Porównanie relacji RST i
schematów, cd
Zaletą relacji RST jest konstruowanie drzewa opisującego
strukturę retoryczną tekstu tzn. zależności pomiędzy
poszczególnymi jego elementami.
Za pomocą RST można kontrolować strukturę mniejszych
fragmentów tekstu, nie koniecznie całych paragrafów. Z
drugiej strony ustalenie struktury paragrafu przy
wykorzystaniu RST jest znacznie trudniejsze.
Korzystne byłoby połączenie obu technik budowy tekstu, co
można osiągnąć poprzez pewne ograniczenia narzucone na
wybór relacji.
Takie rozwiązanie zaproponował np. Hovy (1991)
Hovy, 1991
moduł budujący drzewo struktury paragrafu tekstu, który
przekazać ma wybrane uprzednio informacje.
relacje RST -- plan opisujący zależności, jakie muszą zachodzić
pomiędzy elementami, by mogły być użyte do jego realizacji. Na
przykład tekst odpowiadający relacji circumstance pomiędzy
faktami X i Y można skonstruować, jeżeli Y stanowi opis czasu lub
położenia X.
W oryginalnej koncepcji RST każda relacja mogła być w dowolny
sposób połączona z innymi --> niespójność tworzonej wypowiedzi.
Ograniczenia na sposób łączenia relacji -- tzw. punkty rozszerzania
(growth points) zawierające listę relacji, które mogą być użyte w
kolejnym kroku planowania postaci generowanego tekstu.
Tworzenie wypowiedzi
Hierarchiczne rozwijanie planu aż do wykorzystania
wszystkich wyselekcjonowanych elementów zgodnie z
następującym schematem:
– pobranie kolejnego punktu rozszerzeń ze stosu,
– wyszukiwanie relacji spełniających opisane w nim warunki,
– dopasowanie odnalezionej relacji do rozpatrywanego punku
rozszerzeń,
– dołączenie nowej relacji do drzewa (o ile dopasowanie powiodło
się).
Tworzenie wypowiedzi, cd
Jeżeli więcej niż jedna relacja spełnia wymagane warunki
tworzone jest alternatywne drzewo struktury wypowiedzi.
Proces kończy się gdy zabraknie danych lub gdy żadne ze
zbudowanych drzew nie może zostać rozszerzone.
Jako ostateczny wynik wybierane są drzewa, które zawierają
najwięcej informacji, a z nich te, dla których zostało
najmniej niezrealizowanych punktów rozszerzeń. Jeżeli
więcej niż jedno drzewo spełnia te warunki, to wyboru
dokonuje się poprzez losowanie.
Działanie opisywanego systemu przedstawimy na podstawie
przykładu dotyczącego ruchu okrętów marynarki wojennej.
Przykład,
dane
wejściowe
((SHIP.EMPLOYMENT A105)
Statek o nazwie Knox, w stanie gotowości
(SHIP.R A105 Knox)
C4 znajduje się w drodze do Sasebo, gdzie
dopłynie 24 kwietnia 1987 i będzie w trakcie
(SHIP.COURSE.R A105 195)
(CURRENT.POSITION.R A105 P102) załadunku przez 4 dni. Aktualne położenie
statku to 18N, 79E, orientacja SSW.
(POSITION P102)
(LONGITUDE.R P102 79)
(LATITUDE.R P102 18)
(READINESS.LEVEL.R A104 C4)
(NEXT.MAJOR.EMPLOYMENT.R A105 E107)
(CURRENT.MAJOR.EMPLOYMENT.R A105 E107)
(ENROUTE E105)
(EBEG.R E105 8700420)
(EEND.R E105 8700424)
(DESTINATION.R E105 SASEBO)
(LOAD E107)
(EBEG.R E107 8700425)
(EEND.R E107 8700428)
Przykład, cd.
grupowaniu informacji dotyczących tych samych cech i
ewentualnemu utworzeniu struktur odpowiadających faktom
złożonym.
W podanym przykładzie rezultatem tego procesu jest następujący
zbiór opisów, z których każdy będzie następnie wyrażony za pomocą
zdania.
((ENROUTE E105)
(SHIP.R E105 KNOX)
(DESTINATION.R E105 SASEBO)
(HEADING.R E105 HEADING416)
(READINESS.R E105 READINESS408)
(NEXT-ACTION.R E105 ARRIVE400))
...
Załóżmy, że celem przygotowywanej wypowiedzi jest
uświadomienie słuchaczowi pozycji statku E105, co zapisywane
jest w następujący sposób:
(BMB SPEAKER HEARER (POSITION-OF E105 ?NEXT)
BMB oznacza obustronną wiarę mówcy i adresata wypowiedzi
(hearer and speaker mutually belive that ...).
Wyznaczony cel dopasowywany jest do pozycji efekt wszystkich
zdefiniowanych w systemie planów/relacji RST. W tym
przypadku jedynym planem realizującym wyznaczony cel jest
plan odpowiadający relacji sekwencji, który przedstawia się
następująco:
Relacja SEQUENCE
efekt: ((BMB SPEAKER HEARER (POSITION-OF ?PART ?NEXT)))
warunki dla połączenia elementu głównego i zależnego:
(BMB SPEAKER HEARER (NEXT-ACTION.R ?PART ?NEXT)))
warunki dla elementu głównego:
(BMB SPEAKER HEARER (TOPIC ?PART))
punkty rozszerzeń dla elementu głównego:
((BMB SPEAKER HEARER (CIRCUMSTANCE-OF ?PART ?CIR))
~(BMB SPEAKER HEARER (ATTRIBUTE-OF ?PART ?VAL))
~(BMB SPEAKER HEARER (PURPOSE-OF ?PART ?PURP))}
warunki dla elementu zależnego:
((BMB SPEAKER HEARER (TOPIC ?NEXT)))
punkty rozszerzeń dla elementu zależnego:
((BMB SPEAKER HEARER (ATTRIBUTE-OF ?NEXT ?VAL))
~(BMB SPEAKER HEARER (DETAILS-OF ?NEXT ?DETS))
~(BMB SPEAKER HEARER (POSITION-OF ?NEXT ?FOLL))
Relacja SEQUENCE, cd.
porządek: N S
warunek aktywacji: Czy A może zostać zaprezentowany jako element
pewnego łańcucha akcji, czy odbiorca powinien wiedzieć, że A stanowi
fragment takiej sekwencji?
frazy łączące: ``~'' ``then'' ``next'’
W kolejnym kroku odszukiwane są elementy, które spełniają warunki
opisujące połączenie elementu głównego i zależnego. Po przypisaniu
dokonanym podczas dopasowywania celu początkowego:
(BMB SPEAKER HEARER (NEXT-ACTION.R ?PART ?NEXT)))
(BMB SPEAKER HEARER (NEXT-ACTION.R E105 ?NEXT))
(BMB SPEAKER HEARER (NEXT-ACTION.R E105 ARRIVE400))
Tworzenie planu
Następnym krokiem realizacji wybranego planu jest rozpatrzenie
punktów rozszerzeń. Pierwszym z nich jest:
(BMB SPEAKER HEARER (CIRCUMSTANCE-OF E105 ?CIRC))
pasujący do pola efekt relacji circumstance.
nazwa: CIRCUMSTANCE
efekt: ((BMB SPEAKER HEARER (CIRCUMSTANCE-OF ?X ?CIRC)))
sprawdzamy warunku uwzględniając przypisanie ?X do E105,
uzyskując m.in:
(BMB SPEAKER HEARER (HEADING.R E105 HEADING416))
Pozwala to na sformułowanie nowej relacji circumstance pomiędzy
elementami E105 i HEADING416, którą można dołączyć do poprzednio
zbudowanej relacji sequence:
Tworzenie planu, cd
sequence
E105
ARRIVE400
circumstance
E105
sequence
ARRIVE400
HEADING416
W trakcie przebudowy drzewa niezrealizowane punkty rozszerzeń
relacji sequence przenoszone są do elementu głównego relacji
circumstance, co umożliwia dalszą rozbudowę drzewa w węźle E105.
Punkty rozszerzeń dla elementu zależnego dodawane są do listy
niezrealizowanych rozszerzeń.
Tworzenie planu, cd
Dalszy ciąg procesu planowania wypowiedzi przebiega następująco:
punkt rozszerzeń relacji sequence wypełniany jest przez relację
elaboration-attribute pomiędzy elementami E105 i READINESS408,
punkt rozszerzeń relacji circumstance wypełniany jest przez relację
elaboration-attribute pomiędzy elementami HEADING416 i
POSITION410,
punkt rozszerzeń elementu zależnego ARRIVE400 wypełniany jest
przez relację sequence wiążącą go z elementem E107
Tworzenie planu, cd
Proces planowania kończy się, gdy wszystkie elementy zbioru
wejściowego zostaną wyczerpane. Wynik:
sequence
circumstance
elab-attrib
E105
RDNSS408
elab-attrib
sequence
ARRIVE400
E107
POSTN410 HEADING416
Knox, which is C4, is en route to Sasebo. It is at 18N 79E, heading
SSW.
(Knox, w stanie gotowości C4 jest w drodze do Sasebo. Jego pozycja to
18N, 79E, orientacja SSW.)
Ostateczne formułowanie tekstu
Dwa najbardziej znane podejścia:
gramatyka systemowa (systemic grammar, Halliday, 1985)
gramatyka w formie acyklicznej sieci wyborów
funkcyjna gramatyka unifikacyjna (Functional Unification
Grammar, Kay, 1979)
Ujednoznacznianie słów
(WSD, Word sense disambiguation)
Wyszukiwanie informacji
(dokumentów tekstowych)
(IR, Information Retrieval)
Natural Language Information Retrieval,
T. Strzałkowski (ed.), Kluwer Academic Press. 1999
Powiązania między słowami
homonimy - jednakowy kształt słowa, różne znaczenia
– np. pokój (pomieszczenie) i pokój (przeciwieństwo wojny)
homofony - jednakowe brzmienie słów, różna pisownia,
znaczenie
– np. może, morze
polisemia - wielość powiązanych znaczeń jednego słowa
– np. góra (piętro domu, część ubrania ...)
Synonimy - różne leksemy o tym samym (prawie) znaczeniu
(mogące się nawzajem zastąpić w pewnym kontekście)
hyponimy - leksemy o szerszym znaczeniu
– np. pojazd mechaniczny vs. samochód,
Zadania:
ustalenie ile i jakich znaczeń posiada dane słowo
rozpoznawanie w jakim konkretnym znaczeniu wystąpiło
dane słowo - word sense disambiguation
taksonomia, hierarchia pojęć
WordNet - baza danych o
znaczeniach słów
Utworzona ręcznie baza zawierająca opisy i powiązania
semantyczne dla słów danego języka (pierwszy był angielski,
nie ma jeszcze dla polskiego)
zakres WordNet 1.6 dla angielskiego
rzeczowniki
czasowniki
przymiotniki
przysłówki
liczba form
liczba znaczeń
94474
10319
20170
4546
116317
22066
29881
5677
– WordNet nie zawiera słów z klas zamkniętych, np. spójników
– w praktyce mało słów ma wiele znaczeń
Przykładowy opis znaczeń
Fragment opisu rzeczownika bass w bazie WordNet:
1. bass - the lowest part of the musical range
2. bass, bass part - the lowest part in polyphonic music
3. bass, basso - an adult male singer with the lowest voice
4. sea bass, bass - flesh of lean-flesh saltwater fish
5. fresh water bass, bass - any of varoius North American lean-fleshed
freshwater fishes
6. bass, bass voice, basso ...
7. bass ...
8. bass ...
Relacje w WordNet
Rzeczowniki
Rzeczowniki
relacja
hypernym
hyponym
has-member
member-of
has-part
part-of
antonym
definicja
pojęcie -> pojęcie nadrzędne
pojęcie-> pojęcie podrzędne
grupa -> członek
członek ->grupa
ma części
jest elementem
jest przeciwieństwem
przykład
breakfast->meal
meal -> lunch
katedra->profesor
pilot -> załoga
stół -> blat
talerz -> serwis
pierwszy ->ostatni
Przykładowy opis hiponimii
Sense 3
bass, basso -- (an adult singer with the lowest voice)
=> singer, vocalist
=> musician, instrumentalist, player
=> performer, performing artist
=> entertainer
=> person, individual, someone ...
=> life form, organism, being ...
=> entity, something
=> causal agent, cause, causal agency
=> entity, something
Role, FrameNet
Rola
AGENT
EXPERIENCER
FORCE
THEME
RESULT
CONTENT
INSTRUMENT
BENEFICIARY
SOURCE
GOAL
przykład
Kot rozlał mleko.
Jana boli głowa.
Wiatr złamał drzewo.
Kiedy rozbił lód. (uczestnik doświadczający skutków)
Wybudował dom.
Jan spytał „Byłeś tam sam?”.
Uderzył go kijem.
Kupił mu dom.
Przyleciał z Paryża.
Poszedł do szkoły.
Selekcja znaczeń - ograniczenia
na role
– *I wanna eat someplace that’s close to ICSI.
– I wanna eat some really cheap Chinese food right now.
AGENT
THEME
I
/I
*someplace ... / ...food
Czasownik eat wymaga, by w roli THEME występował
„obiekt jadalny”
Formułowanie ograniczeń
Przedmiot dla czasownika eat musi być jadalny:
Logika pierwszego rzędu:
e,x,y eating(e) Agent(e,x) Theme(e,y) Isa(y,EdibleThing)
Hierarchia hiponimii w WordNet
Theme {food, nutrient} (jeden z 60000 klasyfikatorów, te pojęcia musza
znaleźć się w hierarchii)
hamburger, beefburger -- (a fried cake of minced meet served on a ban)
=> sandwich
=> snack food
=> dish
=> nutriment, nourishment, sustenance ...
=>food nutrient
=> substance, matter => object, physical object
=> entity, something
Problemy z ujednoznacznianiem
Różne ograniczenia na typ argumentów mogą pomóc przy
ujednoznacznianiu przykładów:
– Which airlines serve Denver? - Pojedź do serwisu.
– Which one serves breakfast? - Użyj tego granatowego serwisu.
Ale:
niedostateczny kontekst:
– Jaki serwis polecasz?
Sytuacje niecodzienne
– On naprawdę zjadł szklankę !
Przeczenie
– ale złota nie dało się jeść
Bajki dla dzieci, sny...:
– śnił mi się latający krokodyl, piżama w różowe słonie
Ujednoznacznianie
Reguły probabilistyczne
niczego (prawie) nie wykluczamy całkowicie, podajemy
preferencje
algorytm podaje to znaczenie, dla którego prawdopodobieństwo
jest w danym kontekście największe
odpowiednia metoda dla niejednoznacznych czasowników, ale
przy jednoznacznych argumentach
Metody „machine learning”
uczenie się na podstawie korpusów anotowanych morfologicznie
znajdowanie kontekstów użycia i wyznaczanie
prawdopodobieństw dla poszczególnych znaczeń
Information Retrieval (IR)
Indeksowanie, wyszukiwanie dokumentów tekstowych
Wyszukiwanie dokumentów w sieci WWW to obecnie jedna z
najczęstszych operacji
Problemy:
– wyszukanie właściwych dokumentów
– efektywne wyszukiwanie w bardzo dużych zbiorach
Zadanie:
Mając: - korpus tekstów
– pytanie użytkownika
Wyznaczyć:
– uporządkowany zbiór dokumentów stanowiący odpowiedź
NLP: powiązania z IR
NLP to syntaktyczna, semantyczna i pragmatyczna analiza
tekstu w języku naturalnym,
znajomość struktury syntaktycznej i interpretacji
semantycznej powinna pozwolić na wyszukiwanie sterowane
semantyką, a nie tylko słowami kluczowymi,
Możliwości powiązań:
– metody ustalania znaczenia słów w oparciu o kontekst (word
sense disambiguation),
– metody identyfikacji informacji w tekście (information
extraction),
– udzielanie odpowiedzi na podstawie analizy korpusu tekstów.
Słowa kluczowe
proste określenie poprawności odpowiedzi - tekst pytania
(słowa kluczowe) występuje w dokumencie
inne kryterium - słowa kluczowe występują w dokumencie
często, w dowolnej kolejności (bag of words) ew. wymagamy,
żeby były blisko siebie
Problemy z wyszukiwaniem wg słów kluczowych:
synonimy:
– “restaurant” vs. “café”
– “PRC” vs. “China”
terminy wieloznaczne:
– “bat” (baseball vs. mammal)
– “Apple” (company vs. fruit)
– “bit” (unit of data vs. act of eating)
- kostka (cukru, nogi)
- na prawo
- rząd (polski, drzew)
Trafność (relevance)
Trafność (odpowiedniość) jest miarą subiektywną. Może
dotyczyć m.in.:
– właściwego tematu,
– aktualności danych,
– wiarygodności danych (pochodzenia z wiarygodnego źródła),
– zaspokojenia potrzeb użytkownika (information need).
Inteligentne metody IR muszą brać pod uwagę:
znaczenie użytych w pytaniu słów,
porządek słów w pytaniu,
reakcje użytkownika (bezpośredni bądź pośredni feedback),
wiarygodność źródła informacji.
Składowe systemu IR
Text Operations utworzenie listy słow, według której
robiony będzie indeks (tokens).
– Usunięcie słow nieznaczących (Stopword removal)
– wyznaczenie form bazowych (Stemming)
Indexing skonstruowanie indeksu od słów do
dokumentów (an inverted index of word to document
pointers).
Searching odszukanie dokumentów zawierających
tokeny z pytania.
Ranking przypisanie dokumentom wagi.
Składowe systemu IR (cd)
User Interface - interakcja z użytkownikiem :
– Query input and document output.
– Relevance feedback.
– Visualization of results.
Query Operations - przekształcenie pytania dla zwiększenia
skuteczności wyszukiwania:
– rozszerzenie pytania przy wykorzystaniu tezaurusa
– przekształcenie pytania na podstawie otrzymanej informacji
zwrotnej
Wyzwania sieci www dla IR
Distributed Data: dokumenty ulokowane na milionach
serwerów
Volatile Data: wiele dokumentów nagle pojawia się lub znika
Large Volume: bardzo wiele oddzielnych dokumentów
Unstructured and Redundant Data: brak jednolitej
struktury, błędy HTML, do 30% (prawie) powielonych
dokumentów
Quality of Data: brak kontroli edytorskiej, nieprawdziwe
informacje, kiepskiej jakości teksty, etc.
Heterogeneous Data: wiele typów danych (obrazy, filmy, ...)
języków, zbiorów znaków
Liczba indeksowanych stron
www
SearchEngineWatch, Aug. 15, 2001
Google lists current number of pages searched.
Prawo Zipf’a
Niech Rank (r) będzie pozycją słowa na liście posortowanej
według malejących częstości.
Zipf (1949) “odkrył” że: częstość występowania obserwacji r ,
wyrażona jako funkcja jej pozycji na liście częstości (r) jest
wyrażana funkcją
1 Pr ~ 1/ra gdzie a jest bliskie jedności.
f
f r k (for constantk )
r
jeżeli prawdopodobieństwo wystąpienia słowa o pozycji r
wynosi pr, af N jest
A liczbą wszystkich wystąpień wszystkich
for corpus indp. const. A 0.1
słów, pto:
r
N
r
Prawo Zipf’a a przydatność
słów dla indeksowania
Zarówno słowa występujące bardzo często, jak i te występujące bardzo
rzadko, są mało przydatne z punktu widzenia indeksowania, Luhn (1958).
Prawo Zipf’a a korpus Brown’a
k = 100,000
Prawo Zipf’a a sieć Web
Rozkład Zipf’a charakteryzuje m.in.:
– liczbę powiązań do i ze strony www
– długość stron www
– liczbę odwołań do strony www
Automatyczna klasyfikacja
dokumnetów
Ręczna klasyfikacja jest pracochłonna, subiektywna i
obarczona błędami
potrzebne są metody automatycznej kategoryzacji
dokumentów
najlepsze metody oparte są metodach machine learning
(pattern recognition) przy wykorzystaniu poetykietowanego
zbioru treningowego (supervised learning).
Automatyczne tworzenie
hierarchii dokumentów
Do klasyfikacji dokumentów potrzebne są hierarchie typów
ręczne towrzenie hierarchii jest ... pracochłonne, subiektywne
i obarczone błędami
potrzebne sa metody automatycznego tworzenia hoierachii
na podstawie zbioru dokumnetów
metoda - hierarchical text clustering (unsupervised learning)
(Hierarchical Agglomerative Clustering, HAC)
IR, Vector Space Model
Dokumenty i pytania przedstawiane są w postaci wektorów cech
reprezentujących występujące obiekty (dokładniej wartość cechy
określa, czy dany obiekt występuje czy nie w danym dokumencie)
dokument j -- dj = (t1,j , t2,j, ..., tN,j)
pytanie k
-- qk = (t1,k , t2,k, ..., tN,k)
w wektorach powyżej zamiast 0,1 umieszczamy liczby oddające
częstości
dokumenty i pytania są wektorami w przestrzeni N-wymiarowej
dla ułatwienia porównań normalizujemy wektory, dzielimy
każdą współrzędną przez długość wektora, tj.
i=1,,N
wi2
IR, Vector Space Model, cd.
Odległość między znormalizowanymi wektorami:
sim(qk, dj) = qk . dj =
wi,k x wj,k (dot product)
i-1..N
wyznacza cosinus kąta między wektorami, takie same wektory
kąt 0 cosinus 1, wektory prostopadłe, „bardzo odległe”,
cosinus 0.
IR, Vector Space Model, cd.
Wartości istotne dla modelu:
– częstość występowania słowa w tekście
– dystrybucja słowa w zbiorze tekstów
słowa występujące rzadko (tylko w niewielu tekstach) dobrze
nadają się do wyboru tego właśnie podzbioru
słowa często występujące są niedobre do selekcji czegokolwiek
IR, Vector Space Model, cd.
Miara „przydatności” obiektów (termów):
– N/ni
N - liczba dokumentów w kolekcji
ni - liczba dokumentów, w których występuje ni
(1 - term występuje we wszystkich dokumentach)
– idf i = log(N/ni) (inverse document frequency)
– wi,j = tf i,j x idf i
(tfi,j częstość termu i w dokumencie j)
Wybór termów
Stop lista
– słowa występujące często, spójniki ...
– ale (to be or not to be) -> not
(Brown corpus, za Frakes, Baeza-Yates))
ustalenie tematów słów (stemming) - nieodzowny dla języka
fleksyjnego, ale bardzo trudny przy wielu wymianach
tematowych
(ćma - temat pusty)
Poprawianie pytań
Stopniowe tworzenie odpowiedzi (relevance feedback)
– mały zbiór odpowiedzi początkowych,
– reakcja użytkownika określającego, które z tej grupy są
najlepsze
– iteracja (często tylko jeden krok interakcji wystarcza)
rozszerzenie pytania (query expansion)
– dodanie termów pokrewnych tym z pytania (w oparciu o
tezaurusy)
Ocena wyników
Precyzja
Precision =
Pełność
Recall =
liczba podanych właściwych dokumentów
liczba wszystkich właściwych dokumentów
liczba podanych właściwych dokumentów
liczba wszystkich podanych dokumentów
Search Results Clustering
Definicja problemu: efektywne utworzeniu sensownych grup
tematycznie powiązanych dokumentów, oraz zwięzły opis w
sposób zrozumiały dla człowieka
Problem nie jest trywialny…
– nie jest znana liczba oczekiwanych grup
– miara podobieństwa dokumentów jest trudna do zdefiniowania
– grupy mogą się nakładać
– znalezienie opisu dla grup nie jest proste
– wymagana szybkość wykonywania (on-line)
– dokumenty mogą być wielojęzyczne
– opisy są zazwyczaj krótkie (snippets) i niepełne
Modelowanie podobieństwa
modelowanie odległości w przetrzeniach n-wymiarowych
(Vector Space Model)
model grafowy
współwystępowanie słów i fraz
Pojęcie bliskości w macierzy A:
jesteśmy zainteresowani kątem jaki tworzą między sobą wektory
dokumentów
identyczny kąt -> dokumenty złożone są z identycznych słów ->
dokumenty są podobne
Przykład –macierz A
Algorytmy grupowania a macierz A
wykorzystanie informacji o bliskości dokumentów w A
zastosowanie mają wszelkie metody analizy skupień w danych
numerycznych
problemy
grupy zazwyczaj sferyczne
każde słowo jest traktowane oddzielnie
problemy ze znalezieniem opisu grup
problem z naturalnym kryterium stopu dla większości
algorytmów
Algorytm STC – wykorzystanie fraz
Suffix Tree Clustering, Oren Zamir, O. Etzioni
fraza = sekwencja występujących po sobie słów
algorytm rozważa wspólne podfrazy występujące w
dokumentach
zalety
– brak numerycznej miary odległości
– frazy stanowią zazwyczaj dobre opisy grup
– liniowa złożoność - O(N)
wady
– słabo radzi sobie z szumem
– problemy z separacją małych grup
– wrażliwość na progi i język dokumentów