wprowadzenie do eksploracji danych ......morfologia (1) • morfologia - formy odmiennych części...
TRANSCRIPT
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
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ę”
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.
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
Ciekawe źródła
• Dane do analizy grafowej http://snap.stanford.edu/data/index.html
• http://cs.stanford.edu/people/jure/
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/
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
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
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.
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
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
• 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
• 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
• 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
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)
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
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
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)
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
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)
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)
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
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)
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
Poziomy opisu języka - przykład
• Przykład 1• „Pies myśliwski, wyżeł ciemnobrązowy, ogon ucięty do odebrania”
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
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)
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
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.
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
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
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
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
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)
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
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
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
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
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
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
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
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!
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/
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
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
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)
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
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
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
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
Rozbiór zdania (4)
S
VPNP
ATThe
NNSchildren
PPVP
VBDate
NP
ATthe
NNcake
INwith
NP
ATa
NNspoon
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)
Soundex
„Rodzimy” przykład• Cinquecento – 15 200 000• Cinqecento – 1 760 000• Chinquecento – 178 000• Cinkłeczento – 5 180• Cinkłecento – 126
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
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
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
Błędy ortograficzne - przykład• Przykład 1• Przykład 2
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
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
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%
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