WUT TWG 2006 WEDT Modelowanie języka Wykład 5 Piotr Gawrysiak 2006.

Slides:



Advertisements
Podobne prezentacje
Opracowała: Iwona Bieniek
Advertisements

Leszek Smolarek Akademia Morska w Gdyni 2005/2006
Lingwistyka Matematyczna
Funkcje tworzące są wygodnym narzędziem przy badaniu zmiennych losowych o wartościach całkowitych nieujemnych. Funkcje tworzące pierwszy raz badał de.
Statystyka Wojciech Jawień
WEDT Rachunek prawdopodobieństwa, teoria informacji, lingwistyka
WEDT Modelowanie języka
Wykład 5 Standardowy błąd a odchylenie standardowe
Ilustracja obliczania całek oznaczonych metodą Monte Carlo
Metody identyfikacji i lokalizacji sekwencji kodujących w genomie
ATOM WODORU, JONY WODOROPODOBNE; PEŁNY OPIS
Badania operacyjne. Wykład 1
Sztuczne sieci neuronowe
Model ciągły wyceny opcji Blacka – Scholesa - Mertona
Instrumenty o charakterze własnościowym Akcje. Literatura Jajuga K., Jajuga T. Inwestycje Jajuga K., Jajuga T. Inwestycje Luenberger D.G. Teoria inwestycji.
Liczby Pierwsze - algorytmy
WEDT Klasyfikacja i grupowanie dokumentów
Metody ekonometryczne
Statystyka w doświadczalnictwie
Metody badawcze w socjologii
ANALITYCZNE MODELE SYSTEMÓW KOLEJKOWYCH
Wykład 2: Upraszczanie, optymalizacja i implikacja
Wykład 6 Standardowy błąd średniej a odchylenie standardowe z próby
Wykład 3 Wzór Bayesa, cd.: Wpływ rozkładu a priori.
Wykład 4 Przedziały ufności
Linear Methods of Classification
Wzory ułatwiające obliczenia
Rozkład normalny Cecha posiada rozkład normalny jeśli na jej wielkość ma wpływ wiele niezależnych czynników, a wpływ każdego z nich nie jest zbyt duży.
Zapis informacji Dr Anna Kwiatkowska.
Klasyfikacja dokumentów za pomocą sieci radialnych Paweł Rokoszny Emil Hornung Michał Ziober Tomasz Bilski.
Klasyfikacja dokumentów za pomocą sieci radialnych
Klasyfikacja dokumentów za pomocą sieci radialnych Paweł Rokoszny Emil Hornung Michał Ziober Tomasz Bilski.
Matematyka wokół nas Równania i nierówności
Opracowała: Joanna Wasiak
Hipotezy statystyczne
Testy nieparametryczne
MATEMATYCZNE METODY SZYFROWANIA
Konstrukcja, estymacja parametrów
Warsztaty programowania w języku Python
Elementy Rachunku Prawdopodobieństwa i Statystyki
Warsztaty programowania w języku Python
Hipotezy statystyczne
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
XML – eXtensible Markup Language
Podstawy analizy matematycznej I
Elementy Rachunku Prawdopodobieństwa i Statystyki
W ą t e k (lekki proces) thread.
Projektowanie stron WWW
Seminarium licencjackie Beata Kapuścińska
Testowanie hipotez statystycznych
Andrzej Majkowski 1 informatyka +. 2 Telefon komórkowy „uczy się”. Metoda słownikowa T9 Paweł Perekietka.
Ekonometria stosowana
Metody matematyczne w inżynierii chemicznej
Modele zmienności aktywów
MODELOWANIE ZMIENNOŚCI CEN AKCJI
Metody sztucznej inteligencji – technologie rozmyte i neuronoweReguła propagacji wstecznej  Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów.
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Testy nieparametryczne – testy zgodności. Nieparametryczne testy istotności dzielimy na trzy zasadnicze grupy: testy zgodności, testy niezależności oraz.
Rozkłady statystyk z próby dr Marta Marszałek Zakład Statystyki Stosowanej Instytut Statystyki i Demografii Kolegium.
Ekonometria stosowana Heteroskedastyczność składnika losowego Piotr Ciżkowicz Katedra Międzynarodowych Studiów Porównawczych.
Weryfikacja hipotez statystycznych „Człowiek – najlepsza inwestycja”
STATYSTYKA – kurs podstawowy wykład 8 dr Dorota Węziak-Białowolska Instytut Statystyki i Demografii.
STATYSTYKA – kurs podstawowy wykład 11
Egzamin gimnazjalny z języka angielskiego - poziom podstawowy.
Testy nieparametryczne
Jednorównaniowy model regresji liniowej
Egzamin gimnazjalny z języka angielskiego - poziom podstawowy.
Wstęp do Informatyki - Wykład 14
Metody sztucznej inteligencji
Zapis prezentacji:

WUT TWG 2006 WEDT Modelowanie języka Wykład 5 Piotr Gawrysiak 2006

WUT TWG 2006 Modelowanie języka Model języka – model probabilistyczny pozwalający obliczyć prawdopodobieństwo zdania Jeśli w 1:n oznacza ciąg wyrazów w 1 w 2 …w n. Jaka jest wartość P(w 1:n ) ? Możemy próbować określać prawdopodobieństwo wystąpień: poszczególnych liter (Shannon game) poszczególnych wyrazów Obliczenie prawdopodobieństwa wystąpienia słowa w zdaniu nie jest zadaniem prostym (ogólnie zależy od znaczenia wypowiadanego zdania), ale analiza poprzedzających słów może wiele pomóc: kolokacje części mowy i struktura zdania dziedzina semantyczna

WUT TWG 2006 Zadania projektowe Kilka wyjaśnień -Dostęp do Internetu -Programy realizujące projekty mogą korzystać z dowolnych danych z sieci Internet pod warunkiem nie ściągania z sieci gotowych rozwiązań (np. jeśli ktoś znajdzie web service do klasyfikacji dokumentów to raczej nie bardzo powinien z niego bezpośrednio korzystać). -Końcowa data oddania projektów -Tydzień przed ostatnimi zajęciami, dla osób pragnących wziąć udział w konkursie 2 tygodnie -Język przetwarzanych dokumentów -Domyślnie angielski. Dla prac biorących udział w konkursie możliwość analizy dokumentów angielskich jest wymagana. -Ocena, a konkurs -Prace oceniają prowadzący projekty, konkurs jest od tego niezależny (choć oczywiście jeśli np. wygra projekt oceniony bardzo źle, to pewnie będzie przesłanka do weryfikacji oceny, na życzenie autora projektu).

WUT TWG 2006 Przykładowe zastosowania OCR / rozpoznawanie mowy wiele wypowiedzi brzmi podobnie np. I went to a party Eye went two a bar tea Poprawianie błędów ortograficznych np. metoda Kernighana nie brała pod uwagę kontekstu: … I think theyre okay … … I think there okay … … I think their okay … Tłumaczenie automatyczne On voit Jon à la télévision Jon appeared in TV. In Jon appeared TV. Jon appeared on TV. Analiza stylu pisania (wykrywanie plagiatów, autorstwa tekstów itp.) Identyfikacja języka Generowanie dużej ilości danych tekstowych Rudolph the red nose reindeer. Rudolph the Red knows rain, dear. Rudolph the Red Nose reigned here. Najbardziej prawdopodobne ze zdań-kandydatów

WUT TWG 2006 Jak obliczyć P(w 1:n )? Możemy wykorzystać regułę łańcuchową, wtedy: P(w 1:n ) =P(w 1:n-1 )P(w n |w 1:n-1 ) = P(w 1:n-2 )P(w n-1 |w 1:n-2 )P(w n |w 1:n-1 ) = itd. = = P(w 1 )P(w 2 |w 1 ) P(w 3 |w 1:2 ) P(w 4 |w 1:3 ) …… P(w n-1 |w 1:n-2 )P(w n |w 1:n-1 ) Sue swallowed the large green ______. Problem – w naszym zbiorze danych (korpusie) będzie prawdopodobnie bardzo mało wystąpień w 1:n-1 Możemy potraktować generację słów składających się na zdanie jako proces Markowa i przyjąć założenie Markowa (markov assumption): tylko N najbliższych słów ma wpływ na to jakie będzie w n : P(w n |w 1:n-1 )P(w n |w n-N+1:n-1 ) Bigram: bierzemy pod uwagę tylko poprzednie słowo Trigram: bierzemy pod uwagę dwa poprzedzające słowa Tetragram:... cztery itd. Wtedy P(w 1:n ) k=1,n P(w k |w k-N+1:k-1 ) Łańcuchy Markowa w 1:n-1 : historia dla w n historia dla w n wnwn

WUT TWG 2006 N-gramy N-gramy określają zbiór klas na które dzielimy zbiór danych trenujących (equivalence classes, bins) Czy większe wartości n są lepsze? large green ___________ tree? mountain? frog? car? swallowed the large green ________ pill? broccoli? Reliability vs Discrimination Im większe n tym więcej informacji o kontekście (discrimination) ale... Im większe n tym mniej jest dostępnych przykładów n-gramu w zbiorze trenującym (reliability)

WUT TWG 2006 N-gramy Dla większych wartości n to podejście staje się niepraktyczne Załóżmy, iż słownik zawiera słów wtedy: n Liczba klas 2 (bigrams) 400,000,000 3 (trigrams) 8,000,000,000,000 4 (tetragrams) 1.6 x 10 17

WUT TWG 2006 Tworzenie modelu Najprostszym podejściem do budowania modelu języka jest posłużenie się MLE i policzenie wystąpień odpowiednich n-gramów w korpusie: korpus: a b a b MLE P(a|b)= ½, P(b|a)=1, P(a| )=1, P( |b) = ½ P( a b a b ) = 1*1*1*½*1* ½ = ¼ Przykład (Manning, Shuetze): Korpus – powieści Jane Austen N = 617,091 słów V = 14,585 słów Zadanie – jakie jest kolejne słowo w trigramie inferior to ________ W korpusie, [In person, she was] inferior to both [sisters.] W praktyce lepiej przejść na logarytmy

WUT TWG 2006 Tworzenie modelu cd. Liczba wystąpień trigramu inferior to ________ w korpusie:

WUT TWG 2006 Tworzenie modelu cd. Zgodnie z MLE nie zaobserwowane wystąpienia trigramów otrzymują zerowe prawdopodobieństwa Nasz korpus jest jednak ograniczony i brak wystąpienia pewnego ciągu wyrazów może być przypadkowy

WUT TWG 2006 Wygładzanie Rzeczywisty rozkład prawdopodobieństwa wygląda zapewne tak: Należy zatem : a)Zmniejszyć (discount) nieco masę prawdopodobieństwa przypadającą na obserwowane przypadki b) Rozdzielić (reallocate) uzyskany nadmiar na pozostałe przypadki

WUT TWG 2006 Metoda Lidstonea Wersja Laplacea – uznajemy, iż każdy n-gram występuję przynajmniej 1 raz, lub wersja Jeffreys-Parks – dopuszczamy wystąpienia ułamkowe Ogólnie: gdzie C = liczba wystąpień n-gramu w danych trenującyh N = liczba wystąpień wszystkich n-gramów w danych trenujących B = liczba różnych n-gramów MLE: = 0, LaPlace: = 1, Jeffreys-Perks: = ½

WUT TWG 2006 Held-out estimator W metodzie Lidstonea przyporządkowujemy arbitralnie pewne prawdopodobieństwo nie obserwowanym przypadkom – czy nie jest ono zbyt duże / małe? Możemy to sprawdzić empirycznie, dzieląc zbiór trenujący na dwie części i zachowując jedną z nich (hold-out) do weryfikacji przyjętej hipotezy – np. badając jak często bigramy które wystąpiły r razy w pierwszej części pojawiają się w drugiej W ten sposób możemy otrzymać (Jelinek, Mercer, 1985): T r / N r – nowe r gdzie – N r – liczba bigramów o częstości r w danych trenujących N - liczba bigramów w danych trenujących C1 – liczba wystąpień ciągu w danych trenujących = r C2 – liczba wystąpień ciągu w held-out data Ile razy bigramy które pojawiły się r razy w pierwszej części pojawiły się też w drugiej = T r

WUT TWG 2006 Held-out estimator, przykład Dane trenujące N-gramabcde Częstość53222 Dane testowe N-gramfghde Częstość r = 2, N r = 3 T r = 6, T r / N r = 6/2 = 3

WUT TWG 2006 Cross validation Podział na część trenującą i held-out jest także arbitralny Najlepiej tego uniknąć – np. dokonując kilkakrotnych podziałów Podzielenie danych na 2 części Uczenie na A, sprawdzenie na B Uczenie na B, sprawdzenie na A Połączenie obu modeli AB uczeniesprawdz. uczenie Model 1 Model 2 Model 1Model 2 + Model końcowy N r a = liczba n-gramów wystepujących r razy w a-tej części zbioru trenującego T r ab = liczba tych znalezionych w b-tej częsci Średnia ważona obu prawdopodobieństw

WUT TWG 2006 Good-Turing estimation Przypisywana Turingowi Metoda oszacowania prawdopodobieństwa: r * = zmodyfikowana częstość N r = liczba n-gramów które występują r razy w zbiorze trenującym E(N r ) = wartość oczekiwana zmiennej losowej N r, E(N r+1 ) < E(N r ) Suma prawdopodobieństw nieobserwowanych n-gramów wynosi wtedy E(N 1 )/N 0 Możemy podstawić obserwowane wartości częstości w miejsce wartości oczekiwanych, ale to nie będzie działać dla dużych wartości r (w szczególności dla najczęściej występującego n-gramu P GT =0) Dwie metody: użycie Good-Turing estimation tylko dla częstości r < k (k = np. 10) dopasowanie jakiejś funkcji S do obserwowanych wartości r i Nr Bowiem E(N r+1 ) będzie równe 0 – nie ma częściej występującego n-gramu niż najczęściej występujący n-gram frequency of frequency Wynika z założenia iż rozkład występowania n-gramów jest dwumianowy

WUT TWG 2006 Good-Turing cont., absolute discounting Przykład: Korpus: a b a b Obserwowane bigramy: b a: 1 a b: 2 N 0 =2, N 1 =1, N 2 =1, N=3 Estymacja częstości dla nieobserwowanych bigramów: f 0 = N 1 /N 0 =0.5 Absolute i linear discounting Zaproponowane przez Ney i Essen (1994) Absolute discounting – od prawdopodobieństwa każdego obserwowanego n- gramu odejmowana jest pewna stała Linear discounting – prawdopodobieństwa obserwowanych n-gramów skalowane są pewną wartością < 1 wartości parametrów mogą zostać oszacowane z held-out data a a, b b

WUT TWG 2006 Mixture models Metody mieszane Możemy wykorzystać informację o n-gramach niższego stopnia, gdy brak danych o wystąpieniach n-gramów wyższego stopnia Simple Linear Interpolation (Jelinek, Mercer 1980) np. dla trigramów: Katz backing-off a)gdy liczba wystąpień n-gramu > k, używamy MLE (nieco zmniejszając wartość prawdopodobieństwa np. przez GT est., rezerwując dla b) b)wpw wykorzystujemy rekurencyjnie oszacowanie dla n-1-gramu Obecnie najczęściej wykorzystywane w praktyce – GT estimation połączone z jakąś metodą mieszaną

WUT TWG 2006 Na koniec... Jeśli ktoś się jeszcze nie zdecydował w jakim języku wykonywać implementację – może spróbować Python NLTK >>> from nltk.corpus import gutenberg >>> gutenberg.items() ['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', 'bible-kjv.txt', 'blake-poems.txt', 'blake-songs.txt', 'chesterton-ball.txt', 'chesterton-brown.txt', 'chesterton- thursday.txt', 'milton-paradise.txt', 'shakespeare- caesar.txt', 'shakespeare-hamlet.txt', 'shakespeare- macbeth.txt', 'whitman-leaves.txt']

WUT TWG 2006 Python NLTK Wybrane moduły NLTK –token: klasy do reprezentacji i przetwarzania tokenów, takich jak zdania i słowa –probability: klasy służące do reprezentacji i przetwarzania danych statystycznych –tree: reprezentacja i przetwarzanie danych w postaci drzew –cfg: gramatyki bezkontekstowe –fsa: automaty skończone –tagger: tagger do części mowy i części zdania (angielski) –parser: zawiera parsery gramatyczne służące do budowy drzew rozbioru zdania –classifier: algorytmy klasyfikacji, włącznie z metodami doboru zawartości słownika –draw: pomocnicze klasy do wizualizacji danych –corpus: przykładowe korpusy tekstowe

WUT TWG 2006 Python NLTK Prosty przykład użycia: >>> from nltk.tokenizer import * >>> text_token = Token(TEXT='Hello world. This is a test file.') >>> print text_token >>> WhitespaceTokenizer(SUBTOKENS='WORDS').tokenize(text_to ken) >>> print text_token,,,,,, ]> >>> print text_token['TEXT'] Hello world. This is a test file. >>> print text_token['WORDS'] [,,,,,, ]

WUT TWG 2006 Python NLTK Przykład - klasyfikacja: tokenizer = LineTokenizer() >>> statements = open('statements.txt').read() >>> statement_toks = tokenizer.tokenize(statements) >>> imperatives = open('imperatives.txt').read() >>> imperative_toks = tokenizer.tokenize(imperatives) >>> questions = open('questions.txt').read() >>> question_toks = tokenizer.tokenize(questions) >>> train_toks = (label_tokens(statement_toks, 'statement') +... label_tokens(imperative_toks, 'imperative') +... label_tokens(question_toks, 'question')) >>> trainer = NBClassifierTrainer(fd_list) >>> classifier = trainer.train(train_toks) >>> loc = Location(3, unit='s') >>> test_tok = Token("Do you enjoy classification?", loc) >>> classifier.classify(test_tok) "Do you enjoy classification?" >>> prob_dict = classifier.distribution_dictionary(test_tok) >>> for label in prob_dict.keys():... print "P(%s) = %.2f" % (label, prob_dict[label]) P(statement) = 0.24 P(imperative) = 0.02 P(question) = 0.74