Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie...

82

Transcript of Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie...

Page 1: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Uniwersytet Warszawski

Wydziaª Matematyki, Informatyki i Mechaniki

Dariusz Leniowski

Nr albumu: 236088

Automatyczna analiza semantyczna

tekstu w j¦zyku naturalnym,

studium przypadku

Praca magisterska

na kierunku INFORMATYKA

Praca wykonana pod kierunkiemprof. Krzysztofa Diksa

Instytut InformatykiUniwersytetu Warszawskiego

Wrzesie« 2010

Page 2: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

O±wiadczenie kieruj¡cego prac¡

Potwierdzam, »e niniejsza praca zostaªa przygotowana pod moim kierunkiem ikwalikuje si¦ do przedstawienia jej w post¦powaniu o nadanie tytuªu zawodowego.

Data Podpis kieruj¡cego prac¡

O±wiadczenie autora (autorów) pracy

wiadom odpowiedzialno±ci prawnej o±wiadczam, »e niniejsza praca dyplomowazostaªa napisana przeze mnie samodzielnie i nie zawiera tre±ci uzyskanych w sposóbniezgodny z obowi¡zuj¡cymi przepisami.

O±wiadczam równie», »e przedstawiona praca nie byªa wcze±niej przedmiotemprocedur zwi¡zanych z uzyskaniem tytuªu zawodowego w wy»szej uczelni.

O±wiadczam ponadto, »e niniejsza wersja pracy jest identyczna z zaª¡czon¡ wersj¡elektroniczn¡.

Data Podpis autora (autorów) pracy

Page 3: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Streszczenie

Praca dotyczy automatycznej analizy semantycznej tekstu napisanego w j¦zyku naturalnym(angielskim). Opracowano i przedstawiono nowy formalizm, który jest podstaw¡ do autor-skiego algorytmu przetwarzania j¦zyka naturalnego, korzystaj¡cego z typów semantycznych,teorii krat i idei programowania funkcyjnego. Algorytm zostaª zaimplementowany i przete-stowany na zbiorze zda« zaczerpni¦tych z formularzy 10-K Ameryka«skiej Komisji PapierówWarto±ciowych.

Sªowa kluczowe

parsowanie semantyczne, przetwarzanie j¦zyka naturalnego, semantyka j¦zyka naturalnego,sztuczna inteligencja

Dziedzina pracy (kody wg programu Socrates-Erasmus)

11.3 Informatyka11.4 Sztuczna inteligencja

Klasykacja tematyczna

I.2.7 [Articial Intelligence]:Natural Language Processing Language parsing and understanding;

F.4.2 [Mathematical Logic and Formal Languages]:Grammars and Other Rewriting Systems Parsing;

D.3.2 [Programming Languages]:Language Classications Specialized application languages;

Tytuª pracy w j¦zyku angielskim

Automatic semantic analysis of text in natural language, a case study

Page 4: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 5: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Podzi¦kowania

Serdeczne podzi¦kowania chciaªbym zªo»y¢ Panu Profesorowi KrzysztofowiDiksowi, promotorowi i wielkiemu entuzja±cie algorytmiki, za jego niewyczerpan¡cierpliwo±¢ i okazane mi zaufanie.

Chciaªbym podzi¦kowa¢ dr. Wojciechowi Jaworskiemu za cenne rady i dyskusje,które cho¢ nieliczne, okazaªy si¦ brzemienne w skutkach.

Ma¢kowi D¡browskiemu, Sean-owi O'Riain-owi oraz ukaszowi Porwolowi zawszelk¡ pomoc jak¡ od nich otrzymaªem podczas mojego pobytu w Irlandii.

Za pi¦¢ wspaniale sp¦dzonych lat wspólnych studiów ukaszowi Bieniaszowi-Krzywiec, Kubie ¡ckiemu i Grzegorzowi Ziemia«skiemu.

Za nieprzerwane przypominanie mi, co jest naprawd¦ wa»ne Ma¢kowi Doª¦dze,Joannie Fili, Konradowi Kaplicie i Joannie Karskiej.

Za trosk¦, wsparcie i do±wiadczenie Lucynie i Ryszardowi Leniowskim, kocha-nym Rodzicom.

Page 6: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 7: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Spis tre±ci

Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1. Przetwarzanie j¦zyka naturalnego . . . . . . . . . . . . . . . . . . . . . . . . . 71.1. Poj¦cia podstawowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.1. Parsowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.2. Przetwarzanie pªytkie i gª¦bokie . . . . . . . . . . . . . . . . . . . . . 71.1.3. Przetwarzanie syntaktyczne i semantyczne . . . . . . . . . . . . . . . . 81.1.4. Ogólne informacje o budowie zda« w j¦zyku angielskim . . . . . . . . 81.1.5. Znakowanie ról semantycznych . . . . . . . . . . . . . . . . . . . . . . 121.1.6. Ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2. Dotychczasowe badania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2.1. Korpusy Penn Treebank i PropBank . . . . . . . . . . . . . . . . . 131.2.2. Formalizm HPSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2.3. Gramatyka kategorialna . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.4. Formalizm CCG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.5. Gramatyka Montague . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2. Podstawowe informacje o istotnych cechach tekstów . . . . . . . . . . . . . 192.1. Przykªady zda« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.1. Korpusy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.2. Zdania z prac naukowych . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.3. Zdania ró»ne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2. Formularze 10-K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3. Typy semantyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3. Podstawy teoretyczne algorytmu . . . . . . . . . . . . . . . . . . . . . . . . . 273.1. Kraty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.1. Kraty rozdzielne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.1.2. Kraty dwuresztkowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.1.3. Wielomiany kratowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.1.4. Rozwi¡zywanie równa« w kratach . . . . . . . . . . . . . . . . . . . . 303.1.5. Kraty a ontologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2. Rachunek lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2.1. Denicje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2.2. Rachunek lambda z typami prostymi . . . . . . . . . . . . . . . . . . . 333.2.3. Polimorzm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3

Page 8: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

3.3. Algorytm CKY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4. Sªaba semantyka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1. Konstrukcje statyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2. Zmienne i aplikacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3. Wªa±ciwo±ci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.4. Operatory supremum i inmum . . . . . . . . . . . . . . . . . . . . . . . . . . 414.5. Formalna denicja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.6. Klasa j¦zyków rozpoznawalnych . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5. Algorytm parsowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.1. Idea algorytmu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.2. Rezolucja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2.1. Normalizacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.2.2. Obsªuga kwantykatorów . . . . . . . . . . . . . . . . . . . . . . . . . 515.2.3. Speªnialno±¢ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.2.4. Graf zale»no±ci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.3. Analiza zªo»ono±ci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.4. Implementacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.4.1. Architektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.4.2. Wybrane fragmenty kodu . . . . . . . . . . . . . . . . . . . . . . . . . 545.4.3. Obsªuga ontologii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.4.4. Uwagi dodatkowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6. Wyniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.1. Wyj±cie z algorytmu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.2. Testy ukªadane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.3. Przykªady instancji problematycznych . . . . . . . . . . . . . . . . . . . . . . 676.4. Testy na podstawie formularzy 10-K . . . . . . . . . . . . . . . . . . . . . . . 69

Podsumowanie i wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4

Page 9: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Wprowadzenie

Ogromna ilo±c informacji przechowywanych w postaci elektronicznej wymaga sprawnych na-rz¦dzi przeszukiwania. Na specjaln¡ uwag¦ zasªuguj¡ teksty w j¦zyku naturalnym, gdy» s¡najwygodniejszym i najbardziej popularnym sposobem wyra»ania, przechowywania i prze-kazywania informacji przez ludzi. To w j¦zyku naturalnym powstaj¡ wa»ne zestawienia,raporty, korespondencja, ogªoszenia, recenzje, opinie i tym podobne dokumenty. Wszystkiete formy zawieraj¡ dane, istotne z punktu widzenia szerokiej rzeszy u»ytkowników kompute-rów. Niestety wydobycie potrzebnych informacji z ogólnie nieuporz¡dkowanych zbiorów, niejest zadaniem ªatwym.

Szeroki wachlarz potencjalnych zastosowa« odpowiednio wyselekcjonowanych danych skªa-nia do podj¦cia prób skonstruowania wszechstronnego narz¦dzia, tªumacz¡cego tre±ci napi-sane w j¦zyku naturalnym na posta¢ zrozumiaª¡ dla komputerów. Otworzy to zupeªnienowe mo»liwo±ci, od czysto informacyjnych poczynaj¡c, poprzez reklamowe, statystyczne,badawcze, a» po powa»ne, strategiczne projekty biznesowe, czy nawet zwi¡zane z kwestiamibezpiecze«stwa mi¦dzynarodowego. W tym kontek±cie wydaje si¦, »e rozwi¡zania dost¦pnedo tej pory jedynie dla bohaterów powie±ci fantastycznych, mog¡ si¦ urzeczywistni¢, a wyszu-kiwanie precyzyjnej i wiarygodnej informacji w g¡szczu wszechobecnego w internecie chaosustanie si¦ o wiele efektywniejsze.

Celem niniejszej pracy jest zaprojektowanie algorytmu, który potraªby przetworzy¢ tekstnapisany w j¦zyku naturalnym charakteryzuj¡cy si¦ skomplikowan¡ struktur¡ zda« i wysokimstopniem poprawno±ci gramatycznej. Bezpo±rednim powodem rozpocz¦cia prac nad proble-mem byªo zagadnienie wydobywania informacji z formularzy 10-K Ameryka«skiej KomisjiPapierów Warto±ciowych (SEC, ang. Securities and Exchange Commision). Najlepszez dost¦pnych narz¦dzi zawodziªy przy dªugich i skomplikowanych w budowie sformuªowa-niach, wi¦c postanowiªem spróbowa¢ innego podej±cia.

W trakcie pracy nad algorytmem sformuªowaªem now¡ teori¦ dotycz¡c¡ opisu znaczeniaposzczególnych sªów, fraz i caªych zda« w j¦zyku naturalnym. Na jej podstawie zaprojek-towaªem algorytm, który ma du»e szanse sprosta¢ postawionym wymaganiom. Poszczególneetapy pracy zostaªy przedstawione w kolejnych rozdziaªach.

W rozdziale pierwszym omówiªem podstawowe zagadnienia zwi¡zane z przetwarzaniemj¦zyka naturalnego. Rozdziaª drugi zawiera przykªady, na podstawie których wskazuj¦ istotnecechy tekstów, które pomogªy mi przy tworzeniu teorii i projektowaniu algorytmu. Narz¦dziawykorzystywane przy opisie teorii i zasady dziaªania procedury przetwarzania zostaªy opisanew rozdziale trzecim. Najwa»niejszy pomysª tej pracy, sªaba semantyka, zostaª przedstawionyw rozdziale czwartym. Ostatnie dwie cz¦±ci, rozdziaª pi¡ty i szósty dotycz¡ opracowanegoalgorytmu oraz wyników jego implementacji.

5

Page 10: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 11: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rozdziaª 1

Przetwarzanie j¦zyka naturalnego

J¦zyki naturalne, to j¦zyki u»ywane przez ludzi do komunikacji mi¦dzy sob¡. Najcz¦±ciejewaluowaªy one z biegiem historii (np. polski, angielski, ªacina), ale s¡ te» znane j¦zykistworzone sztucznie (np. esperanto). Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-ral Language Processing) zajmuje si¦ szeroko poj¦tymi algorytmami operuj¡cymi na tychj¦zykach. Robi si¦ to najcz¦±ciej w celu ekstrakcji informacji, jednak s¡ te» inne zastoso-wania, takie jak sterowanie gªosem, automatyczni tªumacze, czy semantic web. KorzenieNLP si¦gaj¡ poªowy XX wieku, kiedy to Alan Turing zaproponowaª test badaj¡cy sztuczn¡inteligencj¦ w 1950 roku [58] i do tej pory jest to bardzo dynamicznie rozwijaj¡ca si¦ gaª¡¹informatyki. Szczegóªowe informacje dotycz¡ce przetwarzania j¦zyków naturalnych mo»naznale¹¢ w ksi¡»kach [9] oraz [39].

1.1. Poj¦cia podstawowe

1.1.1. Parsowanie

Parsowanie jest to proces ukªadania liniowego ci¡gu sªów (lub innych jednostek, np. lek-semów) analizowanego tekstu w struktur¦ logiczn¡, najcz¦±ciej poprzez nawiasowanie od-powiednich podwyra»e«. Analogicznie, parser j¦zyka naturalnego to algorytm, który prze-twarza zdania tekstu pisanego na drzewa ich rozkªadu, np. które sªowa ª¡cz¡ si¦ w frazy,które stanowi¡ podmiot, a które orzeczenie. Podstawowe podej±cia u»ywaj¡ ró»nego rodzajugramatyk czytanego j¦zyka, lecz od lat 90 rdzeniem najlepszych programów s¡ metody pro-babilistyczne. Przykªadem biblioteki zawieraj¡cej taki wªa±nie algorytm parsuj¡cy mo»e by¢Stanford Parser rozwijany przez The Stanford Natural Language Processing Group na Uni-wersytecie Stanford, którego skuteczno±¢ na Penn Treebank (por. roz. 1.2.1) wynosi ponad85% [33].

1.1.2. Przetwarzanie pªytkie i gª¦bokie

Algorytmy przetwarzaj¡ce tekst napisany w j¦zyku naturalnym mo»na podzieli¢ na przetwa-rzaj¡ce pªytko (lub powierzchniowo, ang. shallow) i przetwarzaj¡ce gª¦boko (ang. deep).Przetwarzanie gª¦bokie polega na analizie struktury tekstu lub zdania, w przeciwie«stwiedo przetwarzania pªytkiego, które najcz¦±ciej polega na metodach statystycznych czy do-pasowywaniu wzorców (np. wyra»e« regularnych). Ka»da z nich ma swoje wady i zalety,

7

Page 12: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

w szczególno±ci przetwarzanie pªytkie jest du»o szybsze i lepiej sobie radzi z tekstami nie-formalnymi czy zawieraj¡cymi du»o bª¦dów (np. komentarzami internetowymi), ma jednakgorsze wyniki przy zdaniach dªugich lub zªo»onych. Przetwarzanie gª¦bokie jest du»o do-kªadniejsze i potra wydoby¢ znacznie wi¦cej informacji z tego samego tekstu, cz¦sto jednakwychodzi poza mo»liwo±ci obliczeniowe dzisiejszych komputerów (pojedyncze skomplikowanezdanie mo»e by¢ przetwarzane w czasie jednej godziny lub nawet dªu»ej).

1.1.3. Przetwarzanie syntaktyczne i semantyczne

Przetwarzanie syntaktyczne i semantyczne ró»ni¡ si¦ w sposobie traktowania sªów z j¦zykai ró»nica ta jest analogiczna do ró»nicy pomi¦dzy analiz¡ syntaktyczn¡ i semantyczn¡ j¦zykówprogramowania. Niestety zdarza si¦, »e jest bardzo trudna do uchwycenia, gdy» w wielumiejscach rozkªad syntaktyczy pokrywa si¦ z rozkªadem semantycznym. Rozwa»my zdanieChoose the form of payment. Rozkªady syntaktyczny i semantyczny tego zdania mógªbywygl¡da¢ na przykªad nast¦puj¡co:

XXXXX

V

Choose

Naaaa

!!!!NZZ

the form

Pbb

""of payment

hhhhhhh(((((((

V

Choose

Raaaa

!!!!the form of

N

payment

Je»eli natomiast potraktujemy fraz¦ the form of syntaktycznie, jako zbitk¦ wyrazów (por.roz. 1.1.4), to rozkªad semantyczny i syntaktyczny nie b¦d¡ si¦ wcale ró»ni¢.

1.1.4. Ogólne informacje o budowie zda« w j¦zyku angielskim

J¦zyk angielski nale»y do grupy j¦zyków zachodnio-germa«skich, jednak liczne naleciaªo±ciz ªaciny, francuskiego, j¦zyków norma«skich i skandynawskich spowodowaªy spore zmianyw jego strukturze. W budowie zda« dominuje porz¡dek SVO (ang. subject verb object),ale zdarzaj¡ si¦ te» przykªady innych: Is this your car? , Once upon a time, there wasa man, who. . . , The bird watched the cat and so did the dog.

W j¦zyku wyst¦puj¡ cztery gªówne czasy: tera¹niejszy (ang. present), przeszªy (ang.past), przyszªy (ang. future) i tryb przypuszczaj¡cy (dosªownie czas przyszªy w przeszªo±ci,ang. future in the past), z których ka»dy posiada cztery odmiany (ang. simple, continuous,perfect, perfect continuous).

Rozró»nia si¦ pi¦¢ form czasowników: bezokolicznik (np. to be), form¦ podstawow¡ (np.am, are, is), przeszª¡ (np. was, were), perfektu (np. been) i gerundium (np. being). Od-miana czasowników przez osoby wyst¦puje, ale tylko dla by¢ (to be) pojawiaj¡ si¦ znaczneró»nice, pozostaªe czasowniki zmieniaj¡ si¦ w formie jedynie dla trzeciej osoby liczby poje-dynczej.

W j¦zyku angielskim istniej¡ wprawdzie trzy przypadki: mianownik, dopeªniacz i celow-nik/biernik, ale odmiana przez nie jest bardzo ograniczona. W peªni odmieniaj¡ si¦ tylkozaimki, natomiast pozostaªe cz¦±ci mowy ró»ni¡ si¦ tylko w liczbie mnogiej oraz w przypadkudopeªniacza.

To wszystko sprawia, »e gramatyka j¦zyka angielskiego jest do±¢ maªo elastyczna.

8

Page 13: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Przegl¡d gramatyki

Cz¦±ci zdania w j¦zyku angielskim mo»na podzieli¢ nast¦puj¡co1: podmiot (S, ang. subject),orzeczenie (V, ang. verb,predicate), dopeªnienie (O, ang. object), uzupeªnienie (C, ang.complement), okolicznik (A, ang. adverbial). Budowa zdania zale»y wprawdzie od trybu,ale dla okre±lonych rodzajów czasownika przewa»aj¡ nast¦puj¡ce schematy:

czasowniki nieprzechodnie SV,

czasownik by¢ (ang. to be) SVC, SVA,

czasowniki przechodnie SVO, SVOO, SVOC i SVOA.

Poszczególne role w zdaniu przyjmuj¡ wyra»enia, których w j¦zyku angielskim jest pi¦¢:wyra»enie rzeczownikowe (ang. noun phrase), czasownikowe (ang. verb phrase), wyra»enieprzymiotnikowe (ang. adjecitval phrase), wyra»enie przysªówkowe (ang. adverbial phrase)oraz wyra»enie przyimkowe (ang. prepositional phrase). Budowa tych wyra»e« ma najwi¦k-szy wpªyw na struktur¦ zdania, dla czytelno±ci przedstawiono j¡ w formie diagramów2.

Wyra»enieczasownikowe Czasownikposiªkowy. . .. . .modalny(can, may, will, should). . . perfektu(have, has, had, having). . . gerundium(are, is, was, been, being). . . strony biernej(am, is, were, been, being). . . pomocniczy(do, does, did, done, doing)Gªowawyra»enia Czasownik (see, walk, go)

Wyra»enieprzymiotnikowePremodykator wyra»enie przysªówkowe(extremely, very happily, too)Gªowa wyra»enia Przymiotnik (rich, poor, beautiful)Imiesªów Imiesªow czynny (interesting)Imiesªow bierny (faded, tired)Postmodykator Przysªówek (enough, indeed)Uzupeªnienie Wyra»enie przyimkowe(for me)Konstrukcjabezokolicznikowa (to see)

1W j¦zyku polskim uzupeªnienie jest zawarte w poj¦ciu dopeªnienia, natomiast dodatkowo wyró»nia si¦

przydawk¦ (ang. attribute).2 Diagramy, jak i wi¦kszo±¢ przedstawionych w tej cz¦±ci informacji zostaªa opracowana na podstawie

ksi¡»ki Daniela Kiesa pt. Modern English Grammar [32].

9

Page 14: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Wyra»enieprzysªówkowe Premodykator wyra»enie przysªówkowe(extremely, quite, too, very)Gªowa wyra»enia Przysªówek (honestly,frankly,brightly)Postmodykator Przysªówek (enough, indeed)Uzupeªnienie Wyra»enie przyimkowe(for me)Konstrukcjabezokolicznikowa (to see)Wyra»enieprzyimkowe Przyimek Przyimek pojedynczy(under, with, to, in, for, by)Przyimek zªo»ony(next to, instead of, due to)Uzupeªnienie Przysªówek (now, then)Wyra»enie rzeczownikowe (her, the books)Zdaniepodrz¦dne Konstrukcja imiesªowowa czynna(winning the election)Zdanie wzgl¦dne(whoever wants it)

Wyra»enierzeczownikowe

Okre±lnikPrzedokre±lnik Kwantykator (all, both, half )Krotno±¢ (double, twice)Uªamek (one-third, one-fth)

Okre±lnikwªa±ciwyPrzedimek Przedimek okre±lony (the)Przedimek nieokre±lony (a, an)Zaimek Zaimek wskazuj¡cy (that, those)Zaimek osobowy (my, her )Zaimek nieokre±lony (any, some)Zaimek pytajny (which, what)Okre±lnik negatywny (no)Pookre±lnik Numeraª Liczebnik (one, two, three)Liczebnik porz¡dkowy(rst, second)Kwantykator (few, several, much)Pre-modykator Rzeczownik (science [ction])Wyra»enie przymiotnikowe (very big)Imiesªów Imiesªów czynny (-ing, walking)Imiesªów bierny (-ed, painted)Gªowawyra»enia Rzeczownik (Marie, information, children)Przymiotnik (rich,poor,beautiful)Zaimek osobowy (I, she, they)

Post-modykatorWyra»enie przyimkowe (in the afternoon)Zdanie wzgl¦dne (who was reading that book )Zdaniepodrz¦dne Konstrukcje imiesªowowe czynne (writing a letter )Konstrukcje imiesªowowe bierne (shocked by the news)Konstrukcje bezokolicznikowe (to see)Uzupeªnienie (than I, than that)

10

Page 15: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Przegl¡d podstawowych tematycznych ról sªów

W lingwistyce i dziedzinie przetwarzania j¦zyka naturalnego wykorzystuje sie poj¦cie róltematycznych (ang. thematic role). Nie nale»y ono do ±cisªych terminów i jest u»ywanew wielu kontekstach. Ogólnie mo»na by je okre±li¢ jako rol¦, któr¡ mo»e speªnia¢ grupa wy-razów wzgl¦dem pewnego, wyró»nionego czasownika. Niestety, nie wiadomo jak zdeniowa¢j¡ formalnie, ani nie ma ogólnie uznanej listy takich ról [26]. Z drugiej strony, role tema-tyczne s¡ bardzo u»yteczne, co pokazuje skuteczno±¢ analizatorów opartych o znakowanieról semantycznych (ang. semantic role labeling, por. roz. 1.1.5). Spo±ród wielu list róli znacze« pasuj¡cych do ró»norakich denicji, mo»na wyró»ni¢ dwana±cie gªównych, które zezwi¦kszon¡ cz¦sto±ci¡ przewijaj¡ si¦ w artykuªach naukowych:

rola znaczenie przykªadagent aktywny wykonawca czynno±ci

John broke the window.author pasywny wykonawca czynno±ci

Liquor killed him.instrument przyrz¡d u»yty do wykonania czynno±ci

Ellen opened the door with a key.theme jednostka, której dotyczy czynno±¢ lub wydarzenie (pozostaje niezmieniona)

John rolled the ball across the oor.patient jednostka, na której wykonywana jest czynno±¢ (mo»e zosta¢ zmieniona)

The man cleaned the car.benefactive jednostka, która zyskuje na czynno±ci lub wydarzeniu

Mary made lunch for John.experiencer jednostka, która odczuwa czynno±¢ lub wydarzenie

John felt happy.source ¹ródªo z którego jednostka pochodzi

Mary walked out from the room.goal cel do którego jednostka d¡»y

John went home.locative specykacja miejsca w którym czynno±¢ lub wydarzenie jest umiejscowione

The cloud oated the sky.reason powód wykonania czynno±ci lub zaj±cia zdarzenia

He ran from fear.purpose cel u»ycia jednostki

I use it for shing.

Wyra»enia wielowyrazowe

Wyra»enia wielowyrazowe s¡ to ci¡gi sªów tekstu pisanego w j¦zyku naturalnym, którew swoim zestawieniu posiadaj¡ inne znaczenie (np. bardziej specyczne, jak trac lightczy zupeªnie ró»ne, jak kick the bucket) ni» to wynikaªo by ze znaczenia samych sªów. Jestto jeden z wi¦kszych problemów automatycznego przetwarzania tekstów, gdy» podlegaj¡ oneinnym reguªom skªadniowym i semantycznym ni» reszta tekstu. Ich podziaª na podstawiebudowy i zachowania w zdaniu [51] wraz z charakterystycznymi cechami zostaª przedstawionyw poni»szej tabeli:

11

Page 16: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Frazy zleksykalizowane

staªe: in short, by and large, ad hoc, ad libitum

nie podlegaj¡ modykacjom (np. in very short)

ª¡czliwe

rozkªadalne: spill the beans (spill = reveal, beans = secret);

nierozkªadalne: kick the bucket, shoot the breeze

(nie da si¦ powiedzie¢ the breeze was shot);

rzeczowniki zªo»one: car park;

nazwy wªasne: San Francisco;

swobodne

czasowniki zªo»one: look up (mo»na dowolnie modykowa¢);

poª¡czenia: make a mistake, ale nie do a mistake.

Frazy zinstytucjonalizowane

semantycznie i syntaktycznie niczym si¦ nie ró»ni¡,

natomiast statystycznie s¡ idiomami,

np. trac light, ale nie trac director, intersection regulator,

dodatkowo trac light (sygnalizacja) mogªoby oznacza¢ ±wiatªo do przekazywaniainformacji pomi¦dzy uczestnikami ruchu,

istnienie wyra»enia turn signal (kierunkowskaz) ogranicza trac light do znaczeniasygnalizacja.

1.1.5. Znakowanie ról semantycznych

Znakowanie ról semantycznych (ang. Semantic Role Labeling) to proces polegaj¡cy naokre±laniu i przypisywaniu frazom w zdaniu ról semantycznych (np. wykonawca, instrument,benecjent) wzgl¦dem odpowiadaj¡cego im czasownika. Na przykªad

[A0 John] [V gave] [A1 Mary] [A2 the book] [TMP on Christmas]

gdzie A0 reprezentuje daj¡cego, V reprezentuje czasownik, A1 reprezentuje benecjenta, A2reprezentuje obiekt dawany, natomiast TMP reprezentuje chwil¦, w której czynno±¢ nast¡-piªa. Jest to wa»ny problem w dziedzinie przetwarzania j¦zyka naturalnego, posiadaj¡cyliczne zastosowania, przede wszystkim w wydobywaniu informacji. Niestety jest to zadanietrudne; dotychczasowe metody s¡ powolne, a i tak nie charakteryzuj¡ si¦ wysok¡ skutecz-no±ci¡. Z aktualnych implementacji na uwag¦ zasªuguje projekt rozwijany przez CognitiveComputation Group3 na Uniwersytecie Illinois w Urbana-Champaign [48].

3http://cogcomp.cs.illinois.edu/

12

Page 17: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

1.1.6. Ontologie

Ontologia to dziaª lozoi zajmuj¡cy si¦ m.in istot¡ bytu, istnienieniem przedmiotów, a tak»enatur¡ rzeczywisto±ci. Ontologowie rozwa»aj¡ o jakich jednostkach mo»na powiedzie¢, »e ist-niej¡ i jak one mog¡ by¢ klasykowane w grupy i hierarchie. W informatyce i teorii informacjiontologia jest rozumiana jako wybór poj¦¢, znacze« i relacji, za pomoc¡ których reprezento-wana jest wiedza systemu. Je±li poj¦cia (ang. concept), obiekty i inne jednostki, które nale»¡do opisywanego fragmentu rzeczywisto±ci, a tak»e relacje, które wyst¦puj¡ pomi¦dzy nimi,okre±limy mianem upoj¦ciowienia (ang. conceptualization), to jego formalne przedstawienienazwiemy wªa±nie ontologi¡ [28].

Wa»nym terminem dotycz¡cym ontologii s¡ tzw. kategorie ontologiczne, w które s¡ or-ganizowane poj¦cia nale»¡ce do ontologi. Do jednej kategorii mo»e nale»e¢ wiele poj¦¢ (wtym podkategorii), a dwa poj¦cia A i B nale»¡ do tej samej (pewnej) kategorii je»eli dlapewnego zdania P(A), P(B) te» jest zdaniem. W informatyce, jedyn¡ kategori¦ najogólniej-sz¡ (tak¡, która zawiera wszystkie poj¦cia), je»eli istnieje, zwyczajowo nazywa si¦ Thing,natomiast kategori¦ do niej dualn¡, najbardziej szczegóªow¡ (tak¡, która zawiera si¦ w ka»dejinnej kategorii) nazywa si¦ Nothing.

1.2. Dotychczasowe badania

1.2.1. Korpusy Penn Treebank i PropBank

Penn Treebank [40] jest du»ym (ponad 4.5 miliona sªów) korpusem j¦zyka angielskiego ozna-kowanego cz¦±ciami mowy (POS, ang. part-of-speech) i nawiasowaniem syntaktycznym.Rozpocz¦ty w 1989 roku, szeroko rozpowszechniony 4, jest u»ywany do tej pory, mimo »e odko«ca lat 90 nie jest ju» rozwijany.

PropBank [44] jest ci¡gle rozszerzanym5 korpusem j¦zyka angielskiego zbudowanym nabazie Penn Treebank. R¦czne dodane oznaczenia, poza cz¦±ciami mowy i nawiasowaniem,zawieraj¡ dodatkowo role semantyczne fraz u»ytych w zdaniu. Ponadto zaª¡czona jest listaczasowników zawieraj¡ca opis ich argumentów. Jak pisz¡ autorzy: Otrzymany zbiór danychmo»e si¦ wydawa¢ niekompletny, gdy» nie zawiera koreferencji, kwantykacji i innych feno-menów wysokich rz¦dów, ale tak»e wyczerpuj¡cy w tym, »e pokrywa wszystkie przypadkiwszystkich czasowników u»ytych w korpusie i pozwala na wyliczanie reprezentatywnych sta-tystyk.

1.2.2. Formalizm HPSG

Head-Driven Phrase Structure Grammar to teoria modeluj¡ca j¦zyk naturalny za pomoc¡ukªadu wi¦zów, w której kluczow¡ rol¦ peªni¡ typowane wªa±ciwo±ci. Zapocz¡tkowana przezCarla Pollarda i Ivana A. Saga w 1987 na podstawie Generalized Phrase Structure Grammar,zostaªa uporz¡dkowana w 1994 roku [47]. Skªada si¦ z dwóch cz¦±ci: ustrukturyzowanej repre-zentacji kategorii gramatycznych oraz zbioru wi¦zów charakteryzuj¡cych zale»no±ci panuj¡cew j¦zyku [38]. Przykªadowy opis sªowa put mógªby wygl¡da¢ nast¦puj¡co6:

4Serwisy CiteSeerX (http://citeseerx.ist.psu.edu) oraz ACM Portal (http://portal.acm.org) podaj¡

odpowiednio po 1341 oraz 702 cytowa«.5Stan na rok 2010.6Ten i nast¦pny przykªad zostaªy zaczerpni¦te z [38].

13

Page 18: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

PHON <put>

S|L

CAT

HEAD 7

[verb

AUX

]

VAL

SUBJ < 4 NP 1 >

COMPS < 5 NP 2 , 6 PP 3 >

CONT

put-relation

PUTTER 1

THING-PUT 2

DESTINATION 3

Lingwistyczne wªasno±ci wyrazu zostaªy umieszczone w sekcji CATEGORY, z której mo»emywyczyta¢, »e put jest czasownikiem (ang. verb), którego podmiotem jest wyra»enie rzeczow-nikowe (NP, ang. Noun Phrase), a dopeªnieniami s¡ wyra»enie rzeczownikowe i wyra»e-nie przyimkowe (PP, ang. Preposition Phrase). Wªa±ciwo±ci semantyczne opisane w sekcjiCONTENT przypisuj¡ sªowu put relacj¦ put-relation wraz z odpowiednimi funkcjami, któres¡ poª¡czone z reszt¡ opisu za pomoc¡ przypisanych im numerów. Skrót S|L odpowiadaSYNSEM|LOCAL co znaczy lokalna cz¦±¢ wªasno±ci syntaktyczno-semantycznej. Odno±niki onumerach 4,5,6,7 ª¡cz¡ struktur¦ z reszt¡ tekstu, co wida¢ na przykªadowym rozkªadzie zda-nia John put a book on the table korzystaj¡cym z HPSG7 (opis czasownika put nie zostaªpowtórzony ze wzgl¦dów estetycznych):

SSYNSEM|LOC|CAT

HEAD 7

VAL

[SUBJ <>

COMPS <>

]

hhhhhhhhhhhh

((((((((((((

NP[PHON <John>

SYNSEM 4

]

John

VPSYNSEM|LOC|CAT

HEAD 7

VAL

[SUBJ < 4 NP>

COMPS <>

]

hhhhhhhhhhhhh

(((((((((((((V[

PHON <put>

S|L [· · · ]

]

put

NP[PHON <a book>

SYNSEM 5

]

a book

PP[PHON <on the table>

SYNSEM 6

]

on the table

7Przykªadem parsera korzystaj¡cego z HPSG mo»e by¢ program Enju rozwijany na wydziale informatyki

Uniwersytetu w Tokyo, http://www-tsujii.is.s.u-tokyo.ac.jp/enju/.

14

Page 19: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

1.2.3. Gramatyka kategorialna

Wymy±lona przez polskiego logika, Kazimierza Ajdukiewicza w 1934 roku [7, 8], pó¹niejrozwini¦ta przez Yehoshua'e Bar-Hillel w 1953 oraz Joachima Lambeka w [35], gramatykakategorialna (CG, ang. Categorial Grammar) jest systemem formalnym, który uchwycarelacje pomi¦dzy kategoriami (por. roz. 1.1.6) za pomoc¡ zale»no±ci funkcyjnych. Dlaprzykªadu, je»eli gramatyka generuj¡ca wyra»enia dla czasowników przechodnich podanaw BNF wygl¡daªaby nast¦puj¡co:

S ::= NP VP

VP ::= TV NP

TV ::= like, see, . . .

Saaa

!!!NP

John

VPQQ

TV

likes

NP

Mary

to analogiczna gramatyka w CG sprowadza si¦ do8:

like, see, . . . = (NP 7→ S)←[ NP

natomiast wyprowadzenie przeksztaªca si¦ w:

John

NPLex

likes(NP 7→ S)←[ NP

LexMary

NPLex

NP 7→ S>App

S<App

gdzie odpowiednie reguªy aplikacji mo»na zdeniowa¢ jak poni»ej:

X←[ Y YX

>AppY Y 7→ X

X<App

1.2.4. Formalizm CCG

Kombinatoryczna Gramatyka Kategorialna (CCG, ang. Combinatory Categorical Gram-mar) to nast¦pczyni CG, która rozszerza zestaw reguª, za pomoc¡ których mo»na ª¡czy¢(ang. combine) wyra»enia. Oprócz standardowych reguª aplikacji (A)

X←[ Y YX

>AY Y 7→ X

X<A

zostaªy doª¡czone reguªy kompozycji (C), koordynacji (Φ) oraz podnoszenia typu (T, ang.type rising) [54]

X←[ Y Y ←[ ZX←[ Z

>CX 7→ Y Y 7→ Z

X 7→ Z<C

X CONJ X

8 Notacja Ajdukiewicza AX Y Z

X Y Z =⇒ A zostaªa przeksztaªcona do notacji u»ywaj¡cej symbole / oraz

\, która jest standardowo u»ywana w literaturze dotycz¡cej CG i jej pochodnych, np. VP = TV/NP. Niestety,

notacja ta nie jest u»ywana jednakowo przez wyszystkich autorów, w szczególno±ci w cz¦±ci prac mo»emy

znale¹¢ zapis like = (NP\S)/NP, natomiast w innych like = (S\NP)/NP. Dla przejrzysto±ci i wygody

w dalszej cz¦±ci pracy nie b¦dzie u»ywana notacja Ajdukiewicza, ale zapis matematyczny dla funkcji, którym

nie przypisano nazwy. Dla przykªadu identyczno±¢ mogªaby zosta¢ przedstawiona jako id = x 7→ x, a czasownik

like jako like = (NP 7→ S)←[ NP.

15

Page 20: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

XY ←[ (X 7→ Y)

>TX

(Y ← [ X) 7→ Y<T

Pozwala to na przetwarzanie szczególnych zda« takich jak Give a teacher an apple anda policeman a ower9. W przytoczonym zdaniu szczególne jest to, »e zbitka wyrazowa ateacher an apple traktowana jest jak peªnoprawne wyra»enie.

a teacherNP

Lex

((S←[ NP)← [ NP) 7→ (S←[ NP)<T

an apple

NPLex

(S←[ NP) 7→ S<T

((S←[ NP)←[ NP) 7→ S<C

a policeman

NPLex

((S←[ NP)← [ NP) 7→ (S←[ NP)<T

a flowerNP

Lex

(S←[ NP) 7→ S<T

((S←[ NP)←[ NP) 7→ S<C

Give(S←[ NP)←[ NP

a teacher an apple

((S←[ NP)← [ NP) 7→ SandCONJ

a policeman a flower

((S←[ NP)←[ NP) 7→ S

((S←[ NP)←[ NP) 7→ SΦ

S<A

Wprowadzenie nowych kombinatorów rozszerza tak»e klas¦ j¦zyków rozpoznawalnych zbezkontekstowej dla CG do umiarkowanie kontekstowej10 (ang. mildly context-sensitive)dla CCG [59].

Rozwini¦cia CCG wprowadzaj¡ jeszcze wi¦cej operacji, m.in praw¡stronn¡ i lewostronn¡wersj¦ zªo»enia krzy»owego (ang. cross composition), a tak»e odpowiednie ograniczeniana ich stosowalno±¢. Z wielu prac warto zwróci¢ uwag¦ na TCCG [13], gdzie autor wpro-wadza hierarchiczn¡ struktur¦ typów, a caªo±¢ jest zaimplementowana jako poª¡czenie CCGi HPSG. Niestety, spójniki nadal s¡ obsªugiwane w specjalny sposób, za pomoc¡ kombinatorakoordynacji.

1.2.5. Gramatyka Montague

Gramatyka Montague to teoria ª¡cz¡ca skªadni¦ z semantyk¡. Pomysª opiera si¦ na zaªo»e-niu, »e j¦zyki naturalne mog¡ by¢ opisywane przez systemy formalne, w szczególno±ci je»eliskªadnia i semantyka byªyby pewnymi algebrami, to poszukiwanym obiektem jest homomor-zm mi¦dzy nimi. Przeªomem w dziedzinie okazaªo si¦ u»ycie kontynuacji, które pozwoliªyna naturalne traktowanie kwantykatorów sªownych, tzn. sªów takich jak wszyscy czy kto±jednolicie, razem z innymi wyra»eniami rzeczownikowymi [42]11. W przypadku zwykªej se-mantyki wyprowadzenie mogªoby wygl¡da¢ nast¦puj¡co:

9 Dla czytelno±ci wprowadzono pewne uproszczenia, takie jak wyprowadzanie wyra»e« a teacher reguª¡

Lex, czy zmodykowane wyra»enie dla give.10Przykªadem j¦zyka, który nale»y do klasy j¦zyków umiarkowanie kontekstowych, a nie nale»y do klasy

j¦zyków bezkontekstowych jest anbncndn|n ∈ N.11W literaturze dziedzinowej praca ta jest tradycyjnie oznaczana skrótem PTQ.

16

Page 21: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

leave(J) : taaa

!!!J : e

John

leave : e→ t

left

leave(J, office) : t`````

J : e

John

leave(•, office) : e→ tPPPPP

leave : e→ (e→ t)

left

office : e

oce

Jednak pojawiaj¡ si¦ istotne problemy z okre±leniem znaczenia dla everybody :

∀x leave(x)PPPP

everybody : ?

everybody

leave : e→ t

left

Takich problemów nie ma przy rozwi¡zaniu kontynuacyjnym zaproponowanym prez Monta-gue. Niech r b¦dzie typem kontynuacji, oraz C(x) = (x → r) → r, wtedy nowe znaczenieJohn mo»na przedstawi¢ jako J ′ = k 7→ k(J), a przykªadowe wyprowadzenia b¦d¡ wygl¡da¢jak poni»ej:

leave ′ = j k 7→ j(c 7→ k(leave(c)))

everybody = k 7→ ∀x k(x)

k 7→ k(leave(J)) : C(t)XXXXX

k 7→ k(J) : C(e)

John

leave ′ : C(e)→ C(t)

left

k 7→ ∀x k(leave(x))XXXXXX

everybody : C(e)

everybody

leave ′ : C(e)→ C(t)

left

17

Page 22: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 23: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rozdziaª 2

Podstawowe informacje o istotnych

cechach tekstów

Rozdziaª ten zostaª po±wi¦cony zademonstrowaniu ró»nych cech j¦zyka i napisanych w nimtekstów, które przydadz¡ si¦ w dalszej cz¦±ci pracy.

2.1. Przykªady zda«

W tej cz¦±ci zostan¡ przedstawione ¹ródªa danych sªu»¡cych do testowania algorytmów prze-twarzaj¡cych teksty, a tak»e przykªady zda« szczególnych. Dane, na których przeprowadzanotesty zostaªy opisane osobno w rozdziale 6.

2.1.1. Korpusy

Niezast¡pionym ¹ródªem zda« s¡ teksty, które s¡ dost¦pne w wersji elektronicznej na stro-nach projektu Wikisource (projekt-siostra Wikipedii) [6], a w±ród nich prace Marka Twaina,Charlesa Dickensa i innych pisarzy. Liczne teksty ¹ródªowe s¡ te» publikowane, przez stronyniezale»ne, czego przykªadem mo»e by¢ powie±¢ 1984 George'a Orwella [43]. Niestety danete nie s¡ w jakikolwiek sposób opracowane czy przystosowane do przetwarzania komputero-wego.

Wi¦cej informacji jest zawartych w specjalnie przygotowanych korpusach dla lingwistów.Do najwi¦kszych z nich nale»¡: korpus wspóªczesnego j¦zyka ameryka«skiego angielskiego(410 milionów sªów) [4], Brytyjski Korpus Narodowy (100 milionów sªów) [1] oraz korpusj¦zyka ameryka«skiego angielskiego czasopisma Time (100 milionów sªów) [3].

Korpusami specjalnie przeznaczonymi dla zada« NLP s¡ banki drzew, takie jak przedsta-wione w rozdziale 1.2.1 Penn Treebank czy PropBank. Wadami ich jest jednak dosy¢ maªyrozmiar.

2.1.2. Zdania z prac naukowych

Najciekawsze frazy mo»na jednak znale¹¢ w pracach naukowych, wybrane szczególne przy-padki, które obrazuj¡ wªasno±ci czy wyj¡tkowe zachowanie sªów. Oto kilka przykªadów:

19

Page 24: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Bever, 1970, [14]:The doctor sent for the patient arrived.The owers sent for the patient arrived.

Huybregts, 1976, [29]:. . . omdat ik Cecilia Henk de nijlpaarden zag helpen voeren.. . . poniewa» ja1 Cecilia2 Henk3 [te] hipopotamy4 widziaªem1 pomagaªa2 karmi¢3,4.. . . poniewa» widziaªem jak Cecylia pomagaªa Henkowi karmi¢ hipopotamy.

Shieber, 1985, [53]:. . . das mer d'chind em Hans es huss lönd hälfe aastriiche.. . . gdy» my1 [tym] dzieciom2 [tego] Hansa3 [tego] domu pozwolili±my1 pomóc2 malowa¢3.. . . gdy» my pozwolili±my dzieciom pomóc Hansowi pomalowa¢ dom.

Steedman, 2000, [54]:Give a teacher an apple and policeman a ower.

Partee, 2005, [45]:Endangered species are common.Endangered species are rare.

Partee, 2005, [45]:Few rules are both explicit and easy to read.Few rules are explicit and few rules are easy to read.

Poni»sze zdania pojawiaªy si¦ w ró»nych miejscach, ale niestety nie udaªo si¦ jednoznacz-nie ustali¢ ich ¹ródªa.

I saw her duck.

Iraqi head seeks arms.

They are hunting dogs.

Someone can fool everyone. (∃∀ versus ∀∃)

I will bring my bike tomorrow if it looks nice in the morning.

Ostatnie dwa przykªady pochodz¡ od Roberta Thorntona, z ksi¡»ki pt. Lexicon of Incon-spicously Ambiguous Recomendations i w humorystyczny sposób obrazuj¡ pewne subtelneró»nice semantyczne. Pierwszy przypadek dotyczy osoby wyj¡tkowo leniwej, a drugi osobytak w pracy nieefektywnej, »e lepiej pozostawi¢ stanowisko nieobsadzone.

In my opinion, you will be very fortunate to get this person to work for you.

I assure you that no person would be better for the job.

20

Page 25: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

2.1.3. Zdania ró»ne

Przetwarzanie j¦zyka naturalnego jest tematem trudnym. Aby dodatkowo podkre±li¢ ten fakt,w tej cz¦±ci zaprezentowano sentencje, których rozªo»enie nawet czªowiekowi zajmuje dªu»sz¡chwil¦ czasu. Wi¦kszo±¢ z nich pochodzi z konkursu na najgorsze zdanie organizowanegoprzez Denisa Duttona w latach 199519981.

Homi K. Bhabha, The Location of Culture, 1994, 55 wyrazów:

If, for a while, the ruse of desire is calculable for the uses of discipline soonthe repetition of guilt, justication, pseudo-scientic theories, superstition,spurious authorities, and classications can be seen as the desperate eort tonormalize formally the disturbance of a discourse of splitting that violatesthe rational, enlightened claims of its enunciatory modality.

Rob Wilson, The Administration of Aesthetics: Censorship, Political Criticism,and the Public Sphere, 1994, 68 wyrazów:

If such a sublime cyborg would insinuate the future as post-Fordist sub-ject, his palpably masochistic locations as ecstatic agent of the sublime su-perstate need to be decoded as the now-all-but-unreadable DNA of a fastdeindustrializing Detroit, just as his Robocop-like strategy of carceral ne-gotiation and street control remains the tirelessly American one of inictingregeneration through violence upon the racially heteroglossic wilds and othersof the inner city.

Judith Butler, Diacritics, 1997, 94 wyrazy:

The move from a structuralist account in which capital is understood tostructure social relations in relatively homologous ways to a view of hegemonyin which power relations are subject to repetition, convergence, and rearti-culation brought the question of temporality into the thinking of structure,and marked a shift from a form of Althusserian theory that takes structuraltotalities as theoretical objects to one in which the insights into the contin-gent possibility of structure inaugurate a renewed conception of hegemonyas bound up with the contingent sites and strategies of the rearticulation ofpower.

Stephen T. Tyman, Ricoeur and the Problem of Evil, in The Philosophy of PaulRicoeur, 1995, 112 wyrazów:

With the last gasp of Romanticism, the quelling of its orid uprisingagainst the vapid formalism of one strain of the Enlightenment, the dimmingof its yearning for the imagined grandeur of the archaic, and the dashingof its too sanguine hopes for a revitalized, fullled humanity, the horror ofits more lasting, more Gothic legacy has settled in, distributed and diusedenough, to be sure, that lugubriousness is recognizable only as languor, or asa certain sardonic laconicism disguising itself in a new sanctication of the

1http://denisdutton.com/bad_writing.htm

21

Page 26: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

destructive instincts, a new genius for displacing cultural reications in theinterminable shell game of the analysis of the human psyche, where nothingremains sacred.

Roy Bhaskar, Plato etc: The Problems of Philosophy and Their Resolution, 1994,131 wyrazów:

Indeed dialectical critical realism may be seen under the aspect of Foucaul-dian strategic reversal of the unholy trinity of Parmenidean/Platonic/Ari-stotelean provenance; of the Cartesian-Lockean-Humean-Kantian paradigm,of foundationalisms (in practice, deistic foundationalisms) and irrationa-lisms (in practice, capricious exercises of the will-to-power or some otherideologically and/or psycho-somatically buried source) new and old alike; ofthe primordial failing of western philosophy, ontological monovalence, and itsclose ally, the epistemic fallacy with its ontic dual; of the analytic problema-tic laid down by Plato, which Hegel served only to replicate in his actualistmonovalent analytic reinstatement in transgurative reconciling dialecticalconnection, while in his hubristic claims for absolute idealism he inauguratedthe Comtean, Kierkegaardian and Nietzschean eclipses of reason, replicatingthe fundaments of positivism through its transmutation route to the superi-dealism of a Baudrillard.

2.2. Formularze 10-K

Ameryka«ska Komisja Papierów Warto±ciowych (SEC, ang. U.S. Securities and ExchangeCommision) to agencja federalna Stanów Zjednoczonych nadzoruj¡ca rynek papierów war-to±ciowych. Zostaªa zaªo»ona w 1934 roku aby nie dopuszcza¢ do krachów takich jak tenz pa¹dziernika 1929 roku2, który byª jedn¡ z przyczyn Wielkiego Kryzysu (ang. Great De-pression).

Jednym z praw, za którego nadzór odpowiedzialna jest SEC, jest ustawa o obrocie papie-rów warto±ciowych z 1934 roku (ang. Securities Exchange Act of 1934 ). Prawo to narzucana rmy powy»ej pewnej ustalonej wielko±ci obowi¡zek do regularnego publikowania rapor-tów o swojej dziaªalno±ci [5]. Roczne podsumowania s¡ wypeªniane zgodnie z formularzem10-K [2], który zawiera istotne informacje o kondycji przedsi¦biorstwa.

Dokumenty te s¡ cz¦sto dªugie i napisane niezrozumiaªym j¦zykiem, a wielowyrazowezdania zawieraj¡ odniesienia pomi¦dzy rozdziaªami odlegªymi mi¦dzy sob¡ o wiele stron. Tei inne niedogodno±ci sprawiaj¡, »e przetwarzanie raportów 10-K przez ludzi jest wyj¡tkowokosztowne czasowo. Z drugiej strony dost¦pno±¢3 oraz informacje w nich zawarte sprawiaj¡, »es¡ to wr¦cz idealne zbiory danych do analizy biznesowej. Nic dziwnego wi¦c, »e formularzami10-K zainteresowali si¦ informatycy.

Ka»dy taki raport skªada si¦ z cz¦±ci zawieraj¡cej zestawienia podatkowe w postaci ta-bel i wykresów oraz cz¦±ci tekstowej, zawieraj¡cej informacje opisowe. Mogªoby si¦ wi¦cwydawa¢, »e porównanie dwóch rm to nic prostszego ni» zestawienie liczb z tych tabel.

2Data 24 pa¹dziernika 1929 jest popularnie nazwana czarnym czwartkiem.3Formularze s¡ dost¦pne on-line poprzez system EDGAR, http://www.sec.gov/edgar/searchedgar/

webusers.htm.

22

Page 27: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Niestety porównanie tabel wprost jest niemo»liwe nie tylko dlatego, »e zawieraj¡ one inne(cho¢ cz¦sto podobne) pola, ale tak»e dlatego, »e nawet pola o tej samej nazwie s¡ liczonew ró»ny sposób. Znowu, algorytm wyliczania zaszyty jest gdzie± w cz¦±ci tekstowej, podobniejak potrzebne do niego dane, co powoduje konieczno±¢ stosowania zaawansowanych metodekstrakcji informacji przy automatycznej analizie tych raportów.

Poni»ej zostaªy przedstawione zdania zaczerpni¦te z formularzy 10-K; w pierwszych trzechprzykªadach potencjalnie interesuj¡ce dane zostaªy zaznaczone kursyw¡.

The notes are unsecured, convertible into shares of common stock at $0.247 per share,and were issued with a 55% original issue discount totaling $2,190,400.

The properties where acquisition costs were impaired included the Company's LasAnimas claims in Mexico, and Rio Sur and Costa Rica claims in Chile.

This decrease was attributable in part to a stronger dollar during 2009 over 2008, inaddition to product support revenue recognized during scal 2008 which includeda favorable impact of approximately $0.3 million due to renewals for major customersthat were renewed after the contracts expired.

Amounts received as a return of capital are not included in calculating this portion ofthe incentive fee.

Fully diluted earnings (loss) per share is computed similar to basic income (loss) pershare except that the denominator is increased to include the number of common stockequivalents (primarily outstanding options and warrants).

On May 1, 2008, a total of 398,800 warrants, including 367,075 warrants held by X.Y.,were exercised at a price of $0.10 per share which resulted in the issuance of 398,800shares of restricted, unregistered common stock for a gross proceeds of $39,880.

Basic and diluted net loss per share calculations are presented in accordance withFinancial Accounting Standards Statement 128, and are calculated on the basis ofthe weighted average number of common shares outstanding during the period. Theyinclude the dilutive eect of common stock equivalents in years with net income.

Interest rate risk is dened as the sensitivity of our current and future earnings tointerest rate volatility, including relative changes in dierent interest rates, variabilityof spread relationships, the dierence in re-pricing intervals between our assets andliabilities and the eect that interest rates may have on our cash ows.

The information presented within these interim nancial statements may not includeall disclosures required by generally accepted accounting principles and the users ofnancial information provided for interim periods should refer to the annual nancialinformation and footnotes when reviewing the interim nancial results presented herein.

The base management fee of 1.75% is calculated based on the average value of ourtotal assets (other than cash or cash equivalents but including assets purchased withborrowed funds) at the end of the two most recently completed scal quarters, and

23

Page 28: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

appropriately adjusted for any share issuances or repurchases during the applicablescal quarter.

The rst, payable quarterly in arrears, equals 20% of our pre-incentive fee net invest-ment income (not including excise taxes), expressed as a rate of return on the value ofthe net assets at the end of the immediately preceding quarter, that exceeds a 1.875%quarterly (7.5% annualized) hurdle rate measured as of the end of each scal quarter.

The Facilities also include certain requirements relating to portfolio performance theviolation of which could result in the early amortization of the Facilities, limit furtheradvances (in the case of the Revolving Facility) and, in some cases, result in an eventof default, allowing the lenders to accelerate repayment of amounts owed thereunder.

For instance, we have to invest at least 70% of our total assets in qualifying assets,including securities of U.S. operating companies whose securities are not listed on a na-tional securities exchange (i.e., New York Stock Exchange, American Stock Exchangeand The NASDAQ Global Market), U.S. operating companies with listed securitiesthat have market capitalizations of less than $250 million, cash, cash equivalents, U.S.government securities and high-quality debt investments that mature in one year orless.

The market price of our common stock may uctuate signicantly in response to nu-merous factors, some of which are beyond our control, including the following: actualor anticipated uctuations in our operating results, changes in nancial estimates bysecurities analysts or our failure to perform in line with such estimates, changes inmarket valuations of other companies, particularly those that market services such asours, announcements by us or our competitors of signicant innovations, acquisitions,strategic partnerships, joint ventures or capital commitments, introduction of productenhancements that reduce the need for our products, departures of key personnel.

2.3. Typy semantyczne

Gdy w 1980 roku wszedª do kin lm Gwiezdne Wojny: Imperium Kontratakuje, to nikt nierozwodziª si¦ nad znaczeniem wypowiedzi jednego z bohaterów, Mistrza Yody, Stopped theymust be. On this all depends. Pomimo niepoprawnej kolejno±ci sªów w zdaniu Impossibleto see, the future is nie mamy problemu ze zrozumieniem go. Wynika z tego, »e kluczowainformacja potrzebna do przeczytania zdania mo»e nie zawiera¢ si¦ w porz¡dku wyrazów.

W j¦zyku polskim jednoznacznie zrozumiemy wszystkie z permutacji sªów pies, zjadª,jabªko, nawet t¡ sugeruj¡c¡ niepoprawne rozwi¡zanie, mianowicie Jaªbko zjadª pies. Wynikato jednak z odmiany sªów, a samo posiadanie tak wielu przypadków sprawia, »e ªatwiej jestujednoznaczni¢ zdanie i gramatyka mo»e by¢ mniej restrykcyjna ni» w innych j¦zykach. Aleju» w j¦zyku angielskim zdanie An apple ate a dog spowodowaªoby zdziwienie czytelnika.Gdy si¦ jednak popatrzy na porz¡dki An apple a dog ate czy A dog an apple ate, nie mamyw¡tpliwo±ci co one znacz¡. Mo»na by byªo nawet zaryzykowa¢ tez¦, w której zdziwienieczytelnika w poprzednim przykªadzie nie pochodziªoby od tre±ci, ale z niejednoznaczno±ci,któr¡ spowodowaªa niecodzienna kolejno±¢ wyrazów.

24

Page 29: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Je»eli si¦ przyjrze¢, sk¡d te informacje pochodz¡, dlaczego potramy z rozsypanki wy-razów odtworzy¢ caªe zdanie, to zobaczymy, »e najistotniejsze dane s¡ nast¦puj¡ce: 1) atejest czynno±ci¡, 2) a dog jest obiektem który t¡ czynno±¢ mo»e wykona¢, 3) an apple jestjednostk¡, która nie mo»e by¢ wykonawc¡ czynno±ci, ale na niej t¡ czynno±¢ wykona¢ mo»na.Id¡c tym tropem mo»na by podzieli¢ wszystkie poj¦cia na klasy w zale»no±ci od tego, w ja-kim kontek±cie znaczeniowym mog¡ one wyst¦powa¢. Kategorie te dalej b¦d¦ nazywaª typamisemantycznymi sªów.

Mo»na to rozwin¡¢ jeszcze bardziej. Gdy rozwa»ymy fraz¦ take it easy, mogliby±myjej przyporz¡dkowa¢ typ semantyczny sªowa relax. Jednak by by¢ konsekwentnym, trzebabyªoby podobnie zrobi¢ równie» z get up, get in, get out i innymi, co prowadzi do ozna-czenia typem semantycznym, ka»dego, dowolnie dªugiego ci¡gu sªów. Na przykªad typemsemantycznym poprzedniego zdania Pies zjadª jabªko mogªoby by¢ wydarzenie polegaj¡cena tym, »e pewien (zale»ny od kontekstu) pies zjadª pewne jabªko.

Problemem, który pojawia si¦ przy takim rozumieniu jest wprowadzenie odpowiednichtypów dla wyrazów nieposiadaj¡cych samodzielnych znacze«, takich jak przyimki. Powtarza-j¡c schemat za Kazimierzem Ajdukiewiczem, sªowa in oraz on znajduj¡ si¦ razem w pewnejkategorii, gdy» s¡ wymienne w zdaniu I hided the apple in/on the box, wi¦c powinny mie¢jakie± wspólne znaczenie, najlepiej inne ni» te sªowa, które s¡ wymienne w zdaniu I hidedthe apple . . . the box.

Rozwi¡zaniem mo»e by¢ wprowadzenie funkcyjnych typów semantycznych, tzn. je»eli Ai B s¡ typami semantycznymi, to A→ B te» nim jest. Gdy opisywane powy»ej typy seman-tyczne b¦d¡ dostatecznie dokªadne, to mo»na je rozwa»a¢ jako przybli»enia rzeczywistegoznaczenia wyrazów i w ten sposób zamiast drzewa wyprowadzenia wystarczyªoby wyra»enieopisuj¡ce typ caªego zdania. Takie wªa±nie przeksztaªcenie, od zdania, do jego typu seman-tycznego, b¦dzie obliczaª algorytm przedstawiony w rozdziale 5.

25

Page 30: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 31: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rozdziaª 3

Podstawy teoretyczne algorytmu

W tym rozdziale wprowadzono podstawowe denicje potrzebne do przedstawienia autorskiegoalgorytmu opisanego w rozdziale 5.

3.1. Kraty

Denicja 3.1.1 Krat¡ nazwiemy algebr¦ 〈L,∨,∧〉, w której binarne operacje ∨ i ∧ na-zywane odpowiednio supremum (ang. join) i inmum (ang. meet) s¡ przemienne,ª¡czne i pochªaniaj¡ce1

Na kratach mo»na zdeniowa¢ w naturalny sposób porz¡dek cz¦±ciowy poprzez a ≤b ⇐⇒ a∨ b = b lub równowa»nie a ≤ b ⇐⇒ a∧ b = a. Dziaªa to równie» w przeciwn¡stron¦, je»eli dany jest porz¡dek cz¦±ciowy 〈L,≤〉, w którym dla dowolnych dwóch elemen-tów a i b istnieje kres górny i kres dolny zbioru a, b, to okre±lenie a ∨ b = supa, b oraza∧ b = infa, b konstruuje krat¦ w sensie denicji 3.1.1.

Krat¦, w której istniej¡ elementy najmniejszy i najwi¦kszy (oznaczane zwyczajowo przez0 i 1) nazywamy krat¡ ograniczon¡. Naturalnie dla dowolnego a zachodzi wtedy

a∨ 0 = a a∧ 0 = 0

a∨ 1 = 1 a∧ 1 = a

Przykªadem kraty mo»e by¢ dowolna algebra Boole'a, w szczególno±ci ka»da rodzina zbio-rów domkni¦ta na teorio-mnogo±ciow¡ sum¦ i przeci¦cie sko«czonej liczby zbiorów. Je»elirodzina ta b¦dzie zawiera¢ dodatkowo zbiór pusty i sum¦ wszystkich zbiorów, to b¦dzie tokrata ograniczona. Relacj¡ cz¦±ciowego porz¡dku b¦dzie oczywi±cie relacja inkluzji.

Innym przykªadem mo»e by¢ zbiór liczb naturalnych, z ∨ = NWD i ∧ = NWW. Jest tokrata ograniczona z 0 = 0 i 1 = 1, natomiast a ≤ b ⇐⇒ b|a.

Przykªadem kraty, która nie jest ograniczona jest zbiór Rn z relacj¡ cz¦±ciow¡ a ≤ b zacho-dz¡cym wtedy i tylko wtedy, gdy wszystkie wspóªrz¦dne b majoryzuj¡ wszystkie wspóªrz¦dnea.

Warto zauwa»y¢, »e struktura kraty jest symetryczna, ze wzgl¦du na operacje ∨ i ∧,z czego wynika, »e je»eli 〈A,∨,∧〉 jest krat¡, to 〈A,∧,∨〉 te» jest krat¡. Dualno±¢ ta dziaªarównie» w przypadku krat ograniczonych i wtedy staªe 0 oraz 1 równie» zamieniaj¡ si¦ rolami.

1 Operator binarny R jest pochªaniaj¡cy, je»eli dla ka»dego x zachodzi xRx = x.

27

Page 32: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

3.1.1. Kraty rozdzielne

Denicja 3.1.2 Krat¡ rozdzieln¡ nazywamy krat¦, w której dla dowolnych elementówa, b, c speªnione s¡ równo±ci:

a∧ (b∨ c) = (a∧ b)∨ (a∧ c)

a∨ (b∧ c) = (a∨ b)∧ (a∨ c)

W kratach rozdzielnych te» zachowuje si¦ dualno±¢, w szczególno±ci równo±ci w denicji3.1.2 s¡ sobie równowa»ne [16].

Szczególnie wa»nym twierdzeniem w teorii krat jest twierdzenie reprezentacyjne Birkhoa,z którego wynika, »e ka»da krata rozdzielna jest izomorczna z krat¡ podzbiorów pewnegozbioru zale»nego od rozwa»anej kraty [15].

Wszystkie kraty z poprzedniego rozdziaªu s¡ przykªadami krat rozdzielnych. Przykªadykrat nierozdzielnych mo»na przedstawi¢ w postaci nast¦puj¡cych diagramów:

Ponadto ka»da krata nierozdzielna zawiera któr¡± z przedstawionych powy»ej krat jako pod-krat¦. Dla przykªadu zbiór 1, 2, 4, 5, 25, 100 uporz¡dkowany przez relacj¦ podzielno±ci roz-szerza si¦ do kraty nieprzemiennej. Przykªadem negatywnym mo»e by¢ porz¡dek liniowy〈1, 2, 3, 4, 5,≤〉, który tworzy krat¦ rozdzieln¡ »adne przedstawienie w postaci diamentulub pi¦ciok¡ta nie jest izomorczne z powy»szymi diagramami, gdy» zawiera kraw¦dzie po-przeczne.

3.1.2. Kraty dwuresztkowe

Denicja 3.1.3 Krat¡ dwuresztkow¡ (ang. biresiduated lattice, czasem okre±lan¡ mia-nem podwójnej algebry Heytinga, ang. double Heyting algebra) nazywamy krat¦, dlaktórej speªnione s¡ zale»no±ci:

∀ab ∃ c ∀ x . a ≤ b∨ x ⇐⇒ c ≤ x∀ab ∃d ∀ x, . a∧ x ≤ b ⇐⇒ x ≤ d

Przykªadem krat dwuresztkowych s¡ dowolne algebry Boole'a, gdzie c = a ∧ ¬b orazd = b ∨ ¬a. Okre±lenie c i d nie sprawia równie» problemów dla dowolnych rozdzielnychkrat sko«czonych, prosty rachunek potwierdza, »e c(a, b) =

∧y|a ≤ b ∨ y oraz d(a, b) =∨

y|a∧ y ≤ b speªniaj¡ warunki denicji 3.1.3. Operacje uzale»niaj¡ce c i d od a i b b¦d¡oznaczane odpowiednio ? i >.

28

Page 33: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

3.1.3. Wielomiany kratowe

Zanim zostan¡ zdeniowane wielomiany kratowe, zostanie wprowadzone jeszcze jedno poj¦ciepotrzebne do ich charakteryzacji.

Denicja 3.1.4 Przedziaªem nazwiemy podzbiór no±nika kraty L, zdeniowany jako[a, b] = x ∈ L|a ≤ x ≤ b.

Warto zauwa»y¢, »e przedziaª jest dobrze zdeniowany dla dowolnych krat, nie tylko roz-dzielnych, ale i ograniczonych. Jest tak»e zamkni¦ty na operacje∨ i∧, a wi¦c 〈[a, b],∨,∧, a, b〉tworzy podkrat¦2 ograniczon¡, w szczególno±ci dla krat ograniczonych zachodzi [0, 1] = L.

Denicja 3.1.5 Wielomianem kratowym nazwiemy dowoln¡ funkcj¦ f : Ln → L otrzy-man¡ ze skªadania operacji ∨ i ∧, staªych oraz rzutów.

W naturalny sposób funkcje te s¡ monotoniczne. Dla kraty trójelementowej 0 ≤ a ≤ 1,przykªadem wielomianu kratowego mog¡ by¢ f(x) = x, f(x) = 1, czy f(x, y) = x ∨ (a ∧ y).Ró»ne charakteryzacje wielomianów kratowych zostaªy przedstawione w [24], w±ród nichopisana poni»ej:

Twierdzenie 3.1.1 Funkcja f : Ln → L jest wielomianem kratowym wtedy i tylko wtedy,gdy

∀ c ∈ [f(0, . . . , 0), f(1, . . . , 1)] f(c, . . . , c) = c

Najbardziej interesuj¡c¡ charakteryzacj¡ jest jednak ta, wywodz¡ca si¦ jeszcze z reprezen-tacji wielomianów nad algebrami Boole'a, a rozszerzona do rozdzielnych krat ograniczonychprzez Goodsteina w [27]. Sformuªowana poni»ej wersja (tw. 3.1.2) nie zawiera zaªo»enia ogra-niczono±ci kraty i zostaªa udowodniona przez S. Rudeanu [49]; twierdzenie nast¦pne (3.1.3)pochodzi z tej samej pracy, jest natomiast przypisywane L. Löwenheimowi.

Denicja 3.1.6 Postaci¡ kanoniczn¡ wielomianu kratowego f nazywamy przedstawie-nie

f(x1, . . . , xn) =∨

i1,...,in

F(ii, . . . , in)∧ xi11 ∧ . . .∧ xinn

gdzie ik ∈ 0, 1 ⊂ N, a∧ x0 = a, a∧ x1 = a∧ x, a F(i1, . . . , in) s¡ elementami L takimi,»e

i1 ≤ j1, . . . , in ≤ jn implikuje F(i1, . . . , in) ≤ F(j1, . . . , jn)

Twierdzenie 3.1.2 Ka»d¡ funkcj¦ wielomianow¡ f : Ln → L nad krat¡ rozdzieln¡ mo»najednoznacznie zapisa¢ w postaci kanonicznej.

Twierdzenie 3.1.3 Niech F i G b¦d¡ wspóªczynnikami postaci kanonicznych wielomia-nów kratowych f i g. Wtedy

∀ x1, . . . , xn ∈ L f(x1, . . . , xn) ≤ g(x1, . . . , xn)

zachodzi wtedy i tylko wtedy gdy

∀ i1, . . . , in ∈ 0, 1 F(i1, . . . , in) ≤ G(i1, . . . , in)2Podkrata jest podalgebr¡ kraty, tzn. K jest podkrat¡ L, je»eli no±nik K jest podzbiorem no±nika L i jest

zamkni¦ty na operacje z L.

29

Page 34: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Prostym wnioskiem z twierdzenia 3.1.3 jest warunek na to»samo±¢ funkcji f i g. Dodatkowo,je»eli krata jest ograniczona, to dla k ∈ 0, 1 ⊂ L elementy

F(i1, . . . , in) = f(1, . . . ,n)

w trywialny sposób speªniaj¡ wymagane zaªo»enia. Wynika z tego, »e wielomian f : Ln →L nad rozdzieln¡ krat¡ ograniczon¡ jest jednoznacznie wyznaczony przez jego obci¦cie do0, 1n ⊂ Ln. Prawdziwe jest tak»e stwierdzenie odwrotne, tzn. ka»d¡ monotoniczn¡ funkcj¦0, 1n → L da si¦ rozszerzy¢ jednoznacznie do wielomianu kratowego [50].

3.1.4. Rozwi¡zywanie równa« w kratach

Problem rozwi¡zywania równa« i nierówno±ci w kratach byª rozwa»any ju» i z informatyczneji z matematycznej perspektywy. Schwarz w [52] rozstrzyga prawdziwo±¢ formuª postaci

Q1x1 . . . Qnxnf(x1, . . . , xn) = c

gdzie Qi ∈ ∀, ∃. Korzystaj¡c z twierdzenia 3.1.3 i monotoniczno±ci, sprowadza problem dodwóch wylicze« przetwarzanej formuªy, czego wynikiem jest algorytm wielomianowy.

Ka»d¡ równo±¢ mo»na sprowadzi¢ do nierówno±ci i odwrotnie, gdy» problemy te w kratachs¡ sobie równowa»ne

f = g ⇐⇒ f∨ g ≤ g∧ g

f ≤ g ⇐⇒ f∧ g = f ⇐⇒ f∨ g = g

Speªnialno±¢ pojedynczej nierówno±ci zostaªa ju» opisana w [27], ale dokªadna charaktery-zacja rozwi¡zania pochodzi od S. Rudeanu [49]. Poni»sze sformuªowanie zostaªo zaczerpni¦tez [50].

Twierdzenie 3.1.4 Niech L b¦dzie rozdzieln¡ krat¡ ograniczon¡, natomiast f, g : Ln → L

b¦d¡ wielomianami nad L. Wtedy nierówno±¢

f(x1, . . . , xn) ≤ g(x1, . . . , xn)

jest speªnialna wtedy i tylko wtedy gdy

f(0, . . . , 0) ≤ g(1, . . . , 1)

ponadto, takim przypadku rozwi¡zanie nierówno±ci charakteryzuje si¦ przez

f(0, 0, . . . , 0) ≤ g(0, 1, . . . , 1)∨ x1x1 ∧ f(1, 0, . . . , 0) ≤ g(1, 1, . . . , 1)

f(x1, . . . , xh−1, 0, 0, . . . , 0) ≤ g(x1, . . . , xh−1, 0, 1, . . . , 1)∨ xhxh ∧ f(x1, . . . , xh−1, 1, 0, . . . , 0) ≤ g(x1, . . . , xh−1, 1, 1, . . . , 1)

f(x1, . . . , xn−1, 0) ≤ g(x1, . . . , xn−1, 0)∨ xnxn ∧ f(x1, . . . , xn−1, 1) ≤ g(x1, . . . , xn−1, 1)

30

Page 35: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

W przypadku szczególnym, gdy krata L jest dwuresztkowa (por. roz. 3.1.2) dostajemyprostsz¡ charakteryzacj¦ rozwi¡zania, a mianowicie

f(0, 0, . . . , 0) ? g(0, 1, . . . , 1) ≤ x1x1 ≤ g(1, 1, . . . , 1) > f(1, 0, . . . , 0)

f(x1, . . . , xh−1, 0, . . .) ? g(x1, . . . , xh−1, 0, 1, . . .) ≤ xhxh ≤ g(x1, . . . , xh−1, 1, . . .) > f(x1, . . . , xh−1, 1, 0, . . .)

f(x1, . . . , xn−1, 0) ? g(x1, . . . , xn−1, 0) ≤ xnxn ≤ g(x1, . . . , xn−1, 1) > f(x1, . . . , xn−1, 1)

Wynika z tego, »e istnieje algorytm wielomianowy ze wzgl¦du na liczb¦ zmiennych, którysprawdza speªnialno±¢ równania, a nawet podaje rozwi¡zanie. Niestety problem ukªadu rów-na« lub nierówno±ci jest NP-zupeªny ju» dla kraty dwuelementowej 0, 1.

Niech L b¦dzie krat¡ dwuelementow¡ L = 〈0, 1,∨,∧, 0, 1〉, P(x1, . . . , xn) dowoln¡formuª¡ logiczn¡ w postaci CNF, a P ′(x1, y1, . . . , xn, yn) formuª¡ logiczn¡ utworzon¡ z Ppoprzez syntaktyczn¡ zamian¦ literaªów ¬xk na yk. Wtedy P jest speªnialna wtedy i tylkowtedy, gdy speªnialny jest ukªad równo±ci

P ′(x1, y1, . . . , xn, yn) = 1

x1 ∨ y1 = 1

x1 ∧ y1 = 0

...

xn ∨ yn = 1

xn ∧ yn = 0

Z tego powodu algorytm przedstawiony w rozdziale 5 b¦dzie korzystaª z metod heury-stycznych.

3.1.5. Kraty a ontologia

Standardowo hierarchia klas w ontologii jest grafem skierowanym i acyklicznym (DAG, ang.Directed Acyclic Graph) z super-¹ródªem i super-uj±ciem, wobec czego w naturalny sposóbposiada struktur¦ kraty ograniczonej. W tej pracy korze«, czyli superkoncept wszystkichpoj¦¢ (Thing) b¦dzie okre±lany jako element najwi¦kszy, natomiast poj¦cie do niego du-alne (Nothing) jako element najmniejszy. Dalej ∨ (supremum) b¦dzie operacj¡ najni»szegowspólnego przodka3 (LCA), a ∧ najwy»szego wspólnego potomka (GCD).

Poniewa» algorytm z rozdziaªu 5 b¦dzie potrzebowaª, aby hierarchia poj¦¢ ontologii byªakrat¡ rozdzieln¡, zostanie ona uzupeªniona o dodatkowe elementy, tak aby dla ka»dych dwóchpoj¦¢ istniaªo ich bezpo±rednie inmum. Na przykªad, gdyby w ontologii istniaªy obiektywinka, Skarbonka oraz ObiektCzerwony, to zostan¡ dodane obiekty [Skarbonka,winka],[ObiektCzerwony,winka], [Skarbonka,ObiektCzerwony] i [Skarbonka,winka,ObiektCzerwony].Szczegóªy implementacyjne zostan¡ omówione w cz¦±ci 5.4.3.

3W tym przypadku najni»szy wspólny przodek to najbardziej szczegóªowe poj¦cie, które jest superkoncep-

tem ka»dego z argumentów.

31

Page 36: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

3.2. Rachunek lambda

Rachunek lambda to formalizm zapocz¡tkowany przez Alonzo Churcha w latach 30 XX wieku,którego centralnym poj¦ciem jest funkcja. Rozwijany w celach stworzenia nowych formal-nych podstaw matematyki, okazaª si¦ wewn¦trznie sprzeczny [18]. Pomimo tego, notacjai semantyka λ-rachunku, wraz z rozwini¦tym pó¹niej rachunkiem lambda z typami prostymi(ang. simply typed λ-calculus) [19] staªa si¦ podstaw¡ j¦zyków programowania nazywanychfunkcyjnymi, w tym Lispa, MLa i Haskella.

3.2.1. Denicje

Niech V = x, y, z, . . . b¦dzie niesko«czonym, przeliczalnym zbiorem zmiennych.

Denicja 3.2.1 Wyra»eniem nazwiemy ci¡g znaków, który jest postaci

x je»eli x ∈ V

(λx.M) je»eli x ∈ V i M jest wyra»eniem

(MN) je»eli i M i N s¡ wyra»eniami.

Aby upro±ci¢ notacj¦, stosuje si¦ dodatkowe reguªy zapisu:

opuszcza si¦ niepotrzebne nawiasy, przy czym aplikacja ª¡czy si¦ w lewo, ((MN)P) =

MNP, ale (M(NP)) =M(NP), λx.(λy.(λz.MNP)) = λx.λy.λz.MNP;

λ wi¡»e tak daleko, jak to mo»liwe, (λx.MNP) = λx.MNP, ale (λx.MN)P nie da si¦upro±ci¢;

skleja si¦ powtarzaj¡ce si¦ λ, λx.λy.λz.MNP = λxyz.MNP.

Zbiór wszystkich wyra»e« b¦dzie oznaczany T . Wyra»enia rozwa»a si¦ z dokªadno±ci¡ donazw zmiennych, tzn. λxy.x ∼ λyz.y, a zbiór rozwa»anych termów jest tak naprawd¦ zbioremT /[∼]. Proces zamiany nazw zmiennych okre±lany jest mianem α-konwersji.

Denicja 3.2.2 Zmienne wolne FV wyra»enia M to zbiór, który jest okre±lony rekuren-cyjne wzgl¦dem budowy M:

FVx = x

FVλx.M = FVM − x

FVMN = FVM ∪ FVN

Denicja 3.2.3 Niewi¡»¡cym podstawieniem wyra»enia M na zmienn¡ x nazwiemyfunkcj¦ SxM : T → T okre±lon¡ przez:

SxM(x) =M

SxM(y) = y

SxM(NP) = SxM(N)SxM(P)

32

Page 37: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

SxM(λx.N) = λx.N

SxM(λy.N) = λy.SxM(N) je»eli y /∈ FVM.

Denicja 3.2.4 β-redukcj¡ nazwiemy transformacj¦, która dowolne podwyra»enie po-staci (λx.M)N przeksztaªca na SxN(M).

Niech y /∈ FVM, wtedy (λxy.x)MN →β (λy.M)N →β M, lub w skrócie (λxy.x)MN →∗β M(symbol ∗ oznacza dowoln¡ liczb¦ kroków redukcji). Rachunek lambda jest konuentnywzgl¦dem β-redukcji, tzn. je»eli A→∗β B i A→∗β C, to istnieje takie D, »e B→∗β D i C→∗β D[20]. Nie jest niestety ani silnie, ani sªabo normalizowalny, tzn. istniej¡ takie wyra»enia,które nie posiadaj¡ postaci normalnej (takiej, z której nie da si¦ wykona¢ »adnej redukcji).Przykªadem mo»e by¢ wyra»enie Ω = (λx.xx)(λx.xx), które redukuje si¦ do siebie samego.Aby nie dopuszcza¢ do takich patologicznych sytuacji, Church wprowadziª do λ-rachunkutypy proste.

3.2.2. Rachunek lambda z typami prostymi

Niech A b¦dzie zbiorem typów atomowych. Wtedy dowolne τ ∈ A nazywamy typem, orazje»eli α i β s¡ typami, to wyra»enie (α→ β) te» jest typem. Zb¦dne nawiasy s¡ opuszczane,przy czym operator → ª¡czy w prawo, tzn. ((α → α) → (α → α)) = (α → α) → α → α.Niech VA b¦dzie zbiorem zmiennych indeksowanych typami zbudowanymi na podstawie ty-pów atomowych A, tzn. je»eli A = τ, σ, wtedy VA = xτ, yτ, zτ, . . . , xσ, yσ, zσ, . . . , xτ→τ, . . . ,xτ→σ, . . . , xσ→τ . . . , xσ→σ, . . . , xτ→τ→τ, . . ..

Wtedy wyra»eniom zbudowanym na bazie zmiennych z VA mo»na przypisa¢ typy, wedªugreguª

xα jest typu α,

je»eli M jest typu β, to (λxα.M) jest typu α→ β,

je»eli M jest typu α→ β i N jest typu α, to (MN) jest typu β.

wyra»enia, które nie posiadaj¡ typu uwa»amy za niepoprawne.

Dla przykªadu wyra»enie (λxτ.xτxτ) jest niepoprawne, gdy» nie posiada typu (poniewa» xτxτnie posiada typu). Znowu (λxτ.xτ→τxτ) posiada typ τ → τ, ale xτ 6= xτ→τ s¡ ró»nymizmiennymi, w szczególno±ci FV(λxτ.xτ→τxτ) = xτ→τ.

Gdy b¦dziemy rozwa»a¢ tylko wyra»enia, dla których typ jest okre±lony, to taki sys-tem b¦dzie silnie normalizowalny, tzn. ka»de wyra»enie b¦dzie posiadaªo posta¢ normaln¡[55]. Wªasno±¢ silnej normalizacji w poª¡czeniu z konuencj¡ daje bardzo po»¡dan¡ w infor-matyce wªasno±¢, a mianowicie warto±¢ wyra»enia nie zale»y od kolejno±ci jego obliczania.Niestety, silna normalizacja implikuje te» brak zupeªno±ci w sensie Turinga. Ciekaw¡, cho¢niezwi¡zan¡ wªasno±ci¡ jest odpowiednio±¢ pomi¦dzy rachunkiem lambda z typami prostymi,a dowodami w logice intuicjonistycznej, zauwa»ona przez Haskella Curry i Williama AlvinaHowarda. Wraz z rozszerzeniem [36] o kategorie kartezja«sko-domkni¦te, zwana jest terazpopularnie odpowiednio±ci¡ Curry'ego-Howarda-Lambeka. Wi¦cej informacji na temat typo-wanego rachunku lambda i jego wariantów mo»na znale¹¢ w [12].

33

Page 38: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

3.2.3. Polimorzm

Polimorzm pojawia si¦ w informatyce w wielu kontekstach, a najwa»niejsze z nich to: po-limorzm w programowaniu obiektowym4, ad-hoc polimorzm5 oraz polimorzm parame-tryczny, którym chciaªbym si¦ zaj¡¢ w tej cz¦±ci. Poniewa» jest to temat bardzo szeroki,zagadnienie to b¦dzie tutaj zaledwie naszkicowane.

Rozwa»my ci¡g termów λxτ.xτ, λxσ.xσ, λxτ→τ.xτ→τ,. . . W oczywisty sposób termy te ª¡cz¡si¦ ze sob¡, jednak w rachunku lambda z typami prostymi nie da si¦ tego wyrazi¢. Polimorzmparametryczny wprowadza zmienne typowe (parametry), które znacznie uªatwiaj¡ sytuacj¦,np. poprzednia rodzina mogªaby by¢ przedstawiona jako ∀α λxα.xα, a rodzina termów okodzie λxy.x jako ∀αβ λxαyβ.xα.

Trzeba zaznaczy¢, »e sygnatury ∀αβ (α → α) → β → β i ∀α (α → α) → ∀β β → β s¡izomorczne tzn. je»eli kod pasuje do pierwszej sygnatury, to pasuje te» do drugiej.

Znowu sygnatury ∀αβ (β→ α)→ α oraz ∀α (∀β β→ α)→ α (kwantykator wyst¦pujepo lewej, kontrawariantnej stronie operatora →) izomorczne nie s¡. Na przykªad funk-cja λx.xx mogªaby mie¢ drug¡ z wymienionych sygnatur, ale nie istnieje kod, o sygnaturzepierwszej6.

Warto zwróci¢ uwag¦ tak»e, »e gdyby istniaªa funkcja f o pierwszej sygnaturze7 f :

∀αβ (β → α) → α, to f(λx.x) byªoby poprawnym wyra»eniem typu α. Z drugiej stronywyra»enie g(λx.x) dla g : ∀α (∀β β → α) → α nie posiada typu, gdy» β wyciekªaby pozazakres kwantykatora, którym jest zwi¡zana.

Zaskakuj¡cym faktem mo»e by¢, »e w wielu przypadkach z typu gªównego8 funkcji da si¦odtworzy¢ tre±¢ funkcji, np. program Lennarta Augustssona Djinn9 potra z typu

callCC : ∀abr ((a→ (b→ r)→ r)→ (a→ r)→ r)→ (a→ r)→ r

odtworzy¢ kod (po zmienieniu nazw zmiennych)

callCC = λ f k . f (λ xy . k x)(λ z . k z)

Zagadnienie to wi¡»e si¦ z systemami wspomagania dowodzenia10, typami zale»nych (ang.dependent types) i izomorzmem Curry'ego-Howarda-Lambeka.

Temat polimorzmu zostaª szeroko opisany w literaturze [41, 17, 12, 56]. Warta uwagijest praca [60], w które zawarto pewne praktyczne aspekty tego zagadnienia.

4Polimorzm w programowaniu obiektowym oznacza w uproszczeniu mo»liwo±¢ podstawiania instancji

jednej klasy w miejsce innej, wi¡»e si¦ to z zagadnieniem dziedziczenia, a tak»e z tzw. duck typing, sposobem

typowania dynamicznego.5Polimorzm ad-hoc nie ma ±cisªej denicji, w przybli»eniu jest to zestaw technik, które pozwalaj¡ m.in

na rzutowania czy na przeci¡»anie operatorów i nazw funkcji.6 Formuªa logiczna ∀ab (b =⇒ a) =⇒ a nie jest prawdziwa dla a = faªsz i b = faªsz, a wi¦c z izomorzmu

Curry'ego-Howarda, funkcja o danej sygnaturze nie istnieje.7 Na przykªad gdyby±my wprowadzili do sytemu warto±¢ nil : ∀α.α, to λx.nil byªoby tak¡ funkcj¡.8Typ gªówny to najogólniejszy typ dla danego ciaªa funkcji.9http://www.augustsson.net/Darcs/Djinn/10Na przykªad Coq, http://coq.inria.fr/.

34

Page 39: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

3.3. Algorytm CKY

Algorytm CKY (lub te» CYK, od Cocke-Kasami-Younger) to algorytm parsowania gramatykbezkontekstowych dziaªaj¡cy w trybie bottom-up. Zostaª opisany w latach 60 XX wiekuniezale»nie trzy razy [21, 31, 62]. Czas jego dziaªania wynosi O(kn3), gdzie n jest liczb¡przetwarzanych sªów (tokenów), a k jest rozmiarem gramatyki11.

Idea algorytmu oparta jest na zasadzie programowania dynamicznego. Niech G b¦dziegramatyk¡ w postaci normalnej Chomskiego, a α1, . . . , αn danymi wej±ciowymi algorytmu.Kluczow¡ cz¦±ci¡ algorytmu jest tablica dwuwymiarowa trójk¡tna, która w polu (i, j) prze-chowuje zbiór symboli nieterminalnych, z których mo»na wyprowadzi¢ ci¡g symboli termi-nalnych αi, . . . , αi+j−1 (zaczynaj¡cy si¦ w i i dªugo±ci j). Na przykªad pole (i, 1) b¦dzieprzechowywa¢ wszystkie nieterminale A, dla których (A→ αi) ∈ G. Wyliczenie pola re-prezentuj¡cego wyprowadzenie dªugo±ci j korzysta tylko od wyprowadze« mniejszej dªugo±ci(i, j) = A|(A→BC) ∈ G,B ∈ (i, k), C ∈ (i+ k, j− k), co prowadzi do prostej implementacjiza pomoc¡ trzech p¦tli iteruj¡cych odpowiednio indeksy j, i, k oraz czwartej p¦tli przecho-dz¡cej reguªy gramatyki. Testy B ∈ (i, k) i C ∈ (i + k, j − k) realizuje si¦ w czasie staªym,zapisuj¡c zbiory symboli w postaci ich wektora charakterystycznego.

S→ NP VP

NP → JJ NP

NP → NP PP

NP → DT NN

VP → VB NP

PP → IN NN

Ze wzgl¦du na ªatwo±¢ modykacji, rozszerzenia tego algorytmu maj¡ szerokie zasto-sowania, w tym do przetwarzania bezkontekstowych gramatyk probabilistycznych (PCFG),gramatyk umiarkowanie kontekstowych, HPSG i innych [34, 25, 22].

11Trzeba zaznaczy¢, »e podana zªo»ono±¢ dotyczy gramatyk w postaci normalnej Chomskiego lub analogicz-

nych, dla dowolnej CFG zªo»ono±¢ wynosi O(k2n3) [37].

35

Page 40: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 41: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rozdziaª 4

Sªaba semantyka

Algorytm przedstawiony w rozdziale 5 opiera si¦ na nowym sposobie opisu znacze«, który napotrzeby tej pracy zostanie nazwany sªab¡ semantyk¡. Jest to pomysª autorski i najwa»niej-sza ró»nica pomi¦dzy prezentowanym algorytmem, a dotychczas stosowanymi rozwi¡zaniamiw dziedzinie przetwarzania j¦zyka naturalnego.

Sªaba semantyka przede wszystkim b¦dzie form¡ semantyki j¦zyka naturalnego. Sªowomb¦d¡ przypisywane znaczenia, a te b¦d¡ ª¡czone w znaczenia fraz i wreszcie caªych zda«. Zdrugiej strony podstawow¡ jednostk¡ b¦d¡ typy semantyczne, czyli tylko przybli»enia znacze«zamiast zamiast konkretnych poj¦¢.

Dla przykªadu zdanie: A dog ate an apple b¦dzie miaªo znaczenie wydarzenie po-legaj¡ce na tym, »e pewien pies zjadª pewne jabªko, co nie jest zaskakuj¡ce, ale zdanie:Christopher Columbus discovered America b¦dzie miaªo znaczenie wydarzenie polega-j¡ce na tym, »e pewien czªowiek odkryª pewne miejsce. Nie jest to jednak problemem, gdy»przy wystarczaj¡co dokªadnej ontologii znaczenie tego zdania mogªoby si¦ przedstawia¢ jakowydarzenie polegaj¡ce na tym, »e pewna osoba z grupy ludzi o nazwisku Krzysztof Ko-lumb odkryªa pewne miejsce z grupy kontynentów o nazwie Ameryka, czyli wystarczaj¡codokªadnie aby zidentykowa¢ konkretne obiekty.

Dodatkowym uzasadnieniem okre±lenia sªaba jest fakt, »e zostanie wprowadzony pewienelement syntaktyki. Otó» inaczej b¦dzie traktowane poª¡czenie AB ni» BA. Wywodzi si¦ tost¡d, »e w j¦zyku naturalnym kolejno±¢ wyrazów gra du»¡ rol¦ (np. The man killed thedragon versus The dragon killed the man).

Nie jest to jednak tylko rozró»nienie skªadniowe. Dla przykªadu operacja odejmowania −

inaczej traktuje argument lewostronny ni» prawostronny. Mogªoby si¦ wydawa¢, »e przedsta-wienie − w notacji polskiej jako −(a, b) rozwi¡zuje problem i »e stosowanie notacji inksowejjest tylko tzw. lukrem syntaktycznym. Nie jest to jednak prawda. Gdyby operator odej-mowania przyjmowaª zmienn¡ liczb¦ argumentów i z prawej i z lewej strony, to odpowiednizapis musiaªby je rozró»nia¢, np. ±rednikiem −(a1, . . . , an;b1, . . . , bm). Wprowadza to jed-nak sztuczne granice tam, gdzie istnieje naturalny podziaª na lewostronne i prawostronneargumenty1.

1Gdyby pomy±le¢ o ontologii jako o klasykatorze argumentów, to ilo±¢ ich rodzajów b¦dzie du»o wi¦ksza,

w dodatku zmienna zale»nie od rozwa»anego operatora. Bior¡c to pod uwag¦, naturalnym pomysªem byªoby

wprowadzanie oddzielnych typów semantycznych dla prawych i lewych argumentów. Rozwi¡zanie to byªo

rozwa»ane, jednak w pewnym sensie zewn¦trzny podziaª na argumenty prawo i lewostronne zdecydowanie

zwi¦kszaª czytelno±¢ zapisu.

37

Page 42: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Sªaba semantyka jest syntez¡ wielu zagadnie«, w±ród nich:

gramatyki kategorialnej z której wywodzi si¦ gªówny pomysª, w szczególno±ci CGda si¦ naturalnie zanurzy¢ w sªab¡ semantyk¦;

gramatyki Montague która traktuje sªowa jako funkcje;

programowania funkcyjnego gdy» znaczeniami sªów b¦d¡ programy, a sªaba seman-tyka jest w rzeczywisto±ci funkcyjnym j¦zykiem programowania zupeªnym w sensieTuringa;

rachunku lambda poniewa» semantyka tego j¦zyka programowania (sªabej seman-tyki) b¦dzie w znacznej mierze oparta na rachunku lambda i jego modykacjach;

teorii typów gdy» przetwarzanymi obiektami b¦d¡ typy.

Z tego powodu poszczególne konstrukcje b¦d¡ najpierw przedstawiane intuicyjnie w kolejnychpodrozdziaªach, natomiast formalna specykacja caªo±ci znajduje si¦ w cz¦±ci 4.5. Na ko«cu,w punkcie 4.6 zaª¡czona jest przykªadowa gramatyka rozpoznaj¡ca j¦zyk bncndnen, n ≤ 1oraz wyprowadzenie ci¡gu bbccddee.

4.1. Konstrukcje statyczne

Dla obiektów konkretnych takich jak pies lub jabªko przypisanie sªabego znaczenia nie spra-wia trudno±ci w tym przypadku b¦dzie to po prostu najbardziej szczegóªowa kategoriaontologiczna opisuj¡ca dany obiekt. Poniewa» ontologia mo»e zawiera¢ dowolnie abstrakcyjneterminy, wi¦c podobne znaczenie mo»na przypisa¢ równie» czynno±ciom czy okre±leniom i b¦-dzie to dalej nazywane znaczeniem podstawowym. Pojedyncze sªowo mo»e posiada¢ wieleznacze« podstawowych, tak jak pojedyncze sªowo mo»e nale»e¢ do ró»nych kategorii grama-tycznych.

Jednak gdy porównamy znaczenie wyra»e« apple i an apple, to mo»na uzna¢, »e jestono dosy¢ podobne2 (np. Fruit). W zwi¡zku z tym mo»na byªoby t¡ fraz¦ potraktowa¢jako aplikacj¦ an(apple) i przypisa¢ an znaczenie f, gdzie f jest jedyn¡ funkcj¡ o sygnatu-rze f : Fruit → Fruit. Podobnie mo»na byªoby post¡pi¢ z sªowem go i fraz¡ go back,przypisuj¡c back znaczenie g : Go → Return. Zauwa»my jednak, »e aplikacja biegniew tym przypadku jakby w drug¡ stron¦, tzn. trzeba by byªo napisa¢ (go)back. Z tegopowodu wprowadzamy funkcje prawostronne i lewostronne oraz takie» same operatory apli-kacji3. Res ←[ Arg oznacza prawostronn¡ (przyjmuj¡c¡ argument z prawej strony) wersj¦jedynej funkcji o sygnaturze Arg → Res, natomiast Arg 7→ Res jej lewostronn¡ siostr¦.Wyra»enia te mo»na ª¡czy¢, tzn. (A ←[ B) 7→ A oznacza jedyn¡ funkcj¦ g o sygnaturzeg : f → A, gdzie f jest zdeniowana jako A ← [ B. Odpowiednie wersje aplikacji b¦d¡zapisywane jako f≪ Arg i Arg≫ f, na przykªad:

2Zbyt podobne, aby chcie¢ je rozró»nia¢.3 Podobie«stwo z notacj¡ z rozdziaªu 1.2.3 jest zamierzone.

38

Page 43: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

apple = Fruit

an = Fruit←[ Fruit

an≪ apple = Fruit

go = Go

back = Go 7→ Return

go≫ back = Return

john = Person

ate = Person 7→ EventOfEating←[ Fruit

ate≪ apple = Person 7→ EventOfEating

john≫ ate = EventOfEating←[ Fruit

john≫ ate≪ apple = EventOfEating

X = ((Y ←[ C)←[ B)←[ A

X≪ A = Y ←[ C←[ B

X≪ A≪ B = Y ←[ C

X≪ A≪ B≪ C = Y

Jak zostaªo przedstawione powy»ej, sªowu ate przypisano pewne znaczenie, nie jest tojednak znaczenie podstawowe (nie jest kategori¡ ontologiczn¡). Nazwiemy je znaczeniempobocznym, pomimo tego, »e to ono tworzy szkielet gramatyki. Uzasadnieniem jest fakt, »ew sªabej semantyce ka»dy wyraz b¦dzie miaª znaczenie podstawowe (cho¢by Unknown), alenie ka»dy b¦dzie miaª znaczenie poboczne. Dodatkowo znaczenia poboczne b¦d¡ zale»e¢ odznacze« podstawowych, np.

drive = Drive01 | Drive02 | Drive03

Drive01 = (Driver 7→ Process)←[ Vechicle

Drive02 = (Driver 7→ Event)←[ Object

Drive03 = ((Causer 7→ Event)←[ Feeling)←[ Patient

| ((Causer 7→ Event)← [ Patient)←[ Feeling

Z czego mo»na wyczyta¢, »e sªowo drive ma 3 znaczenia podstawowe4, przy czym pierwszedwa maj¡ po jednym znaczeniu pobocznym5, a znaczenie trzecie ma dwa znaczenia po-boczne6.

W gramatykach zdarzaj¡ si¦ produkcje, które przeksztaªcaj¡ jeden nieterminal na jedennieterminal np. Actor→ Person|Animal|Company|..., co tworzy pewnego rodzaju hierar-chi¦. W przypadku sªabej semantyki rozwi¡zane jest to przez ontologi¦, np. gdyby applebyªo sklasykowane jako Apple, natomiast an = Fruit← [ Fruit, to aplikacja an(apple) by-ªaby nadal poprawna. Aby by¢ ±cisªym znaczenie Fruit←[ Fruit trzeba rozszerzy¢ do jedynejfunkcji o sygnaturze x|x ≤ Fruit → Fruit. Dotyczy to równie» wyra»e« zªo»onych, przy

4 Wybrane znaczenia odpowiadaj¡ kierowaniu, uderzaniu i wprowadzaniu w pewien stan uczucia.5Na przykªad John drives a bus i John drove a ball far away.6Odpowiednio John drives me mad i John drives mad everyone.

39

Page 44: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

czym R1 ←[ A1 ≤ R2 ←[ A2 wtedy i tylko wtedy, gdy R1 ≤ R2 i A2 ≤ A1 (uwaga na zamian¦kolejno±ci przy argumentach). Podobnie A1 7→ R1 ≤ A2 7→ R2 wtedy i tylko wtedy R1 ≤ R2i A2 ≤ A1. Na przykªad najbardziej ogólne funkcje (te, których kategoria jest najbardziejobszerna i zarazem najmniej szczegóªowa) to Nothing 7→ Thing i Thing←[ Nothing. atwosprawdzi¢, »e otrzymane wyra»enia tworz¡ krat¦ rozdzieln¡, a tak»e ograniczon¡, je»eli si¦przyjmie, »e Thing jest wi¦ksze i Nothing mniejsze od ka»dego typu (ª¡cznie z funkcyjnym).

Sªowem, które szczególnie mogªoby skorzysta¢ na wprowadzonej hierarchii jest spójnikand, gdy» mo»na by mu byªo przypisa¢ znaczenie And = Thing 7→ (Thing ← [ Thing).Powoduje to jednak do±¢ istotny problem, a mianowicie zbyt du»¡ utrat¦ informacji. Dlazwykªych sªów udaje si¦ go prosto rozwi¡za¢ tworz¡c szereg wyra»e« AndFruit = Fruit 7→Fruit ←[ Fruit. Zauwa»my, »e nie potrzebujemy rozró»nienia na AndAFO = Apple 7→Fruit ← [ Orange, gdy» poprzednia reguªa mo»e zosta¢ zastosowana dzi¦ki wprowadzonejhierarchii, a otrzymana utrata informacji jest dokªadnie taka, jakiej potrzebujemy7.

Niestety nie rozwi¡zuje to przypadków takich jak John bought an apple and ate it,poniewa» potencjalnie musieliby±my utworzy¢ niesko«czenie wiele reguª dla and (dla A 7→ A,dla A 7→ A 7→ A, . . . ). Problem ten pojawiª si¦ równie» w CCG i zostaª rozwi¡zany poprzezwprowadzenie dodatkowego operatora Φ = X CONJ X (por. roz. 1.2.4), tutaj za± zostanierozwi¡zany za pomoc¡ polimorzmu.

4.2. Zmienne i aplikacja

Wzoruj¡c si¦ na wyra»eniach przedstawionych w rozdziale 3.2.3 wprowadzimy do systemuzmienne8, np. and =

`α α 7→ α ←[ α. Pomimo oczywistych korzy±ci rozwi¡zanie to

posiada pewne minusy.

Pierwszym z nich jest pogª¦biaj¡ca si¦ zªo»ono±¢ zagadnienia. Odtworzenie porz¡dku cz¦-±ciowego ≤ na termach ze zmiennymi jest du»o trudniejsze, tym bardziej, »e pod zmienne mo-»emy podstawia¢ nie tylko wyra»enia statyczne, ale caªe termy równie» zawieraj¡ce zmienne.Samo rozszerzenie relacji ≤ nie jest trywialne i zostanie przedstawione w rozdziale 4.5.

Drugim problemem s¡ wyra»enia rodzaju a very, dla a =`α α ←[ α. Aby nie dopu-

±ci¢ do takich zbitek wyrazowych, wprowadzamy ograniczenia na zbiory warto±ci jakie mo»eprzyjmowa¢ zmienna. Np. a =

`α ∈ [Nothing,Object] α←[ α. Nazywa si¦ to kwantyka-

cj¡ ograniczon¡ (ang. bounded quantication) i niestety prowadzi do pewnych powa»nychproblemów obliczeniowych, które b¦d¡ poruszone w rozdziale 5.3.

Wprowadzenie zmiennych otwiera nowe mo»liwo±ci, a wyra»enia staj¡ si¦ bardzo podobnedo zwykªego rachunku lambda brakuje jedynie aplikacji. Okazuje si¦ jednak, »e aplikacjastaje si¦ niezb¦dna, aby sensownie przetwarza¢ stron¦ biern¡ bez uciekania si¦ do zewn¦trz-nych, dodatkowych operatorów jak w CCG. Jak ªatwo si¦ domy±li¢, oznaczana b¦dzie przez≪ i ≫, a przykªad zastosowania znajduje si¦ poni»ej.

7 W przybli»eniu fraza A and B ma najbardziej szczegóªowe znaczenie, które jest zarówno znaczeniem A

jak i B, np. w Gary Kasparov and Deep Blue performed really well poª¡czenie daje Wykonawca, natomiast

dla podwyra»enia w John and the piano were both the same age mo»emy opisa¢ wiek, ale nie mo»e ono

okre±la¢ wykonawcy czynno±ci (tak jak John), ani na instrumentu, na którym si¦ gra.8Zamiast symbolu ∀ zostaª u»yty symbol

`, gdy» jak si¦ oka»e w rozdziale 4.5 nie b¦dzie to dokªadnie

kwantykator, ponadto znak ∀ b¦dzie u»ywany tak»e w innym kontek±cie.

40

Page 45: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

was =hα ∈ [Nothing, Thing]

hγ ∈ [Nothing, Thing]

hβ ∈ [Nothing,Actor 7→ γ←[ α]

α 7→ (PassiveVoiceActor≫ (β≪ α))←[ β

was≪ eaten = Fruit 7→ EventOfEating

(an≪ apple) ≫ (was≪ eaten) = EventOfEating

4.3. Wªa±ciwo±ci

Kolejn¡ konstrukcj¡ sªabej semantyki s¡ wªa±ciwo±ci. Rozszerzamy krat¦ kategorii o typypostaci A[ident = t], gdzie A nale»y do kraty kategorii, t jest dowolnym typem, a ident na-le»y do pewnego dowolnego sko«czonego, ale ustalonego zbioru identykatorów. Dodatkowookre±lamy, »e je»eli pewien identykator (w szczególno±ci gdy »aden) nie jest okre±lony, towªa±ciwo±¢ ma warto±¢ Thing, tzn. A = A[ident = Thing] = A[ident1 = Thing[ident2 =

Thing]][ident3 = Thing], ponadto

(hα t1)[ident = t2] =

hα (t1[ident = t2])

(t1 7→ t2)[ident = t3] = t1 7→ t2[ident = t3]

(t1 ←[ t2)[ident = t3] = t1[ident = t3]←[ t2

Wªa±ciwo±ci pozwalaj¡ na wygodne specykowanie szczegóªowych kategorii, np. Loss[net =True][diluted = True], ale tak»e upraszczaj¡ ekstrakcj¦ informacji, np.

Drive01 =hα ∈ [Nothing,Actor]

hβ ∈ [Nothing, Vechicle]

α 7→ Process[rel = Drive01][driver = α][vechicle = β]←[ β

john≫ drive≪ (a≪ bus) = Proces[rel = Drive01][driver = John][vechicle = Bus]

Aby wygodnie korzysta¢ z wªa±ciwo±ci dodatkowo wprowadzone zostaªy wyra»enia t1.ident,takie, »e (t1[ident = t2]).ident = t2.

4.4. Operatory g i f

Z powodu niskiej efektywno±ci i problemów implementacyjnych dotycz¡cych powy»ej przed-stawionej teorii, uproszczono obsªug¦ zmiennych i w zamian wprowadzono dwa nowe opera-tory.

Kªopotliw¡ operacj¡ byªo porównanie dwóch zmiennych, oraz zmiennej i wyra»enia. Utrzy-mywanie wyra»e« postaci

`α ∈ [Nothing, β]t1 dla pewnej zmiennej β byªo nieefektywne,

41

Page 46: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

z tego powodu okre±lono now¡ relacj¦ porz¡dku cz¦±ciowego 4∗ , w której dla dwóch zmien-nych α i β zachodzi α 4∗ β ⇐⇒ α = β.

Problem ze zbyt du»¡ dowolno±ci¡ przy warto±ciowaniu α w wyra»eniach, takich jakand = α 7→ α←[ α, zostaª rozwi¡zany poprzez jeszcze bardziej restryktywn¡ wersj¦ porz¡dkucz¦±ciowego 4 , dla której α 4 t1 ⇐⇒ α = t1 i t1 4 α ⇐⇒ α = t1. Aby odzyska¢poprzednie znaczenie and, zostaªy wprowadzone operatory g i f, odpowiednio supremumi inmum z kraty wyra»e«, odpowiednio rozszerzone na zmienne, np. and = α 7→ αgβ←[ β.

Wprowadzenie operatorów kratowych do wyra»e« spowodowaªo wyra¹ny wzrost efektyw-no±ci, ale niestety powa»ne problemy teoretyczne, gdy» relacje9 4 musz¡ by¢ okre±lonerównie» na wielomianach kratowych (por. roz. 3.1), co prowadzi do ukªadów równa« nakratach opisanych w rozdziale 3.1.4.

4.5. Formalna denicja

Niech Onto b¦dzie zbiorem wszystkich kategorii opisanych w ontologii, a ≤, ∨, ∧ odpowied-nio porz¡dkiem cz¦±ciowym, supremum i inmum okre±lonymi na Onto. Niech c =Onto t

b¦dzie oznaczaªo, »e jakie± znaczenie podstawowe c wedªug ontologi Onto posiada znaczeniepoboczne t. Niech V b¦dzie niesko«czonym i przeliczalnym zbiorem zmiennych a, b, c, . . .,a C odpowiadaj¡cym mu zbiorem staªych Skolema α,β, γ, . . .. Niech I b¦dzie pewnymsko«czonym zbiorem identykatorów.

Niech T b¦dzie zbiorem termów typowych, a B zbiorem termów Boole'owskich, okre±lo-nych rekurencyjnie jak poni»ej:

V, C, Onto ⊂ T zmienne i staªe

t1, t2 ∈ T =⇒ (t1 7→ t2) ∈ T , (t1 ←[ t2) ∈ T funkcje

t1, t2 ∈ T , =⇒ (t1 ≪ t2), (t1 ≫ t2) ∈ T aplikacja

t1, t2 ∈ T , ident ∈ I =⇒ t1[ident = t2] ∈ T wªa±ciwo±ci

t1 ∈ T , ident ∈ I =⇒ t1.ident ∈ T pobieranie wªa±ciwo±ci

t1, t2 ∈ T , =⇒ (t1 g t2), (t1 f t2) ∈ T supremum i inmum

t1, t2, t3 ∈ T , p1 ∈ B, x1 ∈ V =⇒ (`x1 ∈ [t1, t2] : p1t3) ∈ T zakres zmiennych

t∗ ∈ T , ti ∈ T dla i ∈ I, =⇒ 〈t∗; ti, . . .〉 ∈ T pomocnicze krotki dªugo±ci 1+ |I |

tt, ff ∈ B prawda i faªsz

p1, p2, . . . , pk ∈ B =⇒ [p1, p2, . . . , pk] ∈ B koniunkcja

t1, t2 ∈ T =⇒ (t1 4∗ t2), (t1 4 t2), (t1 = t2) ∈ B równania

t1, t2 ∈ T , p1, p2 ∈ B, x1 ∈ V =⇒ (∀x1 ∈ [t1, t2] : p1p2) ∈ B kwantykacja ogólna

t1, t2 ∈ T , p1, p2 ∈ B, x1 ∈ V =⇒ (∃x1 ∈ [t1, t2] : p1p2) ∈ B kwantykacjaszczegóªowa

9Zapis 4 oznacza, »e opisywana wªasno±¢ zachodzi dla 4∗ i 4 .

42

Page 47: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Formuªy logiczne p1 przy kwantykatorach dodatkowo ograniczaj¡ warto±ci, jakie mo»e przyj-mowa¢ kwantykowana zmienna. Alternatywa jest uzyskiwana poprzez przetwarzanie wieluwyprowadze«, po jednej dla ka»dego skªadnika.

Zbiór zmiennych wolnych FV(t) jest zdeniowany analogicznie do denicji 3.2.2.

FV(a) = a, FV(α) = α

FV(t) = ∅ dla t ∈ Onto ∪ tt, ff

FV(t.ident) = FV(t)

FV(t1[ident = t2]) = FV(t1) ∪ FV(t2)

FV(t1 R t2) = FV(t1) ∪ FV(t2) dla R ∈ 7→,←[,≫,≪,g,f,4∗ ,4 ,=

FV([p1, . . . , pk]) = FV(p1) ∪ . . . ∪ FV(pk)

FV(〈t∗; ti, . . .〉) = FV(t∗) ∪⋃i∈I FV(ti)

FV(`x1 ∈ [t1, t2] : p1t3) = (FV(t3) − x1) ∪ FV(t1) ∪ FV(t2) ∪ FV(p1)

FV(∀x1 ∈ [t1, t2] : p1p2) = (FV(p2) − x1) ∪ FV(t1) ∪ FV(t2) ∪ FV(p1)

FV(∃x1 ∈ [t1, t2] : p1p2) = (FV(p2) − x1) ∪ FV(t1) ∪ FV(t2) ∪ FV(p1)

Niewi¡»¡ce podstawienie jest równie» zdeniowane analogicznie do 3.2.3:

Sxt (x) = t

Sxt (y) = y

Sxt (c) = c dla c ∈ Onto ∪ tt, ff

Sxt (t1.ident) = (Sxt (t1)).ident

Sxt (t1[ident = t2]) = (Sxt (t1))[ident = Sxt (t2)]

Sxt (t1 R t2) = Sxt (t1) R S

xt (t2) dla R ∈ 7→,←[,≫,≪,g,f,4∗ ,4 ,=

Sxt ([p1, . . . , pk]) = [Sxt (p1), . . . , Sxt (pk)]

Sxt (〈t∗; ti, . . .〉) = 〈Sxt (t∗);Sxt (ti), . . .〉

Sxt (Qx ∈ [t1, t2] : p1t3) = Qx ∈ [t1, t2] : p1t3 dla Q ∈ `, ∀, ∃

Sxt (Qy ∈ [t1, t2] : p1t3) = Qy ∈ [Sxt (t1), Sxt (t2)] : S

xt (p1)S

xt (t3) dla Q ∈

`, ∀, ∃ je»eli

y /∈ FV(t)

Semantyk¦ wyra»e« T i B okre±laj¡ przedstawione poni»ej reguªy. Ze wzgl¦du na wªa-±ciwo±ci semantyka b¦dzie rozwa»ana przy u»yciu pomocniczych krotek 〈t∗; ti, . . .〉. Dla

czytelno±ci wprowadzamy dodatkowe meta-reguªy. Indeks φ w`A,φ · · ·`B,φ · · ·

oznacza, »e je»eli

zaªo»enie nale»y do jakiej± klasy reguª oprócz wymienionej A, to teza te» b¦dzie nale»e¢ dotej samej klasy (b¦dzie oczywi±cie nale»e¢ tak»e do B).

43

Page 48: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Γ `main,φ t∗ ; t ′∗

Γ `all,φ 〈t∗; ti, . . .〉; 〈t ′∗; ti, . . .〉Tupmain

Γ `all,φ t∗ ; t ′∗

Γ `all,φ 〈t∗; ti, . . .〉; 〈t ′∗; ti, . . .〉Tupall1

Γ `all,φ tj ; t ′j

Γ `all,φ 〈t∗; ti, . . . , tj . . .〉; 〈t∗; ti, . . . , t ′j , . . .〉Tupall2

Γ `all,tup 〈〈t∗; ti, . . .〉;ui . . .〉; 〈t∗; ti f ui, . . .〉TupTup

Γ `all,tup 〈t1 7→ t2; ti . . .〉; t1 7→ 〈t2; ti, . . .〉TupLamLΓ `all,tup 〈t1 ←[ t2; ti . . .〉; 〈t1; ti, . . .〉←[ t2

TupLamR

Γ `all,tup 〈`x1 ∈ [t1, t2] : p1t3; ti . . .〉;

`x1 ∈ [t1, t2] : p1〈t3; ti, . . .〉

TupVar

tident = t2 ti = Thing dla i 6= identΓ `all,tup t1[ident = t2] ; 〈t1; ti, . . . , tident, . . .〉

TupSProp

Γ `all,tup 〈t∗; ti, . . . , tident, . . .〉.ident; tidentTupGProp

c ∈ Onto c nie posiada »adnych wªa±ciwo±ciΓ `none,tup c; 〈c; Thing, Thing, . . .〉

TupOnto1

c ∈ Onto c.i1 =Onto t1 . . . c.in =Onto tnΓ `none,tup c; 〈c; tk umieszczone na wspóªrz¦dnej odpowiadaj¡cej ik, na reszcie Thing 〉

TupOnto2

a ∈ VΓ `none,tup a; 〈a∗;ai, . . .〉

TupVα ∈ C

Γ `none,tup α; 〈α∗;αi, . . .〉TupC

Γ `tup t1 ; t ′1Γ `none,tup t1 7→ t2 ; t ′1 7→ t2

TupInLamL1Γ `tup t2 ; t ′2

Γ `none,tup t1 7→ t2 ; t1 7→ t ′2TupInLamL2

Γ `tup t1 ; t ′1Γ `none,tup t1 ←[ t2 ; t ′1 ← [ t2

TupInLamR1Γ `tup t2 ; t ′2

Γ `none,tup t1 ←[ t2 ; t1 ←[ t ′2TupInLamR2

c =Onto t

Γ `main c; tOnto

Γ ` t1 ; t ′1Γ `all t1.ident; t ′1.ident

GProp

44

Page 49: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Γ ` t1 ; t3 ←[ t4 Γ ` t2 ; t ′2 Γ ` t ′2 4 t4Γ `all t1 ≪ t2 ; t3

AppR

Γ ` t1 ; t4 7→ t3 Γ ` t2 ; t ′2 Γ ` t ′2 4 t4Γ `all t2 ≫ t1 ; t3

AppL

Γ ` t1 ;`a ∈ [u1, u2] : p1t

′1

Γ `all t1 ≪ t2 ;`a ∈ [u1, u2] : p1(t

′1 ≪ t2)

AppVR

Γ ` t1 ;`a ∈ [u1, u2] : p1t

′1

Γ `all t2 ≫ t1 ;`a ∈ [u1, u2] : p1(t2 ≫ t ′1)

AppVL

Γτ jest kontekstem nowych zmiennych wprowadzonych w ττ ∈ T −

` FV(τ) ∈ Γ ∪ Γτ Γ ∩ Γτ = ∅

Γ, Γτ `bool t1 4∗ τ Γ, Γτ `bool τ 4∗ t2 Γ, Γτ `bool Saτ(p1) Γ, Γτ ` Saτ(t3) ; t4 Γ `gen Γτ, t4 ; t5

Γ `all`a ∈ [t1, t2] : p1t3 ; t5

Inst

a ∈ [t2, t3] : p1 ∈ Γ2 Γ1 `bool ∃a ∈ [t2, t3] : ttp1

Γ1 `gen Γ2, t1 ;`a ∈ [t2, t3] : p1S

αa(t1)

Gen

Γ ` t1 ; c1 Γ ` t2 ; c2 c1 ∨ c2 = c3Γ `all t1 g t2 ; c3

LcaC

Γ `all 〈t∗; ti, . . .〉g 〈u∗;ui, . . .〉; 〈t∗ g u∗; ti g ui, . . .〉LcaTup

Γ ` t1 ; t ′1 7→ t ′′1 Γ ` t2 ; t ′2 7→ t ′′2 t3 = (t ′1 f t′2) 7→ (t ′′1 g t ′′2 )

Γ `all t1 g t2 ; t3LcaLamL

Γ ` t1 ; t ′1 ←[ t ′′1 Γ ` t2 ; t ′2 ←[ t ′′2 t3 = (t ′1 g t′2)←[ (t ′′1 f t ′′2 )

Γ `all t1 g t2 ; t3LcaLamR

Γ ` t1 ;`a ∈ [t2, t3] : p1t4

Γ `all t1 g t5 ;`a ∈ [t2, t3] : p1(t4 g t5)

LcaVar1

Γ ` t1 ;`a ∈ [t2, t3] : p1t4

Γ `all t5 g t1 ;`a ∈ [t2, t3] : p1(t5 g t4)

LcaVar2

Γ ` t1 ; t ′1 g t′′1 Γ ` t2 ; t ′2 t3 = (t ′1 f t

′2)g (t ′′1 f t ′2)

Γ `all t1 f t2 ; t3LcaGcd

Γ ` t1 ; c1 Γ ` t2 ; c2 c1 ∧ c2 = c3Γ `all t1 f t2 ; c3

GcdC

Γ `all 〈t∗; ti, . . .〉f 〈u∗;ui, . . .〉; 〈t∗ f u∗; ti f ui, . . .〉GcdTup

45

Page 50: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Γ ` t1 ; t ′1 7→ t ′′1 Γ ` t2 ; t ′2 7→ t ′′2 t3 = (t ′1 g t′2) 7→ (t ′′1 f t ′′2 )

Γ `all t1 f t2 ; t3GcdLamL

Γ ` t1 ; t ′1 ← [ t ′′1 Γ ` t2 ; t ′2 ←[ t ′′2 t3 = (t ′1 f t′2)←[ (t ′′1 g t ′′2 )

Γ `all t1 f t2 ; t3GcdLamR

Γ ` t1 ;`a ∈ [t2, t3] : p1t4

Γ `all t1 f t5 ;`a ∈ [t2, t3] : p1(t4 f t5)

GcdVar1

Γ ` t1 ;`a ∈ [t2, t3] : p1t4

Γ `all t5 f t1 ;`a ∈ [t2, t3] : p1(t5 f t4)

GcdVar2

Γ ` t1 ; t ′1 Γ `bool t ′1 R t2 R ∈ 4∗ ,4 ,4 ,=

Γ `bool t1 R t2InEq1

Γ ` t2 ; t ′2 Γ `bool t1 R t ′2 R ∈ 4∗ ,4 ,4 ,=

Γ `bool t1 R t2InEq2

Γ `bool ttTruth

Γ `bool p1 . . . Γ `bool pkΓ `bool [p1, . . . , pk]

And

dla ka»dego statycznego τ ∈ T dªugo±ci |τ| ≤ 2|t1|+|t2|+|p1|+|p2|

speªniaj¡cego Γ `bool t1 4∗ τ, Γ `bool τ 4∗ t2, Γ `bool Sx1τ (p1)

zachodzi Γ `bool Sx1τ (p2)

Γ `bool ∀x1 ∈ [t1, t2] : p1p2Univ

istnieje statyczne τ ∈ T dªugo±ci |τ| ≤ 2|t1|+|t2|+|p1|+|p2|

speªniaj¡ce Γ `bool t1 4∗ τ, Γ `bool τ 4∗ t2, Γ `bool Sx1τ (p1)

dla którego zachodzi Γ `bool Sx1τ (p2)

Γ `bool ∃x1 ∈ [t1, t2] : p1p2Exst

Γ `bool t1 4 t2

Γ `bool t1 4∗ t2LeqB

Γ `bool t1 4 t2

Γ `bool t1 4 t2LeqC

Γ `bool t1 4 t2 Γ `bool t2 4 t1Γ `bool t1 = t2

Eq

Γ `bool t 4 tLeqEq

a ∈ [t1, t2] : p1, b ∈ [t3, t4] : p2 ∈ Γ Γ `bool t2 4∗ t3Γ `bool α 4 β

LeqCC

Γ `bool t 4 ThingLeqThing

Γ `bool Nothing 4 tLeqNothing

c1 ≤Onto c2Γ `bool c1 4 c2

LeqOnto

Γ, a ∈ [t2, t3] : p1 `bool t1 4 Saα(t4) α /∈ FV(t1)

Γ `bool t1 4`a ∈ [t2, t3] : p1t4

Skol

46

Page 51: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

τ ∈ T − ` Γ `bool t1 4∗ τ Γ `bool τ 4∗ t2 Γ `bool Saτ(p1) Γ `bool Saτ(t3) 4 t4

Γ `bool`a ∈ [t1, t2] : p1t3 4 t4

Spec

Γ `bool t∗ 4 u∗ Γ `bool ti 4 ui · · ·Γ `bool 〈t∗; ti, . . .〉 4 〈u∗;ui, . . .〉

LeqTup

Γ `bool u1 4 t1 Γ `bool t2 4 u2

Γ `bool t1 7→ t2 4 u1 7→ u2LeqLamL

Γ `bool t1 4 u1 Γ `bool u2 4 t2

Γ `bool t1 ←[ t2 4 u1 ←[ u2LeqLamR

a : [u1, u2] : p1 ∈ Γ dla ka»dego statycznego τ ∈ T speªniaj¡cegoΓ `bool u1 4∗ τ, Γ `bool τ 4∗ u2, Γ `bool Saτ(p1)

zachodzi Γ `bool Saτ(t1) 4 Saτ(t2)g S

aτ(t3)

Γ `bool t1 4 t2 g t3LeqLca1

Γ `bool t1 4 t3 Γ `bool t2 4 t3

Γ `bool t1 g t2 4 t3LeqLca2

Γ `bool t1 4 t2 Γ `bool t1 4 t3

Γ `bool t1 4 t2 f t3LeqGcd1

a : [u1, u2] : p1 ∈ Γ dla ka»dego statycznego τ ∈ T speªniaj¡cegoΓ `bool u1 4∗ τ, Γ `bool τ 4∗ u2, Γ `bool Saτ(p1)

zachodzi Γ `bool Saτ(t1)f Saτ(t2) 4 Saτ(t3)

Γ `bool t1 f t2 4 t3LeqGcd2

4.6. Klasa j¦zyków rozpoznawalnych

Sªaba semantyka okazuje si¦ by¢ j¦zykiem programowania zupeªnym w sensie Turinga. Nietylko posiada jako podzbiór nietypowany rachunek lambda, ale tak»e ªatwo jest zaimplemen-towa¢ automat dwulicznikowy. Prostym przykªadem obliczenia, które mo»e si¦ nie ko«czy¢jest Omega ≪ Omega dla Omega = Omega ≪ Omega ←[ Omega. Poni»ej podaj¦dodatkowy przykªad zapisu automatu, który rozpoznaje j¦zyk bncndnen, n ≥ 1, przy czymz ªatwo±ci¡ da si¦ go rozszerzy¢ na j¦zyk an1 . . . a

nm dla m ≥ 4.

Zaªó»my, »e w ontologii znajduj¡ si¦ kategorie opisuj¡ce litery B,C,D, E, stany S1, S2, S3, S4,zero z nast¦pnikiem Zero, Succ oraz funkcj¦ przej±cia Loop i koniec obliczenia LoopEnd, zktórych »adne dwie nie s¡ porównywalne mi¦dzy sob¡. Wtedy poni»szy zestaw reguª deniujej¦zyk bncndnen, n ≥ 1.

47

Page 52: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

B = Loop≪ S1[n = Succ[n = Zero]][m = Zero]← [ C

Loop =hs ∈ [Nothing, S1] (Loop≪ S1[n = Succ[n = s.n]][m = s.m]←[ C←[ s)

|hs ∈ [Nothing, S1] (Loop≪ S2[n = s.n.n][m = s.n]←[ D←[ s)

|hs ∈ [Nothing, S2][n = Succ] (Loop≪ S2[n = s.n.n][m = s.m]←[ D←[ s)

|hs ∈ [Nothing, S2][n = Zero] (Loop≪ S3[n = s.m][m = s.m]←[ s)

|hs ∈ [Nothing, S3][n = Succ] (Loop≪ S3[n = s.n.n][m = s.m]←[ E←[ s)

|hs ∈ [Nothing, S3][n = Zero] (Loop≪ S4[n = s.m.n][m = s.m]←[ s)

|hs ∈ [Nothing, S4][n = Succ] ((B 7→ Loop≪ S4[n = s.n.n][m = s.m])← [ s)

|hs ∈ [Nothing, S4][n = Zero] (LoopEnd←[ s)

Poni»ej zostaªo zamieszczone przykªadowe wyprowadzenie ci¡gu BBCCDDEE, dla czy-telno±ci wprowadzono skróty 0 = Zero, 1 = Succ[n = Zero] oraz 2 = Succ[n = Succ[n =

Zero]].

B B CCDDEE

B (Loop≪ S1[n = 1][m = 0]←[ C) CCDDEE

B (Loop≪ S1[n = 1][m = 0]) CDDEE

B (Loop≪ S1[n = 2][m = 0]←[ C) CDDEE

B (Loop≪ S1[n = 2][m = 0]) DDEE

B (Loop≪ S2[n = 1][m = 2]←[ D) DDEE

B (Loop≪ S2[n = 1][m = 2]) DEE

B (Loop≪ S2[n = 0][m = 2]←[ D) DEE

B (Loop≪ S2[n = 0][m = 2]) EE

B (Loop≪ S3[n = 2][m = 2]) EE

B (Loop≪ S3[n = 1][m = 2]←[ E) EE

B (Loop≪ S3[n = 1][m = 2]) E

B (Loop≪ S3[n = 0][m = 2]←[ E) E

B (Loop≪ S3[n = 0][m = 2])

B (Loop≪ S4[n = 1][m = 2])

B (B 7→Loop≪ S4[n = 0][m = 2])

(Loop≪ S4[n = 0][m = 2])

(LoopEnd)

48

Page 53: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rozdziaª 5

Algorytm parsowania

Rozdziaª ten po±wi¦cono zagadnieniom zwi¡zanym z teoretycznymi aspektami opracowanegoalgorytmu oraz jego implementacj¡ (roz. 5.4). Algorytmiczno-teoretyczne podstawy ana-lizy, takie jak struktury danych i analiza zªo»ono±ci opieraj¡ si¦ na [11], bardziej obszernepotraktowanie tematu mo»na znale¹¢ np. w [23].

Opisywany tutaj algorytm sªu»y do ekstrakcji informacji z tekstu jawnego, napisanegow j¦zyku naturalnym. Dane wej±ciowe stanowi¡ tekst oraz specjalnie przygotowana ontologiaopisuj¡ca informacje, których ma poszukiwa¢ algorytm. Wyj±ciem z algorytmu jest zbiórrelacji pomi¦dzy poj¦ciami ontologii, przedstawiony w formie drzewa.

Trzeba na wst¦pie zaznaczy¢, »e ze wzgl¦du na nierozstrzygalno±¢ pewnych zagadnie«(szczegóªy s¡ przedstawione w rozdziale 5.3) zastosowano metody przybli»one i heurystyczne.Z teoretycznego punktu widzenia mog¡ istnie¢ wyprowadzenia sªabej semantyki, które nie zo-stan¡ przetworzone przez algorytm, a tak»e takie wyniki algorytmu, które nie s¡ poprawnymiwyprowadzeniami sªabej semantyki. Nie przeszkadza to jednak w zastosowaniach praktycz-nych (por. roz. 6).

5.1. Idea algorytmu

Przetwarzanie wst¦pne polega na przypisaniu ka»demu sªowu jego podstawowego znaczenia.W tej chwili jest to realizowane przy pomocy sªownika.

Gªówny schemat algorytmu jest drobn¡ modykacj¡ procedury CKY (por. roz. 3.3).Podobnie, jak w oryginale, w polu (i, j) przechowywany jest zbiór mo»liwych wyprowadze«frazy dªugo±ci j zaczynaj¡cej si¦ i-tym sªowem. W przeciwie«stwie do gramatyk bezkonteksto-wych, rozmiar zbioru mo»e by¢ dowolnie du»y, dlatego zbiory wyprowadze« przechowywanew polach s¡ umieszczane na li±cie. Obliczenie pojedynczej komórki wykonywane jest wedªugnast¦puj¡cego wzoru:

(i, j) = t3|t1 ∈ (i, k), t2 ∈ (i+ k, j− k), t1 ≪ t2 ; t3 ∪t3|t1 ∈ (i, k), t2 ∈ (i+ k, j− k), t1 ≫ t2 ; t3

Wynikiem algorytmu jest drzewo przedstawiaj¡ce relacje pomi¦dzy poj¦ciami z wej±ciowejontologii. Przetwarzanie ko«cowe sprowadza si¦ do wypisania wyniku w zadanej postaci.

Przeksztaªcanie wyra»e« odbywa si¦ za pomoc¡ reguª sªabej semantyki, przedstawionychw rozdziale 4.5, z pewnymi zmianami.

49

Page 54: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Pierwsz¡ z nich jest traktowanie wªa±ciwo±ci (por. roz. 4.3) nie za pomoc¡ krotek, ale zwykorzystaniem zwykªego operatora t1[ident = t2]. Powoduje to problemy przy wyliczaniuich dla skomplikowanych termów (trzeba przej±¢ caª¡ kowariantn¡ ±cie»k¦). Mimo wszystkotakie rozwi¡zanie jest efektywniejsze, gdy» zbiór identykatorów I jest zwykle du»y, a wªa-±ciwo±ci u»ywanych na raz jest przewa»nie maªo.

Drug¡ z ró»nic jest sposób obsªugiwania reguª Inst i Spec. Term τ budowany jestw sposób leniwy metod¡ ukonkretniania zmiennych. Aktualne warto±ciowania, ogranicze-nia oraz formuªy zwi¡zane ze zmiennymi s¡ przechowywane w kontek±cie podstawie«. Opistej struktury przedstawiony jest w rozdziale 5.4.2.

Trzecia ze zmian dotyczy reguª Univ oraz Exst i zostanie opisana w punkcie 5.2.2.Ostatni¡ i chyba najwa»niejsz¡ z modykacji jest sposób przetwarzania równa« kratowych

(reguªy LeqGcd i LeqLca). Poniewa» problem ten jest NP-zupeªny (por. roz. 3.1.4) stoso-wane s¡ metody przybli»one. Przede wszystkim obliczenie jest opó¹niane poprzez poª¡czenienierówno±ci koniunkcj¡ z formuª¡ jednej ze zmiennych wolnych wyst¦puj¡cych w obliczanymwyra»eniu (najgª¦bszej w sensie zagnie»d»enia kwantykatorów), a gdy takiej zmiennej niema, caªo±¢ po prostu wylicza si¦ do termu statycznego, który mo»na obliczy¢ (kwantykatorys¡ przesuwane wcze±niej na zewn¡trz). Szczegóªy przedstawione s¡ w rozdziale 5.2.3.

5.2. Rezolucja

Rezolucja jest dokonywana w trzech etapach. Pierwszy etap polega na normalizacji wyra»enia(5.2.1), jest te» przygotowaniem termu do drugiego etapu przetwarzania. Drugim etapem jestsprawdzenie nierówno±ci (5.2.3). Faza ta mo»e czasem wymaga¢ ponownej renormalizacji.

Trzecim etapem jest utworzenie grafu zale»no±ci (5.2.4), który sªu»y szybkiemu wychwy-tywaniu cyklów w±ród nierówno±ci pomi¦dzy zmiennymi. Jest to modykacja znanego li-niowego algorytmu rozwi¡zuj¡cego problem 2-SAT [10]. Cho¢ proces ten jest warto±ciow¡cz¦±ci¡ rozwi¡zania, ze wzgl¦du na zadowalaj¡c¡ skuteczno±¢ etapu drugiego, faza ta niezostaªa zaimplementowana.

5.2.1. Normalizacja

Normalizacja przebiega w dwóch turach. Pierwsza z nich polega na przedstawieniu wyra»e-nia w postaci, w której operacje s¡ uporz¡dkowane w takiej kolejno±ci, aby operatory 7→ i ←[znajdowaªy si¦ bardziej na zewn¡trz wyra»enia ni» •[ident = •], g oraz f (reguªy TupLam,LcaLam i GcdLam) oraz aby g znajdowaªo si¦ na zewn¡trz f (reguªa LcaGcd). Ponadto prze-noszone s¡ w dóª tak»e kwantykatory

`z kowariantnej ±cie»ki za pomoc¡ reguª oznaczonych

indeksem Var. Aplikacje ≪ i ≫ oraz pobieranie wªa±ciwo±ci •.ident nie s¡ przenoszone,gdy» mog¡ si¦ wyliczy¢ do termu dowolnej postaci.

Zadaniem drugiej tury normalizacji jest przedstawienie (w miar¦ mo»liwo±ci) wyra»eniaw postaci, w której zmienne, staªe oraz wielomiany kratowe z nich zªo»one porównywanes¡ tylko z innymi zmiennymi, staªymi i wielomianami. Poza trywialnymi LeqEq, LeqThingoraz LeqNothing, reguªy LeqLam s¡ jedynymi, które umo»liwiaj¡ porównanie termów postacit1 7→ t2 lub postaci t2 ←[ t1, dlatego, gdy z jednej strony nierówno±ci znajduje si¦ 7→ lub←[, to wyra»enie z drugiej strony musi zosta¢ odpowiednio przeksztaªcone. Na przykªaddla a f b ≤ C 7→ D, normalizacja b¦dzie polegaªa na skorzystaniu z reguªy GcdLam, a taz kolei wymusi podstawienia a = a1 7→ a2 i b = b1 7→ b2. W efekcie wej±ciowe wyra»enie

50

Page 55: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

przyjmie posta¢ (a1 g b1 7→ a2 f b2) ≤ B 7→ C, co si¦ sprowadza do B ≤ a1 g b1 i a2 fb2 ≤ C. Taka transformacja jest wykonywana za pomoc¡ prostego algorytmu unikacji,podobnego do [30], z t¡ ró»nic¡, »e znaczenia podstawowe mog¡ si¦ przeksztaªca¢ w znaczeniapoboczne (reguªa Onto). Niestety z powodu nierozstrzygalno±ci podtypów [61, 57], orazkwantykatorów ograniczonych [46], proces ten mo»e si¦ nie ko«czy¢.

Normalizacja formuª logicznych sprowadza si¦ do usuwania zb¦dnych formuª tt, skracanianieprawdziwych formuª do ff, upraszczania zagnie»d»onych koniunkcji [[[t1]]] oraz normali-zacji termów w nierówno±ciach i równo±ciach.

Dodatkowo normalizacja przygotowuje wyra»enie do fazy drugiej algorytmu (5.2.3). Po-lega to na zebraniu wszystkich nierówno±ci i równo±ci (zapisaniu w kontek±cie i zast¡pieniu ichza±lepkami formuªami tt) oraz otworzeniu wszystkich kwantykatorów (aby nie trzebabyªo przeprowadza¢ tej operacji podczas przetwarzania równa«). Po zako«czeniu wszystkichetapów formuªy logiczne s¡ zapisywane w miejsce za±lepek, a kwantykatory s¡ zamykane,w kolejno±ci, w której zostaªy otworzone.

5.2.2. Obsªuga kwantykatorów

Trzeba zaznaczy¢, »e zastosowanie reguª Univ i Exst w postaci w jakiej s¡ przedstawionew rozdziale 4.5 jest niepraktyczne. Niemniej jednak, po drugiej fazie normalizacji, da si¦ skon-struowa¢ sko«czony zbiór wyra»e« bardzo dobrze przybli»aj¡cy poszukiwane termy. Prze-dziaªy warto±ci zmiennych s¡ postaci [C1, C2], a wi¦c mo»liwe jest ich wyliczenie i przeltro-wanie. Niestety nawet takie rozwi¡zanie okazuje si¦ zbyt wolne.

Zastosowana heurystyka jest jeszcze bardziej uproszczona dla ka»dej zmiennej roz-wa»ane jest tylko jej dolne i górne ograniczenie. Przykªadem formuªy, która nie zostaªabypoprawnie przetworzona jest aksjomat posiadania negacji1 w kracie 1, 2, 3 generowanej przezporz¡dek liniowy:

∀a ∃b [a∨ b = 1, a∧ b = 0]

Z drugiej strony test ten dobrze sprawdza si¦ w praktyce. Wi¦kszo±¢ równa« ma niewielezmiennych wspólnych, a ka»de pojedyncze równanie da si¦ prosto sprawdzi¢ na mocy twier-dze« przedstawionych w rozdziale 3.1.4.

5.2.3. Speªnialno±¢

Druga faza algorytmu polega na testowaniu speªnialno±ci równa« i nierówno±ci zebranychjeszcze w fazie pierwszej. Podstaw¡ do tego jest cz¦±¢ twierdzenia 3.1.4, a mianowicie

f(x, y, . . .) ≤ g(x, y, . . .) ⇐⇒ f(0, . . .) ≤ g(1, . . .)f(0, 0, . . .) ? g(0, 1, . . .) ≤ x ≤ g(1, 1, . . .) > f(1, 0, . . .)

Korzystaj¡c z symetryczno±ci zmiennych mo»na podobne ograniczenia wyprowadzi¢ dla ka»-dej z nich, dla ka»dego równania. Kolejne ograniczenia dla tej samej zmiennej mog¡ by¢ª¡czone na podstawie nast¦puj¡cej i dualnej do niej zale»no±ci: a ≤ b i a ≤ c, która zachodziwtedy i tylko wtedy gdy a ≤ b∧ c.

1 Formuªa ta prawdziwa jest w algebrach Boole'a, ale nie w dowolnych kratach.

51

Page 56: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Bior¡c pod uwag¦ trudno±ci opisane w poprzednim rozdziale, do rozstrzygania speªnial-no±ci u»ywane s¡ tylko wyliczone ograniczenia. Wynikowy algorytm jest wi¦c teoretyczniew sensie reguª 4.5 niepoprawny i niepeªny (ze wzgl¦du na kwantykatory ogólne i szcze-góªowe). atwym do wprowadzenia usprawnieniem jest zastosowanie metody Monte Carlo,która w tym przypadku polegaªaby na wylosowaniu zbioru testowego o pewnej ustalonejliczno±ci. Okazuje si¦ jednak, »e najprostsze podej±cie jest w praktyce wystarczaj¡ce.

5.2.4. Graf zale»no±ci

Trzeci etap rezolucji sªu»y szybkiemu wychwytywaniu cykli w nierówno±ciach pomi¦dzyzmiennymi. Przetwarzane nierówno±ci s¡ przedstawiane za pomoc¡ kraw¦dzi skierowanejpomi¦dzy wierzchoªkami reprezentuj¡cymi porównywane termy.

Operatory 7→, ←[, ≫, ≪,`

i •.ident s¡ traktowane jako staªe, natomiast wyra»eniet1[ident = t2] jest rozkªadane na t1 f Thing[ident = t2] dla t1 6= Thing. Dla wielomianówzªo»onych z operacji g i f oraz nowych staªych tworzone s¡ wierzchoªki odpowiadaj¡cecaªo±ci, oraz ka»demu podwyra»eniu. Powstaªe wierzchoªki ª¡czy si¦ kraw¦dziami zgodniez zale»no±ciami t1, t2 ≤ t1 g t2 i t1 f t2 ≤ t1, t2.

Wyszukiwanie podobnych wyra»e« mo»na zaimplementowa¢ za pomoc¡ tablicy mieszaj¡-cej (ang. hash table), a bezpo±rednie porównania dokonywa¢ na ich postaciach kanonicznych(np. korzystaj¡c z twierdzenia 3.1.3), lub uznawa¢, »e s¡ po prostu ró»ne, je»eli ich rozmiarprzekracza pewien próg2.

W tak zbudowanym grae wyszukuje si¦ silnie-spójne skªadowe. W »adnej z nich nie mog¡si¦ znale¹¢ dwie staªe Skolema, ponadto zmienne nie b¦d¡ce staªymi Skolema mog¡ nale»e¢tylko do tych skªadowych, które nie zawieraj¡ ju» innych, bardziej zagnie»d»onych staªychSkolema (w sensie kwantykatorów). Na koniec, dla ka»dej skªadowej, mo»na zunikowa¢znajduj¡ce si¦ w niej wyra»enia.

Przedstawiony schemat jest modykacj¡ znanego liniowego algorytmu rozwi¡zuj¡cegoproblem 2-SAT [10]. Ze wzgl¦du na zadowalaj¡c¡ skuteczno±¢ poprzednich etapów procesuprzetwarzania, faza ta nie zostaªa zaimplementowana.

5.3. Analiza zªo»ono±ci

Algorytm zaprezentowany w tej pracy nie jest niestety algorytmem wielomianowym. Wpraw-dzie jego szkielet, procedura CKY (por. roz. 3.3) implikuje sze±cienn¡ zªo»ono±¢ w zale»no±ciod wej±ciowej liczby sªów, lecz ju» bior¡c pod uwag¦ liczb¦ wyra»e« sªabej semantyki przy-padaj¡cych na jedno sªowo, dostajemy algorytm wykªadniczy, na przykªad dla

F =h

a ∈ [Nothing, Thing] : tt(a 7→ F[p = a])

|h

a ∈ [Nothing, Thing] : ff(a 7→ F[q = a])

ci¡g Fn b¦dzie miaª przynajmniej 2n ró»nych wyprowadze«.Sprawa ma si¦ zdecydowanie gorzej, gdy we¹miemy pod uwag¦ rezolucj¦ wyra»e« sªabej

semantyki. Niestety z powodu nierozstrzygalno±ci ograniczonej kwantykacji [46] oraz pro-blemu podtypów [61, 57] algorytm nie musi si¦ zatrzymywa¢ dla pewnych wej±¢. Wprawdzie

2Mo»na te» u»y¢ wspomnianej ju» metody Monte Carlo.

52

Page 57: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

mo»na by wprowadzi¢ odpowiednie ograniczenia3, ale nawet wtedy konstrukcja samej sªabejsemantyki powoduje nierozstrzygalno±¢ rezolucji, ze wzgl¦du na nierozstrzygalno±¢ problemustopu automatu dwulicznikowego, czy równowa»no±ci termów w nietypowanym rachunkulambda. Ta siªa wyra»ania w peªni uzasadnia okre±lenie sªabej semantyki funkcyjnym j¦zy-kiem programowania.

Czy jednak rzeczywi±cie sªaba semantyka jest j¦zykiem dziedzinowym (DSL, ang. domain-specic language)? Bior¡c pod uwag¦, »e ontologia nale»y równie» do danych wej±ciowych,o zaprezentowanym algorytmie mo»na my±le¢ jako o kompilatorze, lub ±ci±lej interpreterze.Przy takim podej±ciu sªaba semantyka istotnie staje si¦ j¦zykiem programowania, wprowa-dzana ontologia okazuje si¦ uruchamianym programem4, a przetwarzany tekst zwykªymidanymi wej±ciowymi. Taka interpretacja pozwala spojrze¢ na sªab¡ semantyk¦ i na nieele-mentarn¡ zªo»ono±¢ algorytmu jej rezolucji z innej perspektywy czy to wina Javy, C++lub Pythona, »e si¦ da w tych j¦zykach napisa¢ bª¦dny program?

5.4. Implementacja

W niniejszej cz¦±ci opisana zostaªa implementacja opracowanego algorytmu, scharakteryzo-wano budow¦ programu i omówiono wybrane fragmenty kodu. Program napisano korzystaj¡cz j¦zyków Haskell, Java i Ruby, a otrzymana caªo±¢ jest niezale»na od systemu operacyjnego.Peªny kod ¹ródªowy znajduje si¦ na dysku zaª¡czonym do pracy.

5.4.1. Architektura

Aplikacja skªada si¦ z szeregu moduªów:

Base zawiera podstawowe denicje: wyra»enia sªabej semantyki, podstawienia, kon-tekstu oraz monad i najwa»niejszych klas typów5 (ang. type class), a tak»e podstawoweoperacje manipuluj¡ce tymi obiektami.

Lattice operacje kratowe, w tym g, f, > i ?, ponadto zawiera te» obsªug¦ wªa±ci-wo±ci.

Quantifiers instancje klasy typów Quantifiable (obsªuga kwantykatorów, ichotwierania i zamykania) oraz Lambdable (przeksztaªcanie wyra»e« do postaci t1 7→ t2lub t1 ←[ t2).

Normalize algorytm normalizacji.

Satisfiability testowanie speªnialno±ci.

Eval sposób wyliczania kolejnych rodzajów wyra»e«.

3Na przykªad tzw. uniwersa dla ograniczonej kwantykacji, albo tzw. typy monomorczne dla problemu

podtypów.4Zapisanym wprawdzie w bardzo dziwny sposób, ale przykªady, takie jak j¦zyk Smalltalk, pokazuj¡, »e

kod liniowy nie jest jedynym sªusznym rozwi¡zaniem.5Typ jest instancj¡ pewnej klasy typów, je»eli na warto±ciach danego typu da si¦ wykona¢ operacje okre-

±lone przy denicji klasy.

53

Page 58: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Main modykacja procedury CKY, a tak»e obsªuga wej±cia (w tym dzielenie ci¡guwej±ciowego na sªowa i korzystanie ze sªownika) oraz wyj±cia (formatowanie danychwyj±ciowych).

ClsType, ClsData, ClsDict moduªy zawieraj¡ce dane dotycz¡ce ontologii oraz sªow-nika, automatycznie generowane.

Zupeªnie zewn¦trznym komponentem jest OWLConverter, który sªu»y do przetwarzaniaontologii z formatu OWL (ang. Web Ontology Language) do danych wygodnych do u»yciaw programie. Problem ten zostanie poruszony w punkcie 5.4.3.

Pomimo tego, »e szkieletem jest schemat CKY, to sercem algorytmu jest monada6 zarz¡-dzaj¡ca kontekstem i wyprowadzeniami.

newtype MM a~= MM (Context → [ ( Context , a ) ] )runMM : : ∀ t . MM t → Context → [ ( Context , t ) ]runMM (MM g) c = g c

in s t ance Functor (MM) wherefmap f (MM g ) = (MM $ λc → L i s t .map (λ (d , x ) → (d , f x ) ) ( g c ) )

i n s t ance Monad (MM) wherereturn x = MM $ λc → [ ( c , x ) ]f a i l s = MM $ λ_ → [ ](MM g ) >>= f = (MM (λc →

l e t m (d , x ) = runMM ( f x ) d inL i s t . concatMap m (g c ) ) )

i n s t ance MonadPlus (MM) wheremzero = MM $ λ_ → [ ]mplus (MM f ) (MM g ) = MM (λc → f c ++ g c )

Struktura ta pozwala na wygodne zarz¡dzanie wieloma wyprowadzeniami i ich kontek-stami jednocze±nie. Nie przeszkadza, »e w dowolnym momencie obliczenie mo»e si¦ rozgaª¦zi¢,na przykªad, gdy znaczenie podstawowe posiada w ontologii wiele znacze« pobocznych.

Modykacja tej struktury spowodowaªaby globaln¡ zmian¦ zachowania programu, w szcze-gólno±ci wprowadzanie wszelkich usprawnie« zaczynaªoby si¦ w tym miejscu. Dodatkow¡ za-let¡ jest, »e monady mog¡ reprezentowa¢ caªe ci¡gi oblicze«, co zostaªo wykorzystane w pro-cesie normalizacji.

Wad¡ takiego podej±cia jest konieczno±¢ wykorzystywania j¦zyka, który wspiera konstruk-cje monad. Innym problemem jest debugowanie kodu, którego przepªyw nie sprowadza si¦do prostych p¦tli i instrukcji warunkowych.

5.4.2. Wybrane fragmenty kodu

Poni»ej zaprezentowane s¡ najwa»niejsze i najciekawsze fragmenty kodu wraz z komenta-rzami. Caªo±¢ kodu ¹ródªowego znajduje si¦ na zaª¡czonej do pracy pªycie.

6Monada jest standardowym sposobem organizowania kodu wHaskellu, niestety autor nie zna przyst¦pnego

i zarazem wiarygodnego ¹ródªa informacji na ich temat. Najbardziej aktualne dane mo»na znale¹¢ na stronie

encyklopedii Wikipedia i jej projektów pochodnych: http://en.wikibooks.org/wiki/Haskell, http://en.

wikipedia.org/wiki/Monad_(functional_programming).

54

Page 59: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Typy i formuªy

Poni»ej zaprezentowany kod przedstawia reprezentacje wyra»e« sªabej semantyki za pomoc¡typu algebraicznego. Pierwszy z wyci¡gów dotyczy T , a drugi B.

Dla konstruktorów Lam i App warto±¢ pierwszej wspóªrz¦dnej True oznacza prawostronn¡wersj¦ operatora, a False lewostronn¡. Var opisuje kwantykator.

data Type = Cls ClsType −− ka t ego r i e| Ref RefType −− zmienne| Lca Type Type −− supremum| Gcd Type Type −− infimum| Lam Bool Type Type −− funkc j e| App Bool Type Type −− ap l i k a c j a| PSet Type St r ing Type −− przyp i s an i e w la s c iwos c i| PGet Type St r ing −− pobranie w la s c iwos c i| Var RefType (Type , Type) Formulae Typede r i v ing (Eq ,Ord)

Konstruktor Leq reprezentuje nierówno±¢ 4∗ dla pierwszej wspóªrz¦dnej równej Falsei nierówno±¢ 4 dla warto±ci True. W przypadku kwantykatora Qua warto±¢ True na pierw-szej wspóªrz¦dnej oznacza kwantykacj¦ ogóln¡, natomiast False kwantykacj¦ szczegóªow¡.

data Formulae = TT | FF −− prawda i~ f a l s z| And [ Formulae ] −− koniunkcja| Eq Type Type −− rownosc| Leq Bool Type Type −− nierownosc| Qua Bool RefType (Type , Type ) Formulae Formulaede r i v ing (Eq ,Ord , Show)

Kontekst

Ten fragment kodu prezentuje struktur¦ danych reprezentuj¡cych kontekst. Pierwszy wyci¡gzawiera pole z mapy przechowuj¡cej dane zmiennych, drugi sam¡ struktur¦ kontekstu. Dlaczytelno±ci komentarze zostaªy z kodu usuni¦te.

Rekordy bounds i formulae pochodz¡ wprost z kwantykatora zmiennej. parent okre±lapod którym kwantykatorem (dokªadnie pod kwantykatorem której zmiennej) powinna zo-sta¢ umieszczona bie»¡ca zmienna, na przykªad je»eli na skutek normalizacji miaªoby miejscepodstawienie x = x1 7→ x2, to x byªaby ojcem x1 i x2. Pole value i timeTag oznaczaj¡odpowiednio warto±¢ zmiennej i znacznik czasowy. Na ko«cu, w children, znajduje si¦ listazmiennych, których ojcem jest bie»¡ca zmienna. Dla czytelno±ci komentarze zostaªy usuni¦te.

data VarData = VarData bounds : : (Type , Type ), formulae : : Formulae, parent : : RefType, va lue : : Type, timeTag : : TagType, ch i l d r en : : [ RefType ] de r i v ing Show

55

Page 60: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rekordy zaczynaj¡ce si¦ od uniq s¡ generatorami unikatowych identykatorów dla odpo-wiednich obiektów, w tym: nowych zmiennych Ref, zapisywanych równa« i nierówno±ci EqIdoraz innych znaczników Tag. Najwa»niejszym polem jest rekord varMap, który przechowujedane zmiennych w postaci mapy RefType → VarData. bindMark jest znacznikiem zmianyw kontek±cie, natomiast eqMap jest map¡ przechowuj¡c¡ równania i nierówno±ci zbieranepodczas etapu normalizacji.

data Context = CTX uniqRef_ : : RefType, log_ : : [ S t r ing ], varMap_ : : RefMap VarData, uniqEqId_ : : EqId, uniqTag_ : : TagType, eqMap_ : : [EqMap Formulae ], bindMark_ : : Bool de r i v ing Show

Monada zarz¡dzaj¡ca kontekstem

Poni»ej zostaªy zaprezentowane odpowiednie klasy typów (pochodz¡ce ze standardowej bi-blioteki j¦zyka Haskell), których implementacj¡ jest monada zarz¡dzaj¡ca kontekstem orazsama struktura b¦d¡ca sercem algorytmu.

Fragment Monad m => MonadPlus m oznacza, »e aby m byªo klasy MonadPlus, to opróczposiadania okre±lonych operacji, musi by¢ tak»e klasy Monad.

c l a s s Functor f wherefmap : : ( a → b) → f a~→ f b

c l a s s Monad m where(>>=) : : ∀ a b . m a → ( a → m b) → m b(>>) : : ∀ a b . m a → m b → m breturn : : a → m af a i l : : S t r ing → m a

c l a s s Monad m⇒ MonadPlus m wheremzero : : m amplus : : m a → m a → m a

Literaª a przy denicji newtype MM a oznacza zmienn¡ typow¡, inaczej mówi¡c a jestoperatorem którego dziedzin¡ i przeciwdziedzin¡ s¡ typy. Zastosowanie MM jest widoczne ju»w nast¦pnym wierszu kodu. Operator >>= w denicji monady jest nazywany bind i sªu»ydo ª¡czenia dwóch oblicze« reprezentowanych w postaci monad. Symbol $ jest inksowymoperatorem aplikacji f $ x = f x o niskim priorytecie, co daje efekt nawiasowania, np.f $ f $ f $ f x = f(f(f(f(x)))).

newtype MM a = MM (Context → [ ( Context , a ) ] )runMM : : ∀ t . MM t → Context → [ ( Context , t ) ]runMM (MM g) c = g c

in s t ance Functor (MM) where

56

Page 61: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

fmap f (MM g ) = (MM $ λc → L i s t .map (λ (d , x ) → (d , f x ) ) ( g c ) )

i n s t ance Monad (MM) wherereturn x = MM $ λc → [ ( c , x ) ]f a i l s = MM $ λ_ → [ ](MM g ) >>= f = (MM (λc →

l e t m (d , x ) = runMM ( f x ) d inL i s t . concatMap m (g c ) ) )

i n s t ance MonadPlus (MM) wheremzero = MM $ λ_ → [ ]mplus (MM f ) (MM g ) = MM (λc → f c ++ g c )

Najwa»niejsze klasy typów

W tej cz¦±ci znajduj¡ si¦ fragmenty zawieraj¡ce najwa»niejsze klasy typów u»ywanych przyimplementacji algorytmów. Pierwsz¡ z prezentowanych jest klasa wyra»e«, które mo»nakwantykowa¢ i dekwantykowa¢. Typ FInfo sªu»y do przechowywania informacji o tym,które zmienne byªy kwantykowane ogólnie, a które szczegóªowo.

data FInfo = FInfo [ ( Bool , RefType ) ] d e r i v ing Show

c l a s s Quant i f i ab l e a wherequant i fy : : FInfo → a →MM aunquanti fy : : Bool → a →MM (a , FInfo )

Kolejn¡ z prezentowanych klas s¡ typy normalizowalne. Warto zwróci¢ uwag¦ na wyra»e-nie ∀b w sygnaturze funkcji normalize. Drugi parametr jest obliczeniem (reprezentowanymprzez monad¦), które jest wywoªywane dopiero po znormalizowaniu pierwszego parame-tru. Wynik tego obliczenia mo»e by¢ dowolnego typu (st¡d ∀b) i jest on zwracany w parzez wynikiem normalizacji.

c l a s s Normal izable a wherenormal ize : : ∀ b . a →MM b →MM (a , b)

Poni»ej zamieszczony zostaª przykªad instancji klasy Normalizable. Podobnie jak w de-nicji klas, zapis X⇒ Y oznacza: je»eli zachodzi X, to zachodzi równie» Y, gdzie. . . Nor-malizacja obiektu typu b jest dokonywana dopiero po przetworzeniu obiektu typu a. Wynikzwracany jest razem z wynikiem abstrakcyjnej operacji przekazywanej przez parametr k7.

i n s t ance ( Normal izable a ,Normal izable b) ⇒ Normal izable ( a , b) where

normal ize ( a , b) k = do(a ' , (b ' , w) ) ← normal ize a ( normal ize b k )return ( ( a ' , b ' ) , w)

Poni»szy fragment kodu oznacza, »e kategorie i zmienne wolne normalizuj¡ si¦ jako onesame, natomiast warto±ci zmiennych s¡ normalizowane tak jak inne termy. Dodatkowy frag-ment pokazuje normalizacj¦ operatorów ≫ i ≪.

7Oznaczenie to nie zostaªo wybrane przypadkowo k jest skrótem od kontynuacja.

57

Page 62: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

pa i r a b = return ( a , b)

in s t ance ( Lambdable Type ,Quant i f i ab l e Type ,Quant i f i ab l e Formulae ,UniLoop ( ) ) ⇒ Normal izable Type where

normal ize t@( Cls _) k = k >>= ( pa i r t )normal ize t@( Ref r ) k = do

f r e e ← i sVarFree ri f f r e e then k >>= ( pa i r t ) e l s e do

value ← getVarValue rnormal ize va lue k

. . .normal ize (App b f x ) k = do

( f ' , (x ' , w) ) ← normal ize f $ normal ize x kreturn (App b f ' x ' , w)

. . .

Klasa typów Lambdable okre±la które wyra»enia daj¡ si¦ przeksztaªci¢ do postaci t1 7→ t2lub t2 ←[ t1. Argumenty funkcji makeLam okre±laj¡ kolejno sposób traktowania kwantyka-torów, kierunek operatora i przetwarzane wyra»enie. Pierwsz¡ zwracan¡ warto±ci¡ jest ar-gument, drug¡ wynik. Dodatkowa wspóªrz¦dna typu FInfo przechowuje informacje o kwan-tykatorach, które zostaªy napotkane podczas przetwarzania, jej zastosowanie wida¢ przyobsªudze konstruktora Var. Sposób obliczania warto±ci funkcji dla Gcd wynika bezpo±rednioz zastosowania reguªy GcdLam sªabej semantyki (por. roz. 4.5).

c l a s s Lambdable a wheremakeLam : : Bool → Bool → a →MM (a , a , FInfo )

i n s t ance ( Evaluable Type ,Quant i f i ab l e Type ) ⇒ Lambdable Type where

. . .makeLam q b t@(Var _ _ _ _) = do

( t ' , i ) ← unquanti fy q t( a , r , vs ) ← makeLam q b t 're turn ( a , r , vs +++ i )

makeLam _ b (Lam c a r ) =i f b == c then return ( a , r , FInfo [ ] )e l s e f a i l $ ""

makeLam q b (Gcd c d) = do( ca , cr , cv ) ← makeLam q b c(da , dr , dv ) ← makeLam q b dreturn ( Lca ca da , Gcd cr dr , cv +++ dv)

. . .

58

Page 63: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

5.4.3. Obsªuga ontologii

Jedn¡ z praktycznych trudno±ci, które pojawiªy si¦ podczas tworzenia oprogramowania, byªbrak biblioteki dla j¦zyka Haskell pozwalaj¡cej na wczytywanie ontologii bezpo±rednio zplików OWL8.

Z drugiej strony nie istniej¡ analogiczne problemy dla j¦zyka Java, który posiada bardzoszerok¡ baz¦ bibliotek wszelkiego rodzaju. W ten sposób powstaª program OWLConver-ter, generator kodu, który na podstawie wej±ciowej ontologii tworzy odpowiednie strukturydanych dla Haskella.

Pozwala to na optymalizacj¦ w wewn¦trznej strukturze danych algorytmu. Ka»dej ka-tegorii K ∈ Onto przyporz¡dkowana jest liczba naturalna cK z zakresu 3..n gdzie n jestilo±ci¡ wszystkich znacze« podstawowych (1 oznacza Thing, 2 oznacza Nothing). Dodat-kowo, ka»dej kategorii jest równie» przyporz¡dkowana druga liczba eK wyra»ona wzoremeK =

∑cL:L≤K 2

c−3. Oczywi±cie eThing = 0 i eNothing = 2n−2 − 1. Pozwala to na szybkieobliczanie supremum i inmum za pomoc¡ bitowych operacji przeci¦cia i sumy.

Zalet¡ takiego podej±cia jest proste rozwi¡zanie problemu poruszonego w rozdziale 3.1.5.Poniewa» graf ontologii nie musi by¢ krat¡ rozdzieln¡, uzupeªniany jest o dodatkowe elementy.Okazuje si¦, »e dodanie sum bitowych liczb eK tworzy ju» krat¦ rozdzieln¡9. Na przykªad,cz¦±ciowy porz¡dek b¦d¡cy relacj¡ podzielno±ci dla zbioru 1, 2, 4, 5, 20 tworzy pi¦cioelemen-tow¡ krat¦ nierozdzieln¡: niech 1 = Thing oraz 20 = Nothing, wtedy: (2 ∧ 5) ∨ 4 = 4, ale(2∨4)∧(5∨4) = 2. W zapisie bitowym krata ta przedstawia si¦ jako 000, 001, 011, 100, 111,a dodawanym elementem jest 101, czyli odpowiednik liczby 10. W otrzymanej strukturzenadal (2∨ 4)∧ (5∨ 4) = 2, ale (2∧ 5)∨ 4 = 2. Nie jest to wynik zaskakuj¡cy otrzymanakrata, to krata dzielników liczby 20, 〈1, 2, 4, 5, 10, 20, NWD,NWW〉, a rozdzielno±¢ NWDi NWW jest ogólnie znanym faktem z teorii liczb.

Zastosowanie liczb eK pozwala równie» na szybkie obliczanie > i ?. Je»eli policzymyc∗ = a | ¬b oraz d∗ = b & ¬a i uzupeªnimy pierwsz¡ z liczb zerami10, a drug¡ jedynkami11

do elementów kraty, to otrzymane elementy c i d b¦d¡ speªnia¢ c = a? b i d = a> b.Oczywistym minusem jest konieczno±¢ rekompilowania programu przy ka»dej, nawet

drobnej zmianie ontologii. Na szcz¦±cie nie jest to wielk¡ wad¡, gdy» napisana aplikacja jestzaledwie projektem badawczym, a nie produktem komercyjnym. Dodatkowo taki schematbudowy aplikacji pozwala u»y¢ kompilatora j¦zyka Haskell, do parsowania wyra»e« sªabejsemantyki, co zwalnia programist¦ od pisania dodatkowego moduªu.

5.4.4. Uwagi dodatkowe

Projekt ten posiadaª kilka prototypów, które testowaªy ró»ne podej±cia. Nie bez znaczeniaokazaª si¦ jednak wybór j¦zyka programowania do napisania najwa»niejszej cz¦±ci analizatora.Ka»dy z u»ywanych Haskell, Java i Ruby ma swoje wady i zalety.

Ruby12 jest niezast¡piony przy tworzeniu krótkich skryptów-narz¦dzi usprawniaj¡cychprac¦. Cho¢ ostateczna wersja aplikacji nie zawiera nawet maªego fragmentu napisanego

8Nie jest to do ko«ca prawda, jednak dost¦pne opcje nie speªniaªy postawionych im wymaga«.9Gdy przeci¦cie bitowe nie nale»y do eK, . . ., to i tak jest ono sum¡ bitow¡ pewnych liczb nale»¡cych do

tego zbioru.10Je»eli bit kategorii K jest wyzerowany, to bity wszystkich subkategorii K te» musz¡ by¢ wyzerowane.11Je»eli bit kategorii K jest ustawiony, to bity wszystkich superkategorii K te» musz¡ by¢ ustawione.12http://www.ruby-lang.org/

59

Page 64: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

w tym j¦zyku, bez jego pomocy (lub j¦zyka podobnego, np. Pythona) kodowanie zaj¦ªobyznacznie wi¦cej czasu. Niestety dynamiczne typowanie wymaga wielkiej bazy testowej, aniska wydajno±¢ (Ruby jest j¦zykiem interpretowanym) jest jego powa»n¡ wad¡.

Java13 to dojrzaªy j¦zyk obiektowy uruchamiany na specjalnej, stosowej maszynie wir-tualnej, dzi¦ki której posiada niew¡tpliw¡ zalet¦ przeno±no±¢. Kolejn¡ jest ilo±¢ bibliotek,które zostaªy napisane dla Javy, a tak»e ªatwo±¢ w ich u»yciu. Dodatkowym atutem s¡ ±ro-dowiska wspomagaj¡ce prac¦ programisty, takie jak NetBeans czy Eclipse. Niestety samj¦zyk nie posiada wsparcia dla domkni¦¢ (ang. closures) ani lambda wyra»e«14. Ponadtokod napisany w Javie jest bardzo opisowy procedury w prototypie napisanym w Jaview porównaniu do analogicznych funkcji napisanych w Haskellu, byªy okoªo 2-3 razy dªu»szei subiektywnie tyle» samo razy mniej czytelne.

Haskell15 jest statycznie typowanym funkcyjnym j¦zykiem programowania z leniwymwarto±ciowaniem. Jego gªówn¡ wad¡ jest do±¢ maªa popularno±¢16, a co si¦ z tym wi¡»ewzgl¦dnie maªa baza dopracowanych bibliotek. Dodatkowo funkcyjna czysto±¢17 pozwalawprawdzie na szereg automatycznych optymalizacji czy uªatwion¡ obsªug¦ wspóªbie»no±ci,ale niestety istotnie komplikuje obsªug¦ wej±cia i wyj±cia. Zalet¡ j¦zyka jest jego rozbudowanysystem typów oraz wyj¡tkowo czytelna skªadnia, które pozwalaj¡ na tworzenie kodu z maª¡ilo±ci¡ bª¦dów.

Podczas rozwijania prototypu w Javie, jednym z najwi¦kszych problemów byªo wykry-wanie pomyªek w kodzie. Skomplikowany przepªyw programu poª¡czony z przeplataj¡cymisi¦ wywoªaniami ró»nych gaª¦zi rezolucji powodowaª, »e jedynie bardzo proste fragmenty ¹ró-dªa poddawaªy si¦ debugowaniu. To sprawiªo, »e Haskell, udost¦pniaj¡cy koncept monadi przejrzyst¡ do-notacj¦ (ang. do-notation), okazaª si¦ najlepszym wyborem. Mo»liwo±¢18

skoncentrowania kodu zarz¡dzaj¡cego kontekstami w jednym miejscu i formuªowania resztyjakby dla pojedynczego wyprowadzenia znacznie przyspieszyªa proces implementacji i uªa-twiªa poprawianie usterek w kodzie.

Z wielu dost¦pnych implementacji, do kompilacji ¹ródeª u»yto The Glasgow HaskellCompiler19 ze wzgl¦du na rozszerzenia, które udost¦pnia. Do zarz¡dzania ontologi¡ wyko-rzystano program Protégé20, który rozwijany jest przez Stanford Center for BiomedicalInformatics Research w ramach grantu LM007885 United States National Library of Me-dicine21. Kod ¹ródªowy zostaª napisany w edytorze Vim22 autorstwa Brama Moolenaara.

Praca badawcza trwaªa ponad rok, natomiast sama implementacja zaj¦ªa okoªo trzechmiesi¦cy. W tym czasie powstaªo ponad 8000 wierszy kodu i ontologia licz¡ca 1528 obiektów.¡cznie autor zu»yª energi¦ elektryczn¡ wystarczaj¡c¡ do wystrzelenia du»ego sªonia pozaukªad sªoneczny oraz niezliczon¡ ilo±¢ wkªadów do oªówków. Strat w ludziach nie byªo.

13http://www.java.com14Konstrukcje te maj¡ zosta¢ wprowadzone w wersji kompilatora 7.0.15http://www.haskell.org/16http://langpop.com/, http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html17Ka»da procedura w Haskellu jest funkcj¡ w matematycznym znaczeniu tego sªowa (np. nie istniej¡ efekty

uboczne).18Podobne podej±cia byªy próbowane we wcze±niejszych prototypach, ale bez sukcesów.19 http://www.haskell.org/ghc/20http://protege.stanford.edu21This work was conducted using the Protégé resource, which is supported by grant LM007885 from the

United States National Library of Medicine.22http://www.vim.org/

60

Page 65: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Rozdziaª 6

Wyniki

Przedstawiony w poprzednim rozdziale algorytm bardzo dobrze spisywaª si¦ w przygotowa-nych testach. Niestety autor pracy natraª na powa»ny problem natury praktycznej. Zewzgl¦du na brak mo»liwo±ci zastosowania gotowej ju» gramatyki oraz trudno±ci zwi¡zanez automatyczn¡ generacj¡ reguª sªabej semantyki, sªownik i ontologia wykorzystywane dotestów byªy do±¢ maªych rozmiarów. Z tego powodu, mimo »e algorytm dawaª sobie rad¦nawet w trudnych przypadkach, nie udaªo si¦ przeprowadzi¢ testów ilo±ciowych, które byrzetelnie potwierdziªy mo»liwo±ci zastosowanego podej±cia.

6.1. Wyj±cie z algorytmu

Wyj±cie z algorytmu stanowi¡ dwa elementy: wyra»enie sªabej semantyki opisuj¡ce caªe zda-nie, oraz drzewo jego wyprowadzenia.

Dla przykªadu zdanie Annie included Bonnie ma znaczenie Event[Rel = Include01]

[Arg1 = Bonnie][Arg0 = Annie]. Z typu mo»na przeczyta¢, »e zdanie opisuje wydarzenieEvent, w którym Annie wykonuje akcj¦ opisywan¡ znaczeniem Include01 na Bonnie. Polewej stronie przedstawiono typ w postaci hierarchicznej, a po prawej odpowiednie drzeworozkªadu:

Event

Rel = Include01

Arg0 = Annie

Arg1 = Bonnie

Event[Rel = Include01]

[Arg1 = Bonnie][Arg0 = Annie]XXXXX

Annie

Annie

Include01AA

[Rel = Include01]

[Arg1 = Bonnie]aaaa

!!!!Include01A

included

Bonnie

Bonnie

Bardzo podobne zdanie The list included Bonnie b¦dzie miaªo inne znaczenie:RelationStatement[Rel = Include01][Arg2 = List][Arg1 = Bonnie]. W drzewie wy-prowadzenia wida¢ przej±ciowe wyra»enie sªabej semantyki, które stanowi cz¦±ciow¡ aplikacj¦znaczenia sªowa include.

61

Page 66: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

RelationStatement[Rel = Include01][Arg2 = List][Arg1 = Bonnie]hhhhhhhhh(((((((((

ListZZ

DT

The

List

list

(Var 7 (Nothing, Include01B.arg2Type) (TT)

(7 7→ RelationStatement[Rel = Include01B.rel]

[Arg2 = 7][Arg1 = Bonnie]))aaa

!!!Include01B

included

Bonnie

Bonnie

Warto zauwa»y¢, »e pomimo, i» u»yty zostaª ten sam czasownik, to zdanie nie ma znacze-nia wydarzenia Event, ale okre±lenia relacji RelationStatement. Inne s¡ równie» argumenty:nie wyst¦puje wªa±ciwo±¢ Arg0, natomiast wyst¦puje Arg2. Wynika to z tego, »e opisuj¡ oneodpowiednie role tematyczne dla czasownika include. Arg0 oznacza wykonuj¡cego czynno±¢wstawiania lub zawierania, Arg1 obiekt czynno±ci lub relacji, a Arg2 odpowiedni zbiór lubgrup¦.

Na koniec przedstawiony jest przykªad zawieraj¡cy wszystkie trzy argumenty, Annie wasincluded by Bonnie in the required list. W zdaniu zostaªa u»yta strona bierna, jednak nieprzeszkadza to w wyprowadzeniu.

Event[Rel = Include01]

[Arg2 = List[required = True]]

[Arg1 = Annie][Arg0 = Bonnie]hhhhhhhh((((((((

Annie

Annie

(Var 5 (Nothing, Thing) (TT)

(5 7→ PassiveVoiceActor ≫Include01A[Arg2 = List[required =

True]][Arg0 = Bonnie] ≪ 5))hhhhhhhhhhh

(((((((((((

Was

was

Include01A

[Arg2 = List[required = True]]

[Arg0 = Bonnie]hhhhhhhhhhh

(((((((((((

Include01A

[Arg0 = Bonnie]XXXXXX

Include01A

included

(Var 5 (Nothing, Thing)

(TT) (5 7→ 5 ≫5.by ≪ Bonnie))

QQ

By

by

Bonnie

Bonnie

(Var 5 (Nothing, Thing) (TT)

(5 7→ 5 ≫ 5.in ≪List[required = True]))

PPPP

In

in

List[required

= True]PPPP

DT

the

List[required

= True]HHH

Required

required

List

list

62

Page 67: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

6.2. Testy ukªadane

W tej cz¦±ci zostan¡ przedstawione przykªadowe wyprowadzenia reprezentuj¡ce ró»ne zagad-nienia wyst¦puj¡ce w j¦zyku naturalnym.

¡czenie czasowników: Annie knows and likes Bonnie.

RelationStatement

Rel = Lexical

Arg0 = Annie

Arg1 = Bonnie

op = And

A = Know01A

B = Like01A

Zdania wzgl¦dne: Annie knows Bonnie who likes Charlie.

RelationStatement

Rel = Know01

Arg0 = Annie

Arg1 = Bonnie

who = RelationStatement

Rel = Like01

Arg1 = Charlie

Arg0 = Bonnie

63

Page 68: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Zdania podrz¦dne: Annie knows that Bonnie likes Charlie.

RelationStatement

Rel = Know01

Arg0 = Annie

Arg1 = RelationStatement

Rel = Like01

Arg0 = Bonnie

Arg1 = Charlie

Wtr¡cenia: Annie (who knows Bonnie) likes Charlie.

RelationStatement

Rel = Like01

Arg0 = Annie

parenthesis = RelationStatement

Rel = Know01

Arg0 = Annie

Arg1 = Bonnie

Arg1 = Charlie

64

Page 69: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Niejednoznaczno±ci (1): I saw her duck. Algorytm bezbª¦dnie rozpoznaje obydwawyprowadzenia.

RelationStatement

Rel = See01

Arg0 = I

Arg1 = Duck

owner = Her

RelationStatement

Rel = See01

Arg0 = I

Arg1 = Event

Rel = Duck01

Arg0 = Her

Niejednoznaczno±ci (2): The owers sent for the patient arrived. W tym przypadkujednak nie jest to takie proste, gdy» program podaje a» trzy wyprowadzenia: kwiaty przy-sªane dla pacjenta, który przyjechaª, kwiaty, które przyjechaªy, przysªane dla pacjentai poprawne kwiaty przysªane dla pacjenta przyjechaªy.

Flowers

sent = True

Arg2 = Patient

arrived = True

Flowers

sent = True

arrived = True

Arg2 = Patient

Event

Rel = Arrive01

Arg0 = Flowers

sent = True

Arg2 = Patient

Jednak wystarczy ograniczy¢ si¦ do wyprowadze«, które tworz¡ caªe zdania doda¢kropk¦ na ko«cu i otrzymujemy tylko jedno wyprowadzenie.

65

Page 70: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Niejednoznaczno±ci (3): The doctor sent for the patient arrived. W przypadku dok-tora sytuacja ma si¦ podobnie, ale tym razem dodanie kropki nie usuwa wszystkich niejed-noznaczno±ci. Jednak jest to wynik poprawny ka»da z tych mo»liwo±ci jest dopuszczalna:doktor posªaª po pacjenta, który przyjechaª, oraz doktor, wysªany dla pacjenta, przyjechaª.

Event

Rel = Arrive01

Arg0 = Doctor

sent = True

Arg2 = Patient

Event

Rel = Send02

Arg0 = Doctor

Arg1 = Patient

arrived = True

66

Page 71: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

6.3. Przykªady instancji problematycznych

Nie wszystkie jednak zdania parsuj¡ si¦ poprawnie. Ju» dla prostych przykªadów pojawiaj¡si¦ problemy, a ¹ródªem ich jest spójnik and. Poniewa» reguªa dla koniunkcji nie ograniczadozwolonych argumentów, zdarzaj¡ si¦ wyprowadzenia, w których ª¡czone s¡ zupeªnie ró»neod siebie obiekty.

Problem (1): Annie knows Bonnie and Charlie. To zdanie demonstruje wyprowadzenie,w którym fraza Annie knows Bonnie zostaje poª¡czona spójnikiem razem z fraz¡ Charlie.Obydwie posiadaj¡ jako superkategori¦ Concept i taki jest te» jeden z wynikowych typówwyra»enia.

RelationStatement

Rel = Know01

Arg0 = Annie

Arg1 = Person

op = And

A = Bonnie

B = Charlie

Concept

op = And

A = RelationStatement

Rel = Know01

Arg0 = Annie

Arg1 = Bonnie

B = Charlie

Problem (2): Dodatkowe problemy z and pojawiaj¡ si¦ w obecno±ci okre±le«. Na przykªadnie wiadomo dokªadnie, jak powinno zosta¢ rozªo»one zdanie Good Annie and Bonnie knowCharlie, czy dobra jest tylko Annie, czy Bonnie te». W j¦zyku mówionym zostaªoby tozaznaczone za pomoc¡ pauz i akcentów, ale w j¦zyku pisanym takie rozró»nienie si¦ niepojawia. Szcz¦±liwie pozostawienie tylko rozkªadów b¦d¡cych wyprowadzeniami peªnychzda« likwiduje znaczn¡ wi¦kszo±¢ niechcianych przypadków, z drugiej strony istniej¡ te»takie, których si¦ nie da ªatwo rozs¡dzi¢. Aby zaznaczy¢ skal¦ problemu poni»ej przedstawiam47 miniaturek ró»nych rozkªadów zdania Good Annie and Bonnie know bad Charlie andDaniel and like ugly Eric and Frank.

67

Page 72: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

68

Page 73: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

6.4. Testy na podstawie formularzy 10-K

W tej cz¦±ci zostaªy zaprezentowane przykªady zda« z formularzy 10-K Ameryka«skiej Ko-misji Papierów Warto±ciowych. Warto zwróci¢ uwag¦, »e pomimo skomplikowanej strukturyzdania te s¡ przetwarzane poprawnie. Wybranym wyj¡tkiem jest ostatni przykªad, w którymdu»a ilo±¢ spójników and powoduje istotne problemy.

Amounts received as a return of capital are not included in calculation of this

portion of the incentive fee. Powy»sze zdanie ma dwa wyprowadzenia o tym samymwyniku. Poni»ej zaprezentowano tylko jedno drzewo rozkªadu.

Event

Rel = Include01

not = True

Arg0 = PassiveVoiceActor

Arg1 = Money

received = True

Arg2 = Calculation

of = Portion

of = Money

incentive = True

69

Page 74: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

The notes are unsecured, convertible into shares of common stock at $0.247 per

share and were issued with a 55% original issue discount totaling $2,190,400.

Ten trudny przykªad zostaª przetworzony w caªo±ci bez najmniejszych bª¦dów.

Whole

op = And

Arg1 = Concept

Arg0 = Entity

B = (Var 12 (Nothing,Thing) (TT) (12 --> PassiveVoiceActor >>>

Issue01A

[with = IssueDiscount[ratio = Ratio][original = True]]

[Rel = Issue01B][Arg2 = Totalization[amount = Money]] <<< 12))

A= Be01AA

Arg1 = Adjective

op = PunctuationComma

A = Unsecured

B = Convertible

price = Money

per = Share

into = Share

of = CommonStock

70

Page 75: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

The properties where acquisition costs were impaired included the Company's So-

mePlaceA claims in Mexico, and SomePlaceB and SomePlaceC claims in Chile.

To zdanie stwarza problemy podobne do tych opisanych w rozdziale 6.3. W wyniku przetwa-rzania powstaªo 91 wyprowadze«, w tym oczywi±cie wynik poprawny:

RelationStatement

Rel = Include01

Arg1 = Claim

owner = Company

orgin = Place

op = And

A = Claim

where = Mexico

orgin = SomePlaceA

B = Claim

orgin = Place

op = And

A = SomePlaceB

B = SomePlaceC

Arg2 = [Group,Property]

where = RelationStatement

Rel = Be01

Arg0 = Money

whatFor = Acquisition

Arg1 = Impaired

71

Page 76: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 77: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Podsumowanie i wnioski

W niniejszej pracy podj¦to prób¦ zaprojektowania algorytmu, który potraªby przetworzy¢tekst napisany w j¦zyku naturalnym, charakteryzuj¡cy si¦ skomplikowan¡ struktur¡ zda«i wysokim stopniem poprawno±ci gramatycznej.

W toku bada« zostaªa sformuªowana nowa teoria, dotycz¡ca opisu znaczenia fraz w j¦-zyku naturalnym. Okazaªa si¦ ona na tyle prosta, aby zbudowa¢ algorytm bezpo±redniona jej podstawie, a zarazem wystarczaj¡co zªo»ona, aby wyrazi¢ skomplikowane zale»no±ci,wyst¦puj¡ce w j¦zyku naturalnym. Siªa jej wyrazu spowodowaªa nieelementarn¡ zªo»ono±¢opracowanej procedury, jednak jak z bada« zaimplementowanej aplikacji wynika, nie stanowito praktycznych przeszkód.

Przeprowadzone testy pokazuj¡ zalety i wady zastosowanego podej±cia. Najwi¦kszymiproblemami s¡ trudno±¢ w utworzeniu gramatyki i nieprecyzyjno±¢ j¦zyka naturalnego. Pierw-szy z nich wynika z maªych mo»liwo±ci automatycznego generowania reguª (problem nie-rozstrzygalny) i nowo±ci zastosowanego podej±cia (nie istniej¡ gramatyki, które mo»na byprzy rozs¡dnej ilo±ci modykacji zastosowa¢). Drugi problem jest du»o gª¦bszy i ogólnie nieznaleziono do tej pory dla niego zadowalaj¡cego rozwi¡zania. Wzoruj¡c si¦ na najefektyw-niejszych w dziedzinie metodach, mo»na rozwa»y¢ przetwarzanie reguª, bazuj¡ce na modeluprobabilistycznym. O ile jest pewne, »e ten wzgl¦dnie nietrudny do zaimplementowania wy-bieg znacznie poprawi skuteczno±¢ algorytmu, o tyle wiadomo te», »e dodatkowo powa»nieutrudni generowanie reguª gramatyki.

Najwi¦ksz¡ zalet¡ opracowanej procedury jest skuteczno±¢ w przetwarzaniu skomplikowa-nych struktur gramatycznych. Cho¢ baza testów nie byªa wyczerpuj¡ca, zaprezentowaªa onapotencjaª opisanej teorii. Zªo±liwie sformuªowane przykªady zostaªy przetworzone popraw-nie, nie byªo te» problemów ze zdaniami wzgl¦dnymi i wtr¡ceniami. Otrzymane na wyj±ciuinformacje przedstawiaªy esencj¦ podanych na wej±ciu zda«, a podane drzewo wyprowadze-nia mogªoby by¢ u»yte do wydobywania dodatkowych zale»no±ci. Dodatkowymi atutami s¡du»a moc wyra»ania, elastyczno±¢ zasad tworzenia reguª gramatycznych i mo»liwo±¢ ªatwegopoª¡czenia z rozstrzyganiem koreferencji. Ponadto, pomimo prototypowego podej±cia, pouzupeªnieniu o szerszy sªownik i odpowiedni¡ ontologi¦, zaimplementowana aplikacja mo»eby¢ u»yta w praktyce.

Otrzymany algorytm mo»na rozszerza¢ w wielu kierunkach. Mo»na wymy±la¢ nowe kon-strukcje reguª, nowe schematy rezolucji, bardziej zaawansowane heurystyki, a tak»e wpro-wadza¢ dodatkowe zale»no±ci czy uproszczenia. Wydaje si¦ jednak, »e najwa»niejsz¡ zmian¡jest wybieranie reguª i wyprowadze« wedªug modelu probabilistycznego. W kontek±cie nie-jednoznaczno±ci j¦zyka naturalnego, ten kierunek rozwoju jest najbardziej obiecuj¡cy.

Przeprowadzane tutaj badania, pokazuj¡ jak trudnym problemem jest przetwarzanie j¦-zyka naturalnego. Pomimo tego, eksperymenty, takie jak opisany powy»ej, s¡ bardzo wa»ne.Poruszone zagadnienie ma du»e znaczenie nie tylko teoretyczne czy praktyczne, ale peªnirównie» istotn¡ rol¦ w zrozumieniu samego czªowieka.

73

Page 78: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi
Page 79: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

Bibliograa

[1] Brytyjski korpus narodowy. http://corpus.byu.edu/bnc/, 2010.

[2] Form 10-k, annual report pursuant to section 13 or 15(d) of the securities exchange actof 1934. http://www.sec.gov/about/forms/form10-k.pdf, 2010.

[3] Korpus j¦zyka ameryka«skiego czasopisma time. http://corpus.byu.edu/time/, 2010.

[4] Korpus wspóªczesnego j¦zyka ameryka«skiego. http://corpus.byu.edu/coca/, 2010.

[5] Section 13 or 15(d) of the securities exchange act of 1934 (15 u.s.c. 78m or 78o(d)).http://www.sec.gov/about/laws/sea34.pdf, 2010.

[6] Wikisource, the free library. http://en.wikisource.org/wiki/Main_Page, 2010.

[7] Kazimierz Ajdukiewicz. W sprawie uniwersaliów. Przegl¡d Filozoczny, 37:219234,1934.

[8] Kazimierz Ajdukiewicz. J¦zyk i poznanie, volume 1. Polskie Wydawnictwo Naukowe,2006.

[9] James Allen. Natural language understanding (2nd ed.). Benjamin-Cummings Publi-shing Co., Inc., Redwood City, CA, USA, 1995.

[10] Bengt Aspvall, Michael F. Plass, and Robert Endre Tarjan. A linear-time algorithm fortesting the truth of certain quantied boolean formulas. Inf. Process. Lett., 8(3):121123, 1979.

[11] Lech Banachowski, Krzystof Diks, and Wojciech Rytter. Algorytmy i struktury danych.Wydawnictwa Naukowo-Techniczne, Warszawa, 1996.

[12] Henk Barendregt, S. Abramsky, D. M. Gabbay, T. S. E. Maibaum, and H. P. Barendregt.Lambda calculi with types. InHandbook of Logic in Computer Science, pages 117309.Oxford University Press, 1992.

[13] John Beavers. Type-inheritance combinatory categorial grammar. In COLING '04:Proceedings of the 20th international conference on Computational Linguistics,pages 5763, Morristown, NJ, USA, 2004. Association for Computational Linguistics.

[14] Thomas Bever. The cognitive basis for linguistic structures. Cognition and the Deve-lopment of Language, 279:279362, 1970.

[15] Garrett Birkho. Rings of sets. Duke Mathematical Journal, 3(3):443454, 1937.

75

Page 80: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

[16] Garrett Birkho. Lattice Theory. American Mathematical Society, Providence, RhodeIsland, third edition, 1995. XXV of Colloquim publications.

[17] Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and poly-morphism. ACM Computing Surveys, 17:471522, 1985.

[18] Alonzo Church. A set of postulates for the foundation of logic. The Annals of Mathe-matics, 34(4):839864, October 1933.

[19] Alonzo Church. A formulation of the simple theory of types. The Journal of SymbolicLogic, 5(2):5668, June 1940.

[20] Alonzo Church and John Barkley Rosser. Some properties of conversion. Transactionsof the American Mathematical Society, 39(3):472482, May 1936.

[21] John Cocke and Jacob T. Schwartz. Programming languages and their compilers: Preli-minary notes. Technical report, Courant Institute of Mathematical Sciences, New YorkUniversity, 1966.

[22] Michael Collins. Head-driven statistical models for natural language parsing. Technicalreport, 2003.

[23] Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Wprowadzenie doalgorytmów. Wydawnictwa Naukowo-Techniczne, Warszawa, 2001.

[24] Miguel Couceiro and Jean-Luc Marichal. Polynomial functions over bounded distributivelattices. http://arxiv.org/abs/0901.4888v2, 2010.

[25] Bojan Djordjevic and James R. Curran. Ecient combinatory categorial grammar par-sing. In Proceedings of the Australasian Language Technology Workshop 2006, pages310, Sydney, Australia, November 2006.

[26] David Dowty. Thematic proto-roles and argument selection. Language, 67(3):547619,September 1991.

[27] R. L. Goodstein. The solution of equations in a lattice. In Proc. Roy. Soc. EdinburghSect. A, volume 67, pages 231242, 1965/1967.

[28] Thomas R. Gruber. A translation approach to portable ontology specications. Know-ledge Acquisition, 5:199220, 1993.

[29] Riny Huybregts. Overlapping dependencies in dutch. Utrecht Working Papers inLinguistics, 1:2465, 1976.

[30] Joxan Jaar. Ecient unication over innite terms. New Generation Computing,2:207219, 1984. 10.1007/BF03037057.

[31] Takao Kasami. An ecient recognition and syntax-analysis algorithm for context-freelanguages. Technical Report AFCRL-65558, Air Force Cambridge Research Laboratory,Bedford, Massachusetts, 1965.

[32] Daniel Kies. Modern English Grammar. http://papyr.com/hypertextbooks/

grammar/, 2010.

76

Page 81: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

[33] Dan Klein and Christopher D. Manning. The stanford parser: A statistical parser.http://nlp.stanford.edu/software/lex-parser.shtml, 2010.

[34] Dan Klein and Christopher D. Manning. Accurate unlexicalized parsing. In In Pro-ceedings of the 41st Annual Meeting of the Association for Computational Lingu-istics, pages 423430, 2003.

[35] Joachim Lambek. The mathematics of sentence structure. American MathematicalMonthly, 65:154170, 1958.

[36] Joachim Lambek. Deductive systems and categories 1. Math. Systems Theory, 2:287318, 1968.

[37] Martin Lange and Hans Leiss. To cnf or not to cnf? an ecient yet presentable versionof the cyk algorithm. Informatica Didactica, 8, 2009.

[38] Robert D. Levine and W. Detmar Meurers. Head-driven phrase structure grammar:Linguistic approach, formal foundations and computational realization, 2006. http:

//www.sfs.uni-tuebingen.de/~dm/papers/ell2-hpsg.pdf, 2010.

[39] Christopher D. Manning and Hinrich Schütze. Foundations of statistical natural lan-guage processing. MIT Press, Cambridge, MA, USA, 1999.

[40] Mitchell P. Marcus, Beatrice Santorini, and Mary Ann Marcinkiewicz. Building alarge annotated corpus of english: The penn treebank. Computational Linguistics,19(2):313330, June 1993.

[41] Robin Milner. A theory of type polymorphism in programming. Journal of Computerand System Sciences, 17:348375, 1978.

[42] Richard Montague. The proper treatment of quantication in ordinary english. InJ. Hintikka, J. Moravcsik, and P. Suppes, editors, Approaches to Natural Language:proceedings of the 1970 Stanford workshop on Grammar and Semantics, pages 221242, Dordrecht, 1973. Reidel.

[43] George Orwell. Nineteen eighty-four. http://www.george-orwell.org/1984/index.

html, 2010.

[44] Marta Palmer, Dan Gildea, and Paul Kingsbury. The proposition bank: An annotatedcorpus of semantic roles. Computational Linguistics, 31(1):71105, March 2005.

[45] Barbara H. Partee. Reections of a formal semanticist as of feb 2005. http://people.umass.edu/partee/docs/BHP_Essay_Feb05.pdf, 2005.

[46] Benjamin C. Pierce. Bounded quantication is undecidable. In POPL '92: Proceedingsof the 19th ACM SIGPLAN-SIGACT symposium on Principles of programminglanguages, pages 305315, New York, NY, USA, 1992. ACM.

[47] Carl Jesse Pollard and Ivan A. Sag. Head-driven phrase structure grammar. Universityof Chicago Press, Chicago, IL, 1994.

77

Page 82: Automatyczna analiza semantyczna jezyka naturalnego ...dl236088/pdfs/msc.pdf · Przetwarzanie j¦zyka naturalnego (NLP, ang. Natu-alr Language Pressingco ) zajmuje si¦ szeroko poj¦tymi

[48] V. Punyakanok, D. Roth, and W. Yih. The importance of syntactic parsing and inferencein semantic role labeling. Computational Linguistics, 34(2), 2008.

[49] Sergiu Rudeanu. On functions and equations in distributive lattices. In Proc. EdinburghMath. Soc., volume 16 of series II, part 1, pages 4954, 1968. Correct. ibid. 17 (seriesII), 1970, p. 105.

[50] Sergiu Rudeanu. Lattice Functions and Equations. Springer-Verlag, London, 2001.

[51] Ivan A. Sag, Timothy Baldwin, Francis Bond, Ann Copestake, and Dan Flickinger.Multiword expressions: A pain in the neck for nlp. In In Proc. of the 3rd Interna-tional Conference on Intelligent Text Processing and Computational Linguistics(CICLing-2002), pages 115, 2001.

[52] Bernhard Schwarz. The complexity of satisability problems over nite lattices. InVolker Diekert and Michel Habib, editors, STACS 2004, volume 2996 of Lecture Notesin Computer Science, pages 3143. Springer Berlin / Heidelberg, 2004.

[53] Stuart Shieber. Evidence against the context-freeness of natural language. Linguisticsand Philosophy, 8:333343, 1985.

[54] Mark Steedman and Jason Baldridge. Combinatory categorial grammar, 2007.ftp://ftp.cogsci.ed.ac.uk/pub/steedman/ccg/SteedmanBaldridgeNTSyntax.pdf,2010, to appear in: R. Borsley and K. Borjars (eds.) Non-Transformational Syntax,Blackwell.

[55] William Walker Tait. Intensional interpretations of functionals of nite type i. TheJournal of Symbolic Logic, 32(2):198212, June 1967.

[56] Simon Thompson. Type Theory and Functional Programming. Addison-Wesley, 1991.http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf.

[57] Jerzy Tiuryn and Paweª Urzyczyn. The subtyping problem for second-order types isundecidable. Inf. Comput., 179(1):118, 2002.

[58] Alan Turing. Computing machinery and intelligence. Mind, 59(236):433460, 1950.

[59] K. Vijay-Shanker and David J. Weir. The equivalence of four extensions of context-freegrammars. Math. Syst. Theory, 27(6):511546, 1994.

[60] Dimitrios Vytiniotis, Stephanie Weirich, and Simon Peyton-jones. Practical type infe-rence for arbitrary-rank types. Journal of Functional Programming, 17, 2005.

[61] J. B. Wells. The undecidability of mitchell's subtyping relationship. Technical report,Boston University, 1995.

[62] Daniel H. Younger. Recognition and parsing of context-free languages in time n3. In-formation and Control, 10(2):189208, 1967.

78