wprowadzenie do eksploracji danych ......morfologia (1) • morfologia - formy odmiennych części...

62
WPROWADZENIE DO EKSPLORACJI DANYCH TEKSTOWYCH W ŚRODOWISKU WWW LINGWISTYKA WYKŁAD 3 Piotr Gawrysiak [email protected] Anna Wróblewska [email protected] Piotr Andruszkiewicz [email protected] Politechnika Warszawska Zakład Systemów Informacyjnych

Upload: others

Post on 12-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

WPROWADZENIE DO EKSPLORACJI DANYCH TEKSTOWYCH W ŚRODOWISKU WWW

LINGWISTYKAWYKŁAD 3

Piotr Gawrysiak [email protected]

Anna Wróblewska [email protected]

Piotr Andruszkiewicz [email protected]

Politechnika WarszawskaZakład Systemów Informacyjnych

Page 2: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Projekty – sprawy organizacyjne

• Prowadzący:• Grzegorz Protaziuk – [email protected], czwartek 13:00-14:00,

pokój 301, 1 grupa,http://staff.ii.pw.edu.pl/~gprotazi/dydaktyka/wedt_2019z.htm

• Piotr Andruszkiewicz – [email protected], środa 18:00-19:00,pokój 302, 1 grupa,http://home.elka.pw.edu.pl/~pandrusz/

• Wybór prowadzących/tematów (zespoły 2-3 os.):• Należy zgłaszać się do prowadzących (limit: 18 osób na grupę)

• Projekt oceniany jest „na ocenę”

Page 3: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Projekty – sprawy organizacyjne• Wybór tematu

• Ustalony z prowadzącym• Zatwierdzenie przez prowadzącego wyboru tematu (mailowe bądź

osobiste)

Daty:• do 22 XI 2019 - wybór prowadzącego i tematu• do 29 XI 2019 - przekazanie dokumentacji wstępnej• do 17 I 2020 - ostateczny termin oddania projektów (wraz z prezentacją

projektu)

• Projekt musi być oddany w terminie. Zaliczenie projektu (ocena co najmniej 3.0) jest warunkiem koniecznym zaliczenia przedmiotu.

Page 4: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Plan

Wyrażenia regularne• Lingwistyka: poziomy opisu języka• Morfologia: słowotwórstwo, fleksja• Stemmery• Części mowy• Składnia• Algorytm Soundex• Błędy ortograficzne

Page 5: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Ciekawe źródła

• Dane do analizy grafowej http://snap.stanford.edu/data/index.html

• http://cs.stanford.edu/people/jure/

Page 6: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Wyrażenia regularne /ang. regular expressions/

• Język formalny specyfikujący ciągi znaków• Są wszędzie

• emacs, vi, perl, python, grep, sed, awk,...

• Elementy wyrażeń regularnych• Ciągi znaków• Kleene star• Zbiór znaków, dopełnienie zbioru• Kotwice• Zakres• Alternatywa• Grupowanie

http://regexpal.com/

Page 7: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Reguły• Wielkość liter ma zwykle znaczenie (case

sensitive)• Ciągi

• Zakres

[wW]oodchuck Woodchuck lub woodchuck

Woodchuck

[abc] a, b lub c In uomini, in soldati

[1234567890] Dowolna cyfra Plenty of 7 to 5

[A-Z] Wielka litera we call it „A great

[a-z] Mała litera my dear

[0-9] Dowolna cyfra Chapter 1: in

[A-Za-z] litera

Page 8: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Reguły

• Dopełnienie

• Znaki opcjonalne

• Kleene *• Zero lub więcej powtórzeń poprzedzającej

sekwencji• [ab]* - aaaa, bbbb, abababbba, bbabaaab

[^A-Z] Nie wielka litera Woodchuck

[e^] e lub ^ Look up ^ now

a^b Ciąg a^b Look up a^b now

woodchucks? woodchuck lub woodchucks

woodchuck

colou?r color lub colour colour

Page 9: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Reguły• Alternatywa i grupowanie

• Kotwice• ^ - początek ciągu• $ - koniec ciągu• \b – granica słowa• \B – środek słowa

• Kleene +• Przynajmniej jedno wystąpienia sekwencji• [0-9]+ - liczba całkowita

cat|dog cat lub dog cat

gupp(y|ies) guppy lub guppies guppy

(Column_[0-9]+_*)* Column 1 Column 2 itd.

Page 10: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Hierarchia operatorów

1. Grupowanie ()2. Liczniki * + ? {}3. Kotwice the ^my end$4. Alternatywa |

{n} – n wystąpień sekwencji{n,m} – od n do m wystąpień{n, } - przynajmniej n wystąpień

Character escaping – np. \*, \. itd.

beg.n W miejscu kropki – dowolny znak

begin, begun, beg3n

Page 11: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Przykład

• Znaleźć wystąpienia określnika “the”:

The recent attempt by the police to retain their current rates of pay has not gathered much favor with the southern factions.

Przykład - Kathy McCoy

Page 12: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

• Znaleźć wystąpienia określnika “the”:

theThe recent attempt by the police to retain their current rates of pay has not gathered much favor with the southern factions.

Przykład

Page 13: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

• Znaleźć wystąpienia określnika “the”:

[Tt]heThe recent attempt by the police to retain their current rates of pay has not gathered much favor with the southern factions.

Przykład

Page 14: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

• Znaleźć wystąpienia określnika “the”:

\b[Tt]he\b lub [^A-Za-z][Tt]he[^A-Za-z]The recent attempt by the police to retain their current rates of pay has not gathered much favor with the southern factions.

Przykład

Page 15: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Dygresja: Błędy w IR

Dwa rodzaje błędów:• False negatives – wskazania fałszywie negatywne, tzn. powinny być zaznaczone, a nie są• False positives – wskazania fałszywie pozytywne, fałszywe wskazania, tzn. nie powinny być zaznaczone a sąPoprawa skuteczności aplikacji w NLP oznacza walkę z dwoma przeciwstawnymi celami:•Zwiększenie precyzji, dokładności (minimalizacja FP)•Zwiększenie pokrycia, recall (minimalizacja FN)

Page 16: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Zastosowania w NLP - ELIZA

• Wszędzie• ELIZA - Chat bot – psychoterapeuta• http://nlp-addiction.com/eliza/

• U: Men are all alike.• E: IN WHAT WAY?• They’re always bugging us about something or other.• CAN YOU THINK OF A SPECIFIC EXAMPLE?• Well, my boyfriend made me come here.• YOUR BOYFRIEND MADE YOU COME HERE• He says I’m depressed much of the time.• I AM SORRY TO HEAR YOU ARE DEPRESSED

Page 17: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

ELIZA (kanoniczna)

• Seria następujących po sobie substytucji ciągów znaków

• 1 – zamiana wszystkich wystąpień my na YOUR oraz I’m na YOU ARE itd.

• 2 – słownik substytucji:• s/.* YOU ARE (depressed|sad) .*/I AM SORRY TO HEAR YOU

ARE \1/• s/.* YOU ARE (depressed|sad) .*/WHY DO YOU THINK YOU

ARE\1/• s/.* all .*/IN WHAT WAY/• s/.* always .*/CAN YOU THINK OF A SPECIFIC EXAMPLE/

• Do jednego ciągu może pasować więcej niż jeden wzorzec

Page 18: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Lingwistyka

• Sposób opisu języka• Gramatyka – zbiór reguł opisujących formy

słów i ich współwystępowanie dopuszczalne w danym języku

• Gramatyka klasyczna• Przeznaczona dla ludzi (najlepiej znających dany język)• Reguły zwykle oparte na przykładach, także wyjątki od reguł• Zwykle nie jest sformalizowana, nie istnieją narzędzia

(matematyczne, IT), które ją rozumieją

• Gramatyki formalne• Opis formalny• Sprawdzalne na danych (korpusach tekstowych)

Page 19: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Meaning-Text Linguistics (1)• 1965 - Aleksandr Žolkovskij, Igor Mel’čuk• Meaning–text theory (MTT) jest teoretycznym szkieletem lingwistycznym służącym konstruowaniu modeli języka naturalnego

• Opiera się na zasadzie, która mówi, że język polega na odwzorowaniu zawartości lub znaczenia (semantyki) wypowiedzi w formę lub tekst (fonetyka)

• Reprezentacje na poziomie semantycznym, syntaktycznym i morfologicznym

http://www.neuvel.net/meaningtext.htm

Page 20: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Meaning-Text Linguistics (2)• Nieuporządkowana sieć reprezentacji semantycznej

(SemR) → drzewo reprezentacji syntaktycznej (SyntR) → liniowy łańcuch reprezentacji morfologicznej (MorphR) → czasowo uporządkowany ciąg fonemów w reprezentacji fonetycznej (PhonR)

Page 21: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Meaning-Text Linguistics (3)• Przejściowe, dodatkowe

poziomy reprezentacji w warstwie syntaktycznej i morfologicznej

• Sekwencyjne odwzorowanie reprezentacji różnych poziomów

• Każdy poziom, syntaktyczny, morfologiczny, fonetyczny, posiada dwa podpoziomy reprezentacji, głęboki(D – ang. Deep)i powierzchwniowy(S – ang. Surface)

Page 22: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

MTT (4) – zastosowania

• Inbenta http://www.inbenta.com/• Formułowanie zdań na podstawie danych numerycznych

• Prostsze w zawężeniu do danej dziedziny• np. opis pogody na podstawie danych meteo

Page 23: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Poziomy opisu języka (1)

• Fonetyka • Fonologia • Morfologia • Składnia, syntaktyka • Semantyka• Pragmatyka

Każdy z poziomów możemy interpretować jako filtr, posiadający wejście (od poziomu niższego) i wyjście (do poziomu wyższego)

Page 24: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Poziomy opisu języka (2)• Fonetyka – badanie dźwięków mowy ludzkiej (głosek): artykulacja,

cechy akustyczne, odbiór, reakcje psychiczne jakie wywołują• Fonologia – badanie funkcjonowania dźwięków w języku i

systemu, który tworzą• Wejście: Sygnał mowy• Wyjście: Ciąg głosek, Ciąg liter• Problemy

• Głos każdego człowieka daje nieco inny sygnał, wydzielenie sygnału mowy z szumu (który może zawierać inne rozmowy), intonacja itp.

• Klasyfikacja głosek – samogłoski, spółgłoski• W wielu językach - trudna reprezentacja tekstowa głosek • Błędy w wypowiedzi, gwary języka itp.• Konieczność określenia przerw pomiędzy wyrazami

Page 25: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Poziomy opisu języka - przykład

• Przykład 1• „Pies myśliwski, wyżeł ciemnobrązowy, ogon ucięty do odebrania”

Page 26: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Poziomy opisu języka (3)• Morfologia - formy odmiennych części mowy

(fleksja) oraz słowotwórstwo• Składnia, syntaktyka - budowa wypowiedzi:

funkcje wyrazów w zdaniu, zależności między wyrazami w zdaniu

• Semantyka - znaczenie w języku, relacje między znaczeniem podstawowym wyrazu, a jego znaczeniem w konkretnym wypowiedzeniu

• Pragmatyka - sposoby posługiwania się mową przez ludzi, rozumienie i interpretowanie wypowiedzi w zależności od kontekstu

Page 27: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Morfologia (1)• Morfologia - formy odmiennych części mowy (fleksja) oraz

słowotwórstwo• Wejście: Sekwencja głosek (słowo)

• Wyjście: Sekwencja oznakowanych morfemów

Morfem – niepodzielna część znaczeniowa wyrazu, nie można więc podzielić na mniejsze jednostki znaczeniowe, elementarna jednostka morfologii

• Morfemy leksykalne (rdzenne) – rdzenie wyrazów: samodzielne lub związane, obecne w każdym leksemie

• Morfemy poboczne:• Morfemy słowotwórcze - prefiksy (np. za- w zanieść), interfiksy (np.

-o- w parowóz), sufiksy (np. -ek w kotek))• Morfemy fleksyjne (gramatyczne) służące do reprezentacji odmiany

słowa (np. -em w kotem)

Page 28: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Morfologia po angielsku (2)

• Rdzeń, korzeń (ang. Stem - root form) – jednostka niosąca podstawowe znaczenie wyrazu

• Przyrostki (ang. Affixes) - “kawałki” dołączane do rdzenia

Page 29: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Morfologia (3)Rodzina wyrazów – grupa wyrazów mających wspólne pochodzenie, czyli wywodzących się od jednego wyrazu podstawowego•np. dom (rdzeń), domowy, domownik, przydomowy, udomowiony, domek, domeczek, domostwo, bezdomny, podomka, domofon

Leksem – oznaczenie wszystkich form fleksyjnych danego słowa (W potocznym sensie na oznaczenie leksemu używa się nazwy słowo.)

•np. czytać, czytam, czytali, przeczytasz – formy tego samego leksemu

Lemma - kanoniczna, podstawowa forma leksemu, którą najczęściej podaje się w słownikach.

Page 30: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Morfologia (4)

W języku mamy do czynienia z procesem morfologicznym, który tworzy nam nowe słowa i nowe formy słów

To co zwykle chcemy uzyskać to informacja, jaką część mowy stanowi dany wyraz

Page 31: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Proces morfologiczny• Słowotwórstwo

• Wyprowadzanie słów pochodnych ze słów podstawowych (derivation) np.• rzeczownik->rzeczownik: nauczyciel – nauczycielka• przymiotnik->przysłówek: wide – widely• czasownik->rzeczownik: kłamać – kłamca• ...Część wspólna obu wyrazów – pień, pozostała

część wyrazu pochodnego - formant

• Tworzenie słów złożonych (compounding) np.• tea kettle, disk drive, downmarket, overtake, ...• cichobieżny, naprzeciwległy, rakotwórczy, ...

• Fleksja – nadanie znaczenia rdzeniowi wyrazu za pomocą przyrostków i przedrostków zmieniająca liczbę, rodzaj, przypadek (w tych językach, w których występują przypadki) itd. ale niezmieniająca części mowy np.

• dog->dog-s, chodz-ić->chodz-ę

Może zmieniać część mowy

Page 32: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Fleksja• Jak łatwo się domyślać angielska fleksja jest bardzo

prosta...• rzeczowniki – liczba mnoga, possesive• czasowniki – w zależności od używanego czasu

• ale...• Niektóre słowa są nieregularne np.

• regularne• Walk, walks, walking, walked, walked

• nieregularne• Eat, eats, eating, ate, eaten• Catch, catches, catching, caught, caught• Cut, cuts, cutting, cut, cut

• także rzeczowniki: mouse/mice, goose/geese, ox/oxen

Powyższe problemy komplikują zastosowania takie jak wyszukiwanie informacji – nie można zastosować zwykłego dopasowywania wzorców ani wyrażeń regularnych

Page 33: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Fleksja

• Polska fleksja natomiast jest…

• Np. czasownik JEŚĆ

• Ja jem – od jajo?• Ty jesz – od tyć?• On je – je to biernik liczby mnogiej zaimka ona, hmmm…???• My jemy – od myć?• Wy jecie – od wyć?• Oni jedzą – od jechać, bo:

• My jedziemy• Wy jedziecie• Oni jedzą

Źródło: Julian Tuwim, Cicer cum Caule czyli groch z kapustą, Panopticum i Archiwum Kultury

Page 34: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Zastosowanie w IR

Czy wystarczy posłużyć się słownikiem (lexicon)? - Taki słownik musiałby być bardzo duży, szczególnie dla języków fleksyjnych!

Reprezentacja słów na potrzeby IR, w indeksie• Rdzeń (stemming)• Forma podstawowa (lemmatyzacja)• Expansion (rozszerzenie indeksu o

wszystkie formy gramatyczne)

Page 35: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemming• stemming – automatyczne odnajdywanie rdzeni wyrazów• Większość stemmerów nie zapewnia tego, iż tworzone

przez nie ciągi liter to rzeczywiście rdzenie – nie jest to jednak istotne, tak długo jak dla wszystkich wyrazów należących do danego leksemu otrzymujemy taki sam rdzeń

• Zastosowanie w IR1. Zamiana wszystkich wyrazów w bazie danych na rdzenie (preprocessing)2. Zamiana wyrazów w zapytaniu użytkownika na rdzenie (podczas wyszukiwania)3. Poszukiwanie ciągu znaków w bazie danych

Z punktu widzenia IT stemming to funkcja mieszająca (hash function)•Dodatkowo uzyskujemy zmniejszenie rozmiaru indeksu

for example compressed and compression are both accepted as equivalent to compress

for exampl compres andcompres are both acceptas equival to compres

Page 36: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmery (ang)Ogólny podział

• Stemmery specjalizowane do zastosowań lingwistycznych (generowane rdzenie powinny rzeczywiście odpowiadać rdzeniom w rozumieniu lingwistyki, szybkość działania nie jest bardzo istotna)

• Stemmery specjalizowane do zastosowań IR (information retrieval)

Pierwszy skuteczny algorytm dla angielskiego - Lovin’s stemmer (1968) – stemmer jednoprzebiegowy, wykorzystujący tablicę 250 możliwych podstawień końcówek oraz dodatkowy etap postprocessingu – był projektowany jako uniwersalny

Obecnie najpopularniejszy stemmer – Porter’s stemmer, specjalizowany dla IR, wieloprzebiegowy, nie generuje poprawnych językowo rdzeni

Inne – Krovets (1993) – trójprzebiegowy stemmer wyłącznie fleksyjny, Dawson (1974) – poprawiona wersja stemmera Lovins, zawiera tablicę 1200 podstawień, Paice/Husk (1990) – stemmer oparty na dopasowywaniu reguł, nie ma ograniczenia na liczbę kroków podstawień

SNOWBALL – język (+kompilator do ANSI C) do tworzenia stemmerów http://snowball.tartarus.org

Page 37: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmer Portera (1)• Zaproponowany przez Martina Portera w 1980 r.• Oparty na serii przekształceń dokonujących kolejnych podstawień

ciągów znaków (nb. styl podobny do ELIZY)GENERALIZATIONSGENERALIZATIONGENERALIZEGENERALGENER

Oznaczenia• C = ciąg spółgłosek (spółgłoska - nie A E I O U lub (Y poprzedzone C)• V = ciąg samogłosek• M = przybliżona miara liczby sylab

gdzie słowa składają się z: (C)*(V*C*)M(V)* np. M=0 TR, EE, TREE, Y, BY M=1 TROUBLE, OATS, TREES, IVY M=2 TROUBLES, PRIVATE, OATEN, ORRERY

• warunki• *S - rdzeń kończy się na S• *v* - rdzeń zawiera V• *d - rdzeń kończy się na dwóch spółgłoskach C, np. -TT, -SS • *o - rdzeń kończy się na CVC, gdzie ostatnie C to nie W, X lub Y, np. -WIL, HOP

Page 38: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmer Portera (2)Krok 1: Liczba mnoga rzeczowników i trzecia osoba liczby pojedynczej

czasownikówSSES SS caresses caress

IES I ponies poni

SS SS caress caress

S cats cat

Krok 2a: Czas przeszły i strona bierna(M>0) EED EE feed feed, agreed agree

i (*v*) ED plastered plaster, bled bled

ii(*v*) ING motoring motor, sing sing

Krok 2b: postprocessing po 2a jeśli użyto i lub ii AT ATE conflat(ed) conflate

BL BLE troubl(ed) trouble

IZ IZE siz(ed) size

(*d && !(*L || *S || *Z)) hopp(ing) hop, tann(ed) tan

pojedyncza litera hiss(ing) hiss, fizz(ed) fizz

(M=1 && *o) E fail(ing) fail, fil(ing) file

*S = kończy się na <S>

*v* = zawiera V

*d = kończy się na podwójnym C

*o = kończy się na CVC gdzie drugie C != W, X, Y

Page 39: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmer Portera (3)Krok 3: Y I

(*v*) Y I happy happi

sky sky

Krok 4: Słowotwórstwo (m>0) ATIONAL -> ATE relational -> relate

(m>0) TIONAL -> TION conditional -> condition

rational -> rational

(m>0) ENCI -> ENCE valenci -> valence

(m>0) ANCI -> ANCE hesitanci -> hesitance

(m>0) IZER -> IZE digitizer -> digitize

(m>0) ABLI -> ABLE conformabli -> conformable

(m>0) ALLI -> AL radicalli -> radical

(m>0) ENTLI -> ENT differentli -> different

(m>0) ELI -> E vileli - > vile

(m>0) OUSLI -> OUS analogousli -> analogous

(m>0) IZATION -> IZE vietnamization -> vietnamize

(m>0) ATION -> ATE predication -> predicate

(m>0) ATOR -> ATE operator -> operate

(m>0) ALISM -> AL feudalism -> feudal

(m>0) IVENESS -> IVE decisiveness -> decisive

(m>0) FULNESS -> FUL hopefulness -> hopeful

(m>0) OUSNESS -> OUS callousness -> callous

(m>0) ALITI -> AL formaliti -> formal

(m>0) IVITI -> IVE sensitiviti -> sensitive

(m>0) BILITI -> BLE sensibiliti -> sensible

*S = kończy się na <S>

*v* = zawiera V

*d = kończy się na podwójnym C

*o = kończy się na CVC gdzie drugie C != W, X, Y

Page 40: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmer Portera (4)Step 5: Słowotwórstwo cd. (m>0) ICATE -> IC triplicate -> triplic (m>0) ATIVE -> formative -> form (m>0) ALIZE -> AL formalize -> formal (m>0) ICITI -> IC electriciti -> electric (m>0) ICAL -> IC electrical -> electric (m>0) FUL -> hopeful -> hope (m>0) NESS -> goodness -> good

Step 6: Słowotwórstwo cd. – pojedyncze przyrostki (m>1) AL -> revival -> reviv (m>1) ANCE -> allowance -> allow (m>1) ENCE -> inference -> infer (m>1) ER -> airliner -> airlin (m>1) IC -> gyroscopic -> gyroscop (m>1) ABLE -> adjustable -> adjust (m>1) IBLE -> defensible -> defens (m>1) ANT -> irritant -> irrit (m>1) EMENT -> replacement -> replac (m>1) MENT -> adjustment -> adjust (m>1) ENT -> dependent -> depend (m>1 and (*S or *T)) ION -> adoption -> adopt (m>1) OU -> homologou -> homolog (m>1) ISM -> communism -> commun (m>1) ATE -> activate -> activ (m>1) ITI -> angulariti -> angular (m>1) OUS -> homologous -> homolog (m>1) IVE -> effective -> effect (m>1) IZE -> bowdlerize -> bowdler

*S = kończy się na <S>

*v* = zawiera V

*d = kończy się na podwójnym C

*o = kończy się na CVC gdzie drugie C != W, X, Y

Page 41: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmer Portera (5)Step 7a: Postprocessing (m>1) E probate probat

rate rate

(m=1 and not *o) E cease ceas

Step 7b: Postprocessing cd. (m > 1 and *d and *L) controll control

single letter roll roll

*S = kończy się na <S>

*v* = zawiera V

*d = kończy się na podwójnym C

*o = kończy się na CVC gdzie drugie C != W, X, Y

• wear wear• wearable wearabl• wearer wearer• wearied weari• wearier wearier• weariest weariest• wearily wearili• weariness weari• wearing wear• wearisome wearisom• wearisomely wearisom• wears wear• weather weather• weathercock weathercock• weathercocks weathercock

• web web• Webb webb• Webber webber• webs web• Webster webster• Websterville webstervil• wedded wedd• wedding wedd• weddings wedd• wedge wedg• wedged wedg• wedges wedg• wedging wedg

Page 42: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmer Portera (6)Przykłady błędów popełnianych przez stemmer Portera

Błędy pominięć (ang. Errors of Omission)• European Europe• analysis analyzes• matrices matrix• noise noisy• explain explanation

Błędy nadmiaru (ang. Errors of Commission)• organization organ• generalization generic• numerical numerous• university universe

Aby uniknąć powyższych potrzebna jest już lematyzacja:1. Oznaczenie części mowy2. Normalizacja słowa w zależności od wyniku 1.

Uwaga – stemming wcale niekoniecznie poprawia jakość wyszukiwania dla języka angielskiego, to wciąż sporna kwestia!

Page 43: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Stemmery dla języka polskiegoStemmery

• Stempel – algorytmiczny stemmer dla polskiego (http://getopt.org/stempel/index.html)• Oprogramowanie zawierające wysokiej jakości tabele stemmingu dla polskiego

i uniwersalny algorytm stemmera wykorzystujący te tabele• Kod stemmera wzięty został z projektu Egothor

(http://www.egothor.org/, http://egothor.sourceforge.net/).

• http://www.cs.put.poznan.pl/dweiss/xml/projects/lametyzator/index.xml?lang=pl• Oparty na słowniku “ispell” i pakiecie FSA Jana Daciuka

(http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa.html, http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa_polski.html).

• Przeniesiony do http://morfologik.blogspot.com/

Page 44: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Części mowy (1)• Lingwistyka grupuje słowa w zbiory, według ich podobnego zachowania w

zdaniach (składni) i podobieństwa cech morfologicznych

• Nazwy – części mowy (parts of speech – POS), kategorie syntaktyczne, kategorie gramatyczno-leksykalne itp.

• Najważniejsze klasy • rzeczownik – opis rzeczy (przedmiotów, pojęć itp.)• czasownik – opis działania, akcji• przymiotnik – opis cech rzeczowników

• Przysłówek, liczebnik, przyimek, spójnik, zaimek, partykuła, wykrzyknik

• Test substytucji

...

fat

one is in the corner.sadThe

intelligent

green przymiotniki

Page 45: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Części mowy (2)

Słowa mogą należeć do więcej niż jednej klasy, np.sweet – słodki (przymiotnik), sweet – cukierek (rzeczownik)

Zamknięte i otwarte klasy POS• otwarte – duża liczba słów, zmienna zawartość, np.

• przymiotniki• rzeczowniki• czasowniki

• zamknięte – mała liczba słów, ściśle określona funkcja, np.• przyimki• zaimki• określniki• spójniki

Zwykle oznaczane za pomocą znaczników (POS tags), szczególnie popularne znaczniki użyte przy tworzeniu Brown corpus

Page 46: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

POS tagsPrzykłady oznaczeń wg Brown corpus – oczywiście specyficzne dla języka

angielskiego:rzeczowniki (NN)• nazwy własne (NNP) – United States• adverbial nouns (NR) – home, west, tomorrow• liczba mnoga – NNS, NNPS, NRS - flowers• possesive – NN$, NNS$, NNP$, itd. – Peter’s

przymiotniki (JJ)• stopień wyższy (JJR) – richer • najwyższy (JJT + JJS) (np. chief, main, top)• liczby ! (CD) – one, two, 60000

czasowniki (VB)• trzecia osoba lp. (VBZ) – takes• czas przeszły (VBD) – took• present participle (VBG) – taking• past participle (VBN) – taken• modal auxiliaries (MD) – can, may, must, could itd.• specjalne oznaczenia dla form be, have i do (np. past participle have -> had HVN)

Page 47: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Składnia• Kolejność słów w zdaniach nie jest bez znaczenia – choć w niektórych

językach (angielski) jest istotniejsza niż w innych (polski)• Języki pozycyjne <-> języki fleksyjne

• Informacja, która w językach fleksyjnych zawarta jest w odmianie słów, w językach pozycyjnych przekazywana jest w strukturze zdania i kontekście

• Podział wypowiedzi na zdania, zdań na części zdania (constituents):• I put the bagels in the freezer• I put in the fridge the bagels

the very tall woman

the tall woman

the woman

she

the very short man

the short man

the man

him

saw

Page 48: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Rozbiór zdania (1)

Nieco inny w języku polskim (podmiot, orzeczenie, dopełnienie, zdania proste i złożone – równorzędnie i podrzędnie) i angielskim

• Noun phrases (NP) np. The homeless man in the park that I tried to help yesterday

• Verb phrases (VP) np. He was trying to keep his temper • Prepositional phrases (PP) np. with a net• Adjective phrases (AP) np. she is very sure of herself

• Rodzaje zdań• oznajmujące• pytające• rozkazujące

Page 49: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Rozbiór zdania (2)

Zwykle zdanie w języku angielskim ma taką postać:

The young consumers walked to the new storeD DV P NJJN

NP

NPPP

VP

S

JJ

APAP

Page 50: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Rozbiór zdania (3)

Struktura zdania jest rekursywna, tego rodzaju drzewa mogą być generowane przez reguły podstawień (rewrite rules) np:

S -> NP VP

NP -> AT NNS | AT NN | NP PP

VP -> VP PP | VBD | VBD NP

P -> IN NP

AT -> the

NNS -> children | students | mountains

VBD -> slept | ate | saw

IN -> in | of

NN -> cake

S -> NP VP -> AT NNS VBD -> The children slept

S -> NP VP -> AT NNS VBD NP -> AT NNS VBD AT NN -> The children ate the cake

Dokonując przekształceń korzystamy tylko z pojedynczych reguł, nie interesuje nas kontekst całego zdania – gramatyka bezkontekstowa (context free grammar, CFG)

lexicon

Page 51: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Rozbiór zdania (4)

S

VPNP

ATThe

NNSchildren

PPVP

VBDate

NP

ATthe

NNcake

INwith

NP

ATa

NNspoon

Page 52: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Rozbiór zdania (5)S

VPNP

ATThe

NNSchildren

PP

NPVBDate

NP

ATthe

NNcake

INwith

NP

ATa

NNspoon

Oczywiście istnieją też zdania, dla których nie istnieje żadne drzewo rozbioru:

Slept children theTo nie to samo co zdania nie mające (semantycznego) sensu: the cat barked, colorless green ideas sleep furiously

Główne problemy:• generowanie drzew rozbioru nie jest zadaniem prostym – programowanie dynamiczne• z wielu możliwych drzew rozbioru trzeba wybrać jedno właściwe, najbardziej

prawdopodobne – probabilityczne gramatyki bezkontekstowe (probabilistic context free grammars, PCFG)

Page 53: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Soundex

Page 54: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

„Rodzimy” przykład• Cinquecento – 15 200 000• Cinqecento – 1 760 000• Chinquecento – 178 000• Cinkłeczento – 5 180• Cinkłecento – 126

Page 55: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Soundex (1)

• Inny przykład funkcji mieszającej dla słów w języku angielskim

• Angielska wymowa jest bardzo trudna, jeśli słowo słyszymy po raz pierwszy (np. nazwisko) to jest bardzo prawdopodobne, iż zapiszemy je nieprawidłowo

• Soundex - Robert Rusell, Margarett Odell (1918) mapuje różne podobnie brzmiące formy słów do jednego kodu alfanumerycznego

• Soundex - fonetyczny algorytm indeksowania nazw przez dzwięk (wymowa języka angielskiego)

• Wykorzystywany w bazach danych do zapisu nazwisk i nazw własnych; może być także użyteczny jako substytut stemmerów w IR

Page 56: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Algorytm Soundex (2)

1. Zachowujemy pierwszą literę ciągu2. Usuwamy kolejne samogłoski oraz h, w i y3. Zastępujemy pozostałe litery cyframi:

• b, f, p, v = 1• c, g, j, k, q, s, x, z = 2• d, t = 3• l = 4• m, n = 5• r = 6

1. Jeśli dwie (lub więcej) liter kodowanych tą samą cyfrą występowało obok siebie w oryginalnej nazwie (także jeśli były przedzielone h lub w) – pozostawiamy tylko jedną cyfrę

2. Wykorzystujemy tylko cztery pierwsze otrzymane znakiDziałanie:

Robert, Rupert -> R163Rubin -> R150

Ulepszona wersja – Methaphone, Double Methaphone – Lawrence Philips

Page 57: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Błędy ortograficzne (1)• Tekst, który analizujemy w NLP, nie jest zwykle generowany

przez maszynę (natural language) – może zawierać błędy• Błędy ortograficzne – zwykle drobne

• 80% wszystkich błędów ortograficznych dotyczy pojedynczej litery (Damerau, 1964)• Wstawienie (insertion) – the -> ther• Skasowanie (deletion) – the -> th• Podstawienie (substitution) – the -> thw• Transpozycja (transposition) – the -> hte

• Wiele zależy od źródła danych – wpływ układu klawiatury, gdy tekst wpisywany ręcznie, wpływ wyglądu liter, gdy OCR

Rodzaje błędów• Wyrazy spoza słownika (ang. Non-words): giraffe -> graffe• Błędy odizolowane (Isolated errors): bez kontekstu• Rzeczywiste słowa (ang. Real-words): piece of cake -> peace

of cake

Tu można użyć słownika

Page 58: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Błędy ortograficzne - przykład• Przykład 1• Przykład 2

Page 59: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Błędy ortograficzne (2)Poprawianie słów

Metody probabilistyczne (np. Bayesowska):t – błędny (obserwowany) wyraz, c – poprawiony wyraz

P(c) – prawdopodobieństwo wystąpienia słowa

C(c) – liczba wystąpień słowa w korpusie, N – liczba słów w korpusie, V – wielkość słownika

Kernighan approach – przyjmujemy, że błąd został popełniony tylko przez jedną operację

Przykład – słowo acress

c=argmaxc∈V

P(c∣t )=argmaxc∈V

P(t∣c )P(c )

P( c )=

C (c )+12

N+12V

Dodajemy ½ do wszystkich tych słów, których nie zaobserwowaliśmy w korpusie – smoothing, w tym przypadku metodą Jeffreys-Parks

Błąd Poprawny wyraz

Poprawna litera

Błędne litery

Pozycja Operacja

acress actress t - 2 skasowanie

acress cress - a 0 wstawienie

acress caress ca ac 0 transpozycja

acress access c r 2 substytucja

Page 60: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Błędy ortograficzne (3)

P(c) – potrzebujemy jakichś danych tekstowych, np. dla korpusu AP (Church, Gale 1991) mamy:

N ~ 44 miliony, V ~ 400 tysięcy

P(t|c) – tego nie możemy dokładnie obliczyć (zależy od tego kto pisał tekst, czy był zmęczony, co wypił itd.), ale możemy estymować, większość czynników wpływających na błędy jest bowiem niezależna od człowieka (np. zamiany liter takich jak m i n)

Estymacja na podstawie obserwacji „zachowania” liter w tekstach wpisywanych ręcznie

c=argmaxc∈V

P( c∣t )=argmaxc∈V

P(t∣c )P( c ) P(c )=

C (c )+12

N+12

V

c C(c) P(c)

actress 1343 0.0000315

cress 0 0.000000014

caress 4 0.0000001

access 2280 0.000058

across 8436 0.00019

Page 61: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Błędy ortograficzne (4)Potrzebujemy zatem dużego korpusu tekstów z błędami, na podstawie którego tworzymy (automatycznie – algorytm EM lub ręcznie) macierz błędów (confusion matrix) dla zamian poszczególnych liter:

Takie macierze można utworzyć dla każdej z czterech operacji: del[x,y] (xy->x), ins[x,y] (x->xy), sub[x,y] (x->y), trans[x,y] (xy->yx)

Wtedy (chars[x,y], chars[x] – liczba wystąpień xy i x w korpusie, cp- p-ta litera w wyrazie c):

a b ... z

b - ... [b,z]

... ... - ...

z [z,b] ... -

Liczba zamian litery b na literę z

Liczba zamian litery z na literę b

del [ cp−1 , cp ]

chars [ c p−1 , c p ]

del [ cp , c p+ 1]

chars [ c p , c p+ 1 ]

ins [ cp−1 ,t p]

chars[ c p−1 ]

sub [t p , cp ]

chars [ c p ]

p(t|c)

c P(c) P(t|c) ~norm(P(t|c)P(c))

actress 0.0000315 0.000117 37%

cress 0.000000014 0.00000144 0%

caress 0.0000001 0.00000164 0%

access 0.000058 0.000000209 0%

across 0.00019 0.0000093 18%

Page 62: WPROWADZENIE DO EKSPLORACJI DANYCH ......Morfologia (1) • Morfologia - formy odmiennych części mowy (fleksja) oraz słowotwórstwo • Wejście: Sekwencja głosek (słowo) •

Błędy ortograficzne (5)

Metoda Kernighana nie bierze pod uwagę:• kontekstu słowa – tu należy posłużyć się łańcuchami Markowa

i reprezentacją n-gramową tekstu• możliwości wystąpienia więcej niż jednej pomyłki – tu można

wzbogacić algorytm poprzez określenie odległości edycyjnej pomiędzy ciągami znaków np.

intention del[i,n]ntention sub[n,e]etention sub[t,x]exention ins[n,u]exenution sub[n,c]Execution

• Gdy każda z operacji del, sub, ins ma taką samą wagę, mówimy o odległości Levenshteina

• Można oczywiście także konstruować bardziej skomplikowane miary• Obliczenie odległości edycyjnej – za pomocą metod programowania

dynamicznego

lev(intention, execution) = 5