Sztuczna inteligencja 2 Ćwiczenia 6. około 22 maja 2005

Transkrypt

Sztuczna inteligencja 2 Ćwiczenia 6. około 22 maja 2005
Sztuczna inteligencja 2
Ćwiczenia 6.
około 22 maja 2005
Zadanie 1.(3p) Wzbogaćmy gramatyki bezkontekstowe o nowy rodzaj produkcji A ⇒ A 1 . . . An ,
oznaczający, że z symbolu A można wyprowadzić symbole A 1 do An w dowolnej kolejności. Podaj złożoność problemu należenia słowa do języka generowanego przez tak wzbogaconą gramatykę
bezkontekstową1 .
Zadanie 2.(2p) Jaka jest złożoność problemu należenia słowa do języka generowanego przez gramatykę atrybutową (z atrybutami pochodzącymi ze skończonego zbioru).
Zadanie 3.(1p) Poniżej opiszemy algorytm, który dla danego słowa tworzy gramatyke bezkontekstową, generującą to słowo:
• zacznij od produkcji S → • wczytuj po kolei literki słowa i dołączaj je do prawej strony głównej produkcji
• zawsze gdy więcej niż raz w jakiejś produkcji pojawią się obok siebie te same symbole X
i Y (obojętnie: terminalne lub nie), to wprowadź nowy symbol nieterminalny A, wstaw go
wszędzie w miejsce XY , dodaj do gramatyki produkcje A → XY .
• zawsze, gdy jakiś symbol będzie występował tylko raz po prawej stronie jakiejś produkcji (i
raz po lewej), usuń go, zastępując jego wystąpienie odpowiednim ciągiem.
Zasymuluj działanie algorytmu dla słowa: abcdababcd. W jakich zadaniach związanych z przetwarzaniem
języka naturalnego ten algorytm może być użyteczny? Jakie poprawki można by do niego wprowadzić?
Zadanie 4.(2p) Jak mając do dyspozycji otagowany korpus języka polskiego zbudować słownik
fleksyjny (obejmujący nie tylko słowa z korpusu). Jakie słowa nie powinny, a jakie mogą sprawiać
kłopot. Za ile punktów skłonny byłbyś zaimplementować taki słownik :) ?
Zadanie 5.(2p) Sprawdź w jakim formacie pamiętany jest otagowany korpus IPIPAN-u (korpus.pl)
oraz jakiego formatu wymaga pakiet NLTK. Opisz procedurę konwersji jednego formatu do drugiego.
Za ile punktów skłonny byłbyś zaimplementować ten konwerter?
Zadanie 6.(1p) Opisz potrzebne struktury danych oraz algorytm, który dla słowa (być może
błędnie wpisanego) proponuje listę najbardziej prawdopodobnych jego wariantów ze słownika.
Algorytm powinien sobie radzić ze słownikiem zawierającum kilka milionów wyrazów.
Zadanie 7.(1p) Co to jest postać Chomskiego gramatyki bezkontekstowej? Opisz algorytm przekształcający gramatykę PCFG (probabilistyczną bezkontekstową) do postaci Chomskiego.
Zadanie 8.(1p) Ograniczoną przez k > 0 gramatyką PCFG nazwiemy parę składającą się z liczby
k oraz gramatyki PCFG. Gramatyka (k, G) generuje te słowa, które są generowane przez G, dla
których najbardziej prawdopodobne drzewo ma prawdopodobieństwo większe niż k.
Scharakteryzuj zbiór języków generowanych przez k-ograniczone PCFG. Jak widać (?) nie jest
to szczególnie ciekawe pojęcie. Zaproponuj jakiś jego wariant, który wyda Ci się mniej trywialny.
Zadanie 9.(2p) Załóżmy, że mamy dwa skończone zbióry słów nad ustalonym alfabetem. Pierwszy nazwiemy zbiorem przykładów pozytywnych, drugi – negatywnych. Interesuje nas możliwie
krótkia gramatyka regularna, taka że do generowanego przezeń języka wpadają wszystkie pozytywne
przykłady i nie wpada żaden negatywny.
Zaproponuj jakąś metodę znajdywania takiej gramatyki.
1 Inspiracji dla takiej gramatyki można szukać w językach naturalnych, które nie mają silnie pozycyjnej składni,
czyli na przykład w języku polskim