MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Automatické vyhledávání nadřazených a podřazených pojmů v textu BAKALÁŘSKÁ PRÁCE
Petr Uhlíř
Brno, 2010
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: Aleš Horák, Ph.D. ii
Poděkování Na tomto místě bych rád poděkoval Aleši Horákovi, Ph.D. za ochotu, trpělivost a pečlivost při odborném vedení této práce. Také děkuji své rodině a přátelům za důvěru a podporu při psaní práce.
iii
Shrnutí Práce se zabývá možnými postupy při získávání nadřazených a podřazených výrazů z česky psaného textu. Tyto metody byly otestovány na korpusech se stovakami milionů slov. Nalezené chyby byly analyzovány a pomocí vhodného řešení odstraněny, aby výsledné pojmy dosahovaly vysoké přesnosti. Aplikovaná pravidla byla dále zahrnuta do implamentace programu, který automaticky prochází vstupní soubor a pokouší se odhalit existující vztahy mezi slovy.
iv
Klíčová slova WordNet, korpus, hyperonymum, hyponymum, synonymum, antonymum, morfologická analýza, získávání informací, kontext, synonymní řada
v
Obsah Úvod.....................................................................................................................................................2 Sémantické vztahy................................................................................................................................4 1.1 Synonyma a antonyma...............................................................................................................4 1.2 Holonyma a meronyma..............................................................................................................5 1.3 Hyperonyma a hyponyma..........................................................................................................5 1.4 Příčina a následek......................................................................................................................7 1.5 Podudálost..................................................................................................................................7 1.6 Role a podílení se.......................................................................................................................7 1.7 Být ve stavu a stav něčeho.........................................................................................................8 1.8 Instance a třída...........................................................................................................................8 1.9 Fuzzynyma.................................................................................................................................9 Zdroje slov..........................................................................................................................................11 2.1 Korpus......................................................................................................................................11 2.2 Wikipedie.................................................................................................................................12 2.3 WordNet...................................................................................................................................12 2.4 EuroWordNet...........................................................................................................................13 Získávání sémantických vztahů..........................................................................................................15 3.1 Vzory........................................................................................................................................15 3.2 Překlad.....................................................................................................................................16 3.3 Hypertextové odkazy...............................................................................................................17 3.4 Položky seznamu.....................................................................................................................17 3.5 Využití internetových vyhledávačů..........................................................................................19 Problémy.............................................................................................................................................22 4.1 Šířka kontextu..........................................................................................................................22 4.2 Několikanásobný větný člen....................................................................................................24 4.3 Nežádoucí slova.......................................................................................................................26 4.4 Chyby ve zdroji........................................................................................................................26 4.5 Vložená vedlejší věta...............................................................................................................26 Získávání dat.......................................................................................................................................28 5.1 Dolování z Wikipedie..............................................................................................................28 5.2 Dotazovací jazyk korpusu........................................................................................................28 5.3 Výsledky získané z korpusu.....................................................................................................29 5.4 Výsledky získané programem..................................................................................................33 Závěr...................................................................................................................................................36 Literatura............................................................................................................................................37
1
Úvod Oblast počítačového zpracování přirozeného jazyka je vědní obor zabývající se interakcí mezi člověkem a počítačem. Konkrétní aplikace řeší množství důležitých problémů s rozmanitým uplatněním v praxi. Syntéza řeči se věnuje převodu mluveného slova na text a naopak, strojový překlad se snaží zprostředkovat počítačem generovaný překlad, získávání informací se zabývá vyhledáváním konkrétních informací v textu a mnoho dalších aplikací oblasti přirozeného jazyka poskytuje důležité nástroje pro interakci člověka s počítačem. Takové systémy často pracují s textem, je tedy nutné v maximální možné míře porozumět vztahům a významům jednotlivých pojmů. Právě hlavní vztahy v anglickém jazyce sdružuje databáze WordNet [11]. Její ruční vytváření trvalo skupině lingvistů v čele s profesorem psychologie G. A. Millerem přes 20 let. WordNet je lexikální databáze, která na rozdíl od abecedního řazení slovníku uspořádává pojmy způsobem blízkým organizování lidské paměti. Klíčovou strukturou je vztah nadřazenosti a podřazenosti mezi jednotlivými pojmy, který vytváří hierarchické uspořádání mezi slovy stejného slovního druhu na základě množinové inkluze. Například „ovoce“ je nadtřídou „jablka“ a „třešně“. V současné době existují způsoby automatického rozšíření WordNetu od techniky hledání konkrétních vzorů v textu, až po dolování informací z HTML dokumentů. Techniky automatického vyhledávání nadřazenosti a podřazenosti je nutné rozšířit na český jazyk a vhodně upravit k získání výsledků s maximální možnou přesností. Použijeme k tomu systém hledání vzorů v textu. Přeložíme nejčastěji používané vzory v angličtině a otestujeme počty správných výsledků při procházení českým textem. Kromě samotného vzoru ještě formulujeme podmínky, za kterých budeme považovat dané pojmy jako hyperonyma a hyponyma. Hlavní omezení se budou týkat slovních druhů, popřípadě konkrétních pádů. Naše hypotézy budeme testovat v korpusovém manažeru na dostatečně velkém množství slov, abychom mohli odhalit potencionální komplikace. Výsledky ručně projdeme a na základě nalezených chyb upravíme výchozí hypotézu, kterou znovu otestujeme. Nakonec nejpřesnější způsoby implementuje do počítačové aplikace. Na testovaných datech se ukázalo, že nejsprávnější výsledky garantuje několikanásobný vztah mezi hyponymy, který obvykle vyloučí možnost méně obvyklého použití vzoru. Časté chyby pak budou způsobovat některé metafory, nezvyklé řazení slov ve větě, vedlejší věty vztahující se
2
k podstatnému jménu a mnohé další jevy. Vytvořenou aplikaci je možné dále rozšířit o předzpracování vstupních informací tak, že se vyloučí méně frekventované případy použití vět a pojmů, které produkují chybné výsledky. Rovněž vrácené informace obsahují malé procento chyb, které by bylo možné pomocí specifických pravidel dále zpracovat. První kapitola vyjmenovává možné sémantické vztahy mezi pojmy, vlastnosti takových relací i názorné příklady s používaným značením. Klademe důraz především na ty, které obsahuje WordNet nebo EuroWordNet. Druhá kapitola obsahuje možné zdroje slov a doplňkových informací k textu a zhodnocení výhod a nevýhod konkrétního způsobu. Třetí kapitola se týká získávání sémantických vztahů popsaných v literatuře a na internetu. Uvádíme několik možných metod od využití vzorů v textu až po hledání v HMTL dokumentech pomocí seznamu položek. Čtvrtá kapitola uvádí problémy v získávání vzorů z textu na názorných příkladech nalezených vět a pokouší najít způsob, který by dokázal všechny zmíněné problémy eliminovat a nevytvořit přitom nové. Pátá kapitola obsahuje použité postupy s popisem konkrétních dotazů nad texty, udává odhad na maximální množství nalezených výrazů a počty správně klasifikovaných.
3
Kapitola 1
Sémantické vztahy Sémantické vztahy tvoří komplexní systém vzájemných významů jednotlivých slov – obecně lexikálních jednotek. Rozlišujeme mezi nimi tři základní třídy vztahů [1]. Ekvivalentní vztahy, které tvoří třídu vzájemně substituovatelných pojmů. Obvykle mezi ně řadíme většinu synonym. Hierarchické vztahy odpovídají nadřazenosti/podřazenosti (hyperonyma/hyponyma), v logice také označované jako vztah specifického a obecného nebo užšího a širšího pojmu. Někdy mezi hierarchické vztahy řadíme také celek/část (holonyma/meronyma). Třetí třída obsahuje pojmy, mezi kterými není vztah hierarchie, ani ekvivalence. Nejčastěji se jedná o vztahy typu: příčina/následek, předmět/použití apod. (Tato kapitola čerpá převážně z [2]) 1.1 Synonyma a antonyma Synonyma jsou slova stejného nebo podobného významu, která jsou vzájemně v určitém kontextu zaměnitelná [2]. Platí pro ně: „Pokud X je synonymum Y, pak i Y je synonymum X.“ Vytváří tedy symetrickou relaci. V EuroWordNetu se používá také takzvaná blízko-synonymní relace (nearsynonymy), která zmírňuje podmínku vzájemné substituovatelnosti synonym. Za blízko-synonyma jsou považována slova, která splní následující test: „Pokud něco je X, pak je to i Y. Pokud něco je Y, pak je to i X.“ Přičemž jedna z vět platit musí a druhá je pouze pravděpodobně platná. V angličtině tuto podmínku splní „garbage – trash“. Druhý způsob získání blízko-synonymních pojmů je zúžit platnost testovacích vět pouze v případě některých hyponym z X, ale v takovém případě vyžadujeme nutnou platnost obou vět. V angličtině jsou taková slova „tools“ a „instrument“, která jsou synonymní pro „hammer“ a další. (čerpáno z [2] i dále) Synonyma existují pro všechny slovní druhy. Antonyma jsou slova opačného významu jako dobro a zlo, přítel a nepřítel nebo příliv a odliv. Jejich vztah je symetrický stejně jako u synonym. Můžeme je rozlišit podle slovní formy a významu. Výrazy přijmout a akceptovat mají stejný význam, ale jejich antonyma se vytvářejí na základě slovní formy: nepřijmout a neakceptovat. Slovníkové databáze typu WordNet pracují s tímto druhem antonymie, kterou EuroWordNet dále rozšiřuje o blízko-antonymní pojmy (nearantonymy) protikladné svými významy. Každá dvojice antonym musí mít svůj nadvýraz (hyperonymum), který udává rámcovou skupinu, v níž jsou pojmy protikladné. Muž a žena jsou svými opaky ve skupině osob. Obecně můžeme říct: „X a Y jsou oba druhu Z a X je opakem Y.“ Vhodně zvolený nadvýraz může zabránit
4
porovnávání výrazů jako jablko a kancelář. 1.2 Holonyma a meronyma Holonymie se týká pouze podstatných jmen, jelikož definuje sémantický vztah celku k jeho částem. Obvykle se tento vztah v angličtině označuje jako „is part of“ (je část celku) nebo „is member of“ (je člen něčeho). Francie je například částí Evropy a členem Evropské unie. Holonymie je vztah hierarchie s vlastnostmi uspořádání, tranzitivitu ilustruje následující příklad: dveře jsou částí stěny a ta je částí budovy. Meronyma jsou opakem k holonymům. Jsou to slova označující části celku, tedy „parts of“ (části něčeho). Příkladem meronym ke slovu obličej mohou být oči, ústa a nos. Podobně Evropská unie má za člena (has member) Velkou Británii. EuroWordNet rozšiřuje vztah celek-část do pěti dalších podkategorií: 1. (part) části, které utvářejí celek: ruka – prsty 2. (portion) kus a celek, z kterého byl oddělen: ingot – kov 3. (location) širší místo, které zahrnuje menší oblast: kontinent – stát 4. (member) množina a její prvky: flotila – loď 5. (made-of) věc a materiál, z kterého se skládá: kniha – papír Existují však i jiné vztahy, které se pro jejich velký počet dále nerozlišují. Navíc můžeme pojmy rozdělit na unikátní a neunikátní. Prsty jsou pouze částí ruky, zatímco okno může být částí auta, budovy a dalších. Bez ohledu na jedinečnost prvku je propojen se všemi celky, které tvoří. 1.3 Hyperonyma a hyponyma Hyperonyma jsou slova nadřazená svým významem, tedy obecnější. Většina pojmů má pouze jedno přímé hyperonymum, které dohromady vytvářejí stromovou strukturu. Nicméně soubor hyperonym vytváří obecně graf, neboť existují i výjimky, které mají více než jeden nadřazený výraz. Příkladem takového pojmu je obec, které je nadřazena obydlená část stejně jako administrativní oblast. Pokud uspořádáme graf tak, že nahoru dáme nejobecnější pojmy a pod ně stále o něco konkrétnější, získáme pohybem v grafu nahoru a dolu vztah generalizace a specializace. Pro hyperonyma platí také vlastnosti uspořádání, zejména tedy tranzitivita. Například pokud víme, že Toyota je auto a auto je vozidlo, můžeme z toho odvodit, že i Toyota je vozidlo. Každé podstatné jméno můžeme zařadit do jedné z kategorií abstraktní entita a konkrétní entita, jejichž společným hyperonymem je entita. Opakem hyperonym jsou hyponyma, neboli podvýrazy. Označují objekt přesněji a konkrétněji. Každý nadvýraz musí obsahovat více než jedno hyponymum, jelikož si nemohou být 5
rovny. Jedná se o vlastní podmnožinu nějakého obecnějšího výrazu, jako například pro výraz indoevropské jazyky to může být němčina. V angličtině se obvykle tento vztah označuje jako „is kind of“ (je druh něčeho).
Obrázek 1.1: Graf hierarchicky setříděných pojmů podle vztahu hypero-hyponymie V případě, že X je podvýraz a Y je nadvýraz, můžeme říct, že „X je Y s určitými vlastnostmi“. Ve větě můžeme nahradit hyponymum některým jeho hyperonymem, aniž by se změnil význam, ale ne naopak. Nahradíme-li v následující větě veverku zvířetem, význam zůstane zachován. „Při procházce městem zahlédl veverku.“ Významnou roli v určování vztahů nadřazenosti a podřazenosti hraje také polysémie. Jediné slovo může mít více významů, které vytvářejí rozdílná uspořádání. Obvyklé je to zejména v angličtině. Podle statistik WordNetu je každé osmé slovo polysémní a má průměrně tři významy [3]. V češtině může být vícevýznamové slovo pes, jak uvádí následující příklad: „Pes je nejlepší přítel člověka. Cítil jsem se pod psa.“ V druhé větě nejde o žádnou konkrétní jednotku, ale o abstraktní pocit, takže oba výrazy mají společné pouze jediné hyperonymum. V jazyce se také vyskytuje vertikální polysémie, často označovaná jako autohyperonymie, která popisuje jediné slovo, jehož dva různé významy k sobě mají hyponymický vztah [4]. Mezi taková slova patří pití, které označuje buď libovolnou tekutinu, nebo alkoholický nápoj. Vztah hypero-hyponymie neuvažujeme u přídavných jmen a příslovcí, které pouze dále
6
specializují podstatná jména, popř. slovesa. Přidáním přídavného jména typicky vytvoříme další hyponyma k danému pojmu, například přidáním slova "indoevropské" zpřesníme pojem "jazyky". U sloves můžeme nalézt vztah mezi chodit a pohybovat se, podobně jako u odvozených podstatných jmen chůze a pohyb. Slovesa však nemají tak bohatou hierarchickou strukturu. 1.4 Příčina a následek Vztahy vzájemného vyplývání jsou obvyklé zejména u sloves. V angličtině se tato relace označuje „X CAUSE Y“ a „Y IS CAUSED BY X“. Příkladem takových slov může být zabití, které je příčinou umírání nebo nalezení, které je následkem hledání. Pro vztah příčiny a následku platí, že jedno vyplývá z druhého, ale ne naopak. Nemusí se však týkat pouze dvou sloves, ale jedno může být například nahrazeno podstatným jménem jako u umírání a smrt. 1.5 Podudálost Podudálost (anglicky subevent) označuje vlastnosti sloves „mít vlastní podmnožinu“ (has subevent) nebo „být vlastní podmnožinou“ (is subevent of). Například sloveso spát má podudálost chrápat a naopak chrápat je podudálostí spát. Podobně podudálostí nakupování je placení, ale zároveň i podstatné jméno platba. 1.6 Role a podílení se Mezi některými objekty a činnostmi je velmi těsný vztah. Čtení se silně váže ke knize, novinám, časopisům a dalším. Blízký vztah některých pojmů je vidět i na procesu odvozování nových slov jako běh/běžec, telefon/telefonovat. Pokud je relace z podstatného jména na sloveso, nazýváme ji „role“ (anglicky role), opačným směrem ji označujeme jako „podílení se“ (anglicky involved). Role je relace, kde sloveso označuje nějakou situaci a podstatné jméno v ní hraje zásadní roli. Podobně význam slovesa je silně charakterizován podstatným jménem podílejícím se na jeho významu. V této relaci se často odráží morfologická podobnost mezi podstatným jménem a slovesem. Například práce a pracovník nebo vysílat a vysílač. EuroWordNet rozlišuje podrobně dalších několik rolí: 1. agent 2. pacient 3. lokalita 4. směr 1. zdroj 7
2. cíl 1.7 Být ve stavu a stav něčeho Tento vztah spojuje podstatné jméno s nějakým přídavným jménem označujícím jeho stav. Označujeme jej „be in state“ (být ve stavu), když směřuje od podstatného jména k přídavnému, v opačném případě používáme „state of“ (stav něčeho). Například podstatné jméno chudý označuje stav být chudým a naopak přídavné jméno chudý popisuje stav chudáka (člověk, který je chudý). Tento vztah můžeme otestovat pomocí obecné věty, kde X je podstatné a Y přídavné jméno: „X je to, co je ve stavu Y.“ 1.8 Instance a třída Vztah instance a třídy je podobný hyponymii a hyperonymii, ale místo relacemi mezi třídou a jejími entitami se jedná vztah individuálních entit. Pokud X je vlastní jméno a je jedním z Y, které zastupuje podstatné jméno, pak řekneme, že X „belongs to class“ Y (X patří do třídy Y). V opačném směru značíme vztah jako „has instance“ (má instanci). Příkladem může být Manchaster patřící do třídy měst, a tedy i město má instanci Manchaster. WordNet tento vztah řadí přímo k hypero-hyponymii.
8
vztah, relace
značení
příklad
synonyma
SYNONYM
blízko-synonyma
NEAR_SYNONYM
antonyma
ANTONYM
dobro <=> zlo
blízko-antonyma
NEAR_ANTONYM
přijmout <=> akceptovat
holonymum
HAS_HOLO_PART
nos => hlava
HAS_HOLO_MADEOF
voda => polévka
HAS_MERO_MEMBER
tvary => kruh
HAS_MERO_LOCATION
město => centrum
hyperonymum
HAS_HYPERONYM
dopravní prostředek => auto
hyponymum
HAS_HYPONYM
pizza => jídlo
příčina
CAUSES
kouření => rakovina
následek
IS_CAUSED_BY
vzbuzený => vzbudit
mít podudálost
HAS_SUBEVENT
nakupování => placení
být podudálostí
IS_SUBEVENT_OF
chrápání => spaní
role
ROLE_AGENT
učitel => učit
ROLE_PACIENT
pacient => léčit
INVOLVED_INSTRUMENT
krystalizovat => krystal
INVOLVED_LOCATON
bojovat => bojiště
INVOLVED_TARGET
vzlétnout => nebe
být ve stavu
BE_IN_STATE
manžel => ženatý
stav (někoho/něčeho)
STATE_OF
rozvedená => žena
instance
BELONGS_TO_CLASS
Praha => město
třída
HAS_INSTANCE
řeka => Dunaj
meronymum
podílení se
Jitřenka <=> Večernice
Tabulka 1.1: Možné vztahy a jejich příklady 1.9 Fuzzynyma Tento vztah zahrnuje všechny dosud nepopsané vztahy, u kterých platí, že X má silný vztah k Y.
9
Obrázek 1.2: Náhled různých vztahů mezi pojmy
10
Kapitola 2
Zdroje slov V naší práci se zaměříme především na elektronická data, a to z důvodu, že v takovém případě budeme moct využít automatické získávání informací z textu. Jednotlivé zdroje slov se liší velikostí, typem zpracovávaných dat i doprovodnými informacemi, které poskytují. Uvedeme si zejména zdroje slov, které budeme v dalších částech práce často využívat. 2.1 Korpus Korpus je soubor lingvistických dat soustřeďujících se na určité období, autora nebo jazyk a jeho vývoj. Může obsahovat písemné texty určitého jazyka nebo přepis mluveného slova případně doplněný audiovizuální podobou. Kromě jednojazyčných korpusů existují také vícejazyčné takzvané paralelní korpusy, které vedle sebe obsahují texty v různých jazycích. Hlavním účelem korpusu je ověřování hypotéz, vytváření statistické analýzy, zjišťování výskytů a testování lingvistických pravidel [5]. Proto je důležité, aby zdrojové texty co nejvíce popisovaly přirozený jazyk od způsobu používání až po výskyt slov. Asi nejlépe popsal limity a přínosy korpusů Charles J. Fillmore: „Učinil jsem dvě pozorování. Za prvé, nemyslím si, že nějaký korpus, jakkoliv velký, obsahuje informace o celé oblasti anglické slovní zásoby a gramatiky, kterou chci prozkoumat; všechny které jsem viděl jsou nedostatečné. Druhé pozorování je, že každý korpus, který jsem měl šanci vyzkoušet, jakkoliv malý, mi ukázal taková fakta, že si nedovedu představit jejich získání jiným způsobem.“ [6]. Jelikož žádný korpus nemůže postihnout neustále se vyvíjející jazyk úplně, je nutné vhodně zvolit druh, který se pro konkrétní práci hodí nejlépe [7]. Existují korpusy rozlišitelné podle použitého stylu (publicistický, odborný, všeobecný, neformální nebo žánrově vyvážený), podle délky období resp. zachycující proměnu jazyka, které označujeme za diachronní oproti synchronním, které zachycují kratší období, ve kterém může být jazyk považován za neměnný. V dnešní době se využívají především elektronické korpusy obsahující mnoho milionů slov. Jedním z největších je Britský národní korpus, který obsahuje kolekci 100 milionů slov psané a mluvené angličtiny z různých zdrojů po celé Británii [8]. Seznam několika dalších světových korpusů se nachází na adrese http://nlp.stanford.edu/links/statnlp.html#Corpora. V České republice se zabývá budováním korpusu Ústav Českého národního korpusu (dále jen ÚČNK), který spravuje mimo jiné i paralelní korpus InterCop, korpusy mluveného jazyka i korpus SYN2006PUB s 300
11
miliony slov z textových publikací vydaných mezi roky 1990 a 2004. Ústav jazyka českého spravuje korpus DIALOG se stovkou nahrávek a přepisů různých pořadů [9]. Při Masarykově univerzitě existují například korpusy DESAM nebo czes [10]. Velmi důležitou součástí korpusu jsou sémantické značky, které poskytují informace o slovním druhu a podrobnějších kategoriích pojmu. Další zásadní vlastnost je lemmatizace, tedy poskytování všech tvarů slova pomocí jeho základního tvaru. Pomocí libovolného rozhraní pak můžeme klást poměrně pestré množství dotazů, například na infinitiv nekončící na „t“ nebo na všechny tvary jednotného čísla slova „pes“. Ke specifikování našeho požadavku použijeme regulární výrazy spolu s konkrétním značkováním, které se u různých korpusů může lišit. 2.2 Wikipedie Wikipedie je internetová encyklopedie, která obsahuje řadu definic a pojmů. Česky psaná Wikipedie uchovává přes 150 tisíc článků, které se týkají velkého množství základních výrazů.
Celá
encyklopedie je propojená hypertextovými odkazy a jednotlivé pojmy jsou dále navázány na cizojazyčné verze. Výhodou je neustálé rozšiřování starých textů a přibývání nových. Hlavní nevýhoda je, že neexistuje přímo zodpovědná redakce, která by garantovala kvalitu obsahu. 2.3 WordNet WordNet je lexikální databáze anglického jazyka vyvíjená na Princeton University ve Spojených státech [11]. Cílem WordNetu bylo navrhnout systém, který by obsahoval znalosti uspořádané způsobem blízkým tomu, jak člověk zpracovává řeč. To vedlo k vytvoření množin synonym nazývané synsety, které se vzájemně propojovaly sémantickými vztahy. Takto definovaná struktura má oproti syntakticky řazeným slovníkům několik výhod. Kromě mnohem intuitivnějšího zacházení nabízí také snadnou podporu automatické analýzy textu a propojení s aplikacemi umělé inteligence. Slova jsou rozdělena na podstatná jména, slovesa, přídavná jména a příslovce, jelikož pro každou skupinu platí různá gramatická pravidla.
12
Obrázek 2.1: WordNet 2.1 Browser zobrazující hyperonyma pro pojem "country" V současnosti WordNet obsahuje okolo 150 000 slov organizovaných do téměř 120 000 synsetů [3]. Navazuje na něj také množství aplikací, které se zabývají zjednoznačňováním významů slov, získáváním informací, automatickou klasifikace textu, určováním podobnosti slov a dalšími oblastmi. 2.4 EuroWordNet EuroWordNet je vícejazyčná databáze podobná americkému WordNetu pro některé evropské jazyky jako je holandština, italština, španělština, němčina, francouzština, čeština a estonština. Jednotlivé verze jsou propojené pomocí mezijazykového indexu (ILI, Inter-Lingual-Index). Pomocí něj je možné přecházet ze slova v jednom jazyku do korespondujícího výrazu v jiném. (čerpáno z [12]) Základní rozdíl mezi relacemi ve EuroWordNetu oproti americkému WordNetu je možnost 13
vytváření vztahů mezi jednotlivými třídami slovních druhů (v angličtině across part of speach označované jako XPOS). Ve WordNetu každý slovní druh vytváří vlastní oddělený systém jazykových relací. Výsledkem je, že koncepčně blízké pojmy jsou úplně separovány pouze kvůli rozdílnému slovnímu druhu. Příkladem mohou být slova ozdobení a ozdobit, které odkazují ke stejné činnosti. (čerpáno z [13]) EuroWordNet rozšiřuje relace WordNetu o vztahy mezi slovními druhy (XPOS), takže obsahuje například synonyma mezi podstatnými jmény a slovesy jako pohyb a pohybovat se. Vztah hypero-hyponymie mezi různými slovními druhy může vypadat takto: závidět je druhem emoce. Také je možné využít negativní relace, které je rozdílná od antonymie, neboť neudává opačný příklad, ale signalizuje, že mezi pojmy se určitá relace nenachází. Klasický příklad z angličtiny je rozdíl mezi výrazy „monkey“, který odkazuje ke zvířeti obecně, a „ape“ týkající se podtřídy bez ocasu. K vyjádření rozdílu použijeme negativní příznak, který připojíme k výrazu „ape HAS MERONYM tail“. (čerpáno z [2])
14
Kapitola 3
Získávání sémantických vztahů V této kapitole se budeme zabývat získáváním informací o vztahu nadřazenosti a podřazenosti přímo z textů. Člověk takové vztahy dokáže rozpoznat snadno na základě porozumění textu. Abychom dokázali určit některé vztahy včetně hypero-hyponymie, není dokonce nutné znát význam všech slov, některé informace je možné odvodit pouze z kontextu. Pro stroj je naopak získání těchto dat komplikovaný problém. 3.1 Vzory V angličtině slouží k vyhledávání nadřazených a podřazených výrazů systém častých vzorů, které s vysokou pravděpodobností popisují hledaný vztah. Vzory obsahují různá klíčová slova, na jedné straně od tohoto slovo se nachází nadvýraz a na druhé jeden nebo více podvýrazů oddělených čárkou nebo spojkami „and“ a „or“. V angličtině se používají tato klíčová slova: „such as“, „and other“, „including“ a „especially“ [14]. Tyto výrazy se s různým úspěchem dají aplikovat i na češtinu. Příkladem takového použití může být text: „ovoce jako je jablko“, který dává smysl i v obecnější formě „X jako je Y“, z čehož vyplývá, že Y je druhem X. Další klíčová slova se však v české větě dají použít více způsoby a tím se snižuje přesnost výsledku. Opačný efekt má několikanásobný větný člen, který může zastupovat podvýrazy ve větách typu: „Koupili jsme skříň, židle, stůl a další nábytek.“ Kromě překladu stávajících vzorů z angličtiny je možné hledat nové. Použijeme k tomu metody učení využívané v systémech zodpovídání otázek. Například při zjišťování data narození (otázka: „Kdy se X narodil?“) je hledaná odpověď typicky: „Mozart se narodil 1756.“ nebo „Mozart (1756 – 1791)...“, z čehož můžeme obecně odvodit vzor „<JMÉNO> se narodil
“ a „<JMÉNO> ( –“. Algoritmus na nalezení takovýchto vzorů dostane na počátku informaci jako „Mozart 1756“ a tento řetězec předloží vyhledávači. Z vrácených dokumentů vybere prvních 1000, které rozdělí na jednotlivé věty. Nakonec algoritmus vybere pouze takové části, které obsahují obě hledané fráze a zároveň mezi nimi nejsou více než tři další slova. (čerpáno z [15]) Takovýto způsob získávání vzorů můžeme využít i pro vztah nadřazenosti a podřazenosti. Vezměme si například vztah Francie-stát. Výsledky vyhledávače ukazuje obrázek 3.1. Typicky najdeme výrazy jako: „Francie je stát...“, „zadlužené státy: Itálie, Francie a Anglie...“ nebo „Francie předsedá státům Evropské unie...“. Z nalezených částí vět vybereme ty s nejčastějším výskytem.
15
Nyní máme vzory, o kterých víme, že mohou popisovat námi hledaný vztah. Zbývá otestovat, jestli nalezený vzor nepokrývá i velké množství jiných vztahů. Tento postup opakujeme s různými příklady, abychom vyloučili způsoby, které se vztahují pouze k určitému okruhu výrazů, např. zemi nebo státu. Tento způsob hledání vzorů nachází především často používaná spojení konkrétních výrazů, která mohou mít i jiné jazykové funkce jako například dvojtečka.
Obrázek 3.1: hledání výrazu "stát * Franice" na www.atlas.cz
3.2 Překlad Nové pojmy ve vztahu hypero-hyponymie je možné získat také překladem z jiného jazyka. Víme-li například, že „apple“ je druhem „fruit“, můžeme z toho překladem odvodit, že také „jalbko“ je druhem „ovoce“. Vztahy nadřazenosti a podřazenosti entit jsou na jazyku nezávislé, protože 16
vyjadřují apriorní skutečnost charakterizovanou vlastnostmi entity. Problémy však způsobují pojmy navázané na tyto entity, protože často bez kontextu nedovolují přesně určit, ke které entitě se vztahují (taková slova nazýváme homonyma). „Present“ je klasický příklad z angličtiny, u kterého nevíme, zda se jedná o přítomnost nebo dárek, neboť jsou dvě různé entity navázány na jeden pojem. Každý z významů je přesně určen množinou svých nadvýrazů, avšak samotné slovo nám neumožňuje určit, ke kterému ze svých významů patří. Z WordNetu zjistíme, že „present“ má nadvýrazy „gift“ nebo „time“, pro správné zařazení tedy musíme vědět, že české slovo „přítomnost“ je podvýrazem „času“, avšak to je informace, kterou bychom právě chtěli získat. Při překladu může také snadno dojít k záměně slovních druhů. Zmíněné slovo „present“ může v angličtině vystupovat nejen jako podstatné jméno, ale i přídavné jméno nebo sloveso. Poslední kategorií problémů jsou slova, která nemají svůj ekvivalentní protějšek. 3.3 Hypertextové odkazy Internetové stránky mají často velmi podobnou strukturu jako graf hypero-hyponymických vztahů. Obsah zpravidla bývá strukturován od obecného ke konkrétnímu pomocí sítě hypertextových odkazů. Běžné je to zejména na serverech s katalogy produktů, který jsou nějakým způsobem hierarchicky seřazeny. Takovými zástupci jsou vyhledávače založené na katalozích a internetové obchody. Nadvýrazy se vyskytují v menu, které zpravidla nemívá více než dvě úrovně, a podvýrazy se nacházejí v nadpisech produktů. Největší překážkou v získávání těchto informací je nutnost najít pro každý server zvlášť místa, kde se na stránce nacházejí, a malé množství nadvýrazů a podvýrazů v rámci jediného serveru. Někdy také bývají kategorie spojeny nežádoucí způsobem, jako např. „elektronika a televize“, z čehož by vyplývalo, že oba pojmy jsou na stejné úrovni, a komplikovalo by to další zařazení konkrétních produktů. 3.4 Položky seznamu Pro vyhledávání na webu je možné použít také takzvanou itemizaci, neboli využití položek číslovaného nebo nečíslovaného seznamu a jejich hlaviček, jak je vidět níže.
17
Obrázek 3.3: Položky seznamu Výhodou je snadné identifikování obsahu na stránce, které někdy může být zkomplikováno hledáním hlavičky. Z tohoto důvodu se využívá pouze kandidát na hlavičku. Algoritmus pak postupuje ve čtyřech následujících krocích: 1. Získání HTML dokumentu a extrahování seznamových položek utvářejících množinu kandidátů na hyponyma (hyponymy candidate set HCS) 2. Vybrání kandidátů na hyperonyma v blízkosti seznamu a také dvou množin dokumentů. Jednu z nich tvoří velké množství náhodně vybraných dokumentů, nazýváme ji globální množinou G a bude určovat obecné frekvence jednotlivých slov. Poté procedura stáhne dokumenty obsahující kandidáty na hyponyma v HCS pomocí nějakého internetového vyhledávače. Tato množina se nazývá lokální, označíme ji LD(C), kde C je množina hyponym HCS. N je množina podstatných jmen, která mohou být kandidáty na hyperonyma. Hyponymum pak označíme h(C).
h C =argmax n∈ N { hS n , C } hS n , C =df n , LDC⋅idf n ,G df(n, D) je počet dokumentů z množiny D obsahující podstatná jména n. idf(n, G) je definováno jako log(|G|/df(n, G)) hS dosahuje velkých hodnot pro podstatná jména objevující se v mnoha dokumentech z lokální množiny a mála z globální množiny. 3. Dosavadní postup nevyloučil silně souvislé výskyty, které nejsou v hyperohyponymním vztahu. Takové pojmy jsou například Toyota a cena, které se často budou vyskytovat společně. Proto se zavádí funkce sémantické podobnosti mezi kandidátskými hyperonymy a hyponymy. 18
simn , C =ho C⋅hy n/∣hoC ∣⋅∣hy n∣ ho(C) označuje vektor hyponymních kandidátů, zatímco hy(n) označuje vektor možných hyperonym n. Předpokládejme, že všechny možné argumenty pozic jsou označeny {p1,...,pl} a {v1,...vo} označující slovesa. Vektory jsou poté definovány následovně. ho C=〈 f h C , p1, v1 , ... , f h C , pl , v o 〉 hy n=〈 f n , p1, v 1 ,... , f n , pl , v o 〉 fh(C,p,v) udává frekvenci kandidátů na hyponyma v HCS C na pozici p se slovesem v mezi lokálními dokumenty, zatímco f(n,p,v) je počet podstatných jmen n na pozici p se slovesem v mezi globálními dokumenty. Nakonec se ještě aplikují následující pravidla: A) Pokud je počet dokumentů,
které obsahují kandidátská
hyperonyma, menší než součet počtu dokumentů obsahující položky z HCS, pak obě položky odstraníme z výstupu. B) Pokud se kandidát na hyperonymum objeví v seznamu HCS jako podřetězec a není sufixem, pak se obě položky z výstupu odstraní. V případě, že se kandidát na hyperonymum nachází v pozici sufixu, pak jej musí obsahovat polovina položek z HCS, jinak se hyperonymum i HCS odstraní. C) Pokud je kandidát na hyperonymum název místa, pak je nahrazen řetězcem „název místa“. Rozpoznání názvů míst provádí morfologický analyzátor. 4. Nakonec se vezme k nejlepších výsledků, které tvoří konečný výstup. Tento přístup dosahuje přesnosti okolo 80 % ještě pro 500 párů hyperonym a hyponym a se vzrůstajícím počtem párů přesnost dále klesá k 60 % pro dvojnásobek a 55 % pro trojnásobek párů. (tato podkapitola čerpá z [16]) 3.5 Využití internetových vyhledávačů Internet je obrovská zásobárna slov s více než 3 miliardami webových stránek a více než jedním milionem nově přidaných denně. K vyhledávání požadovaných dat se používají internetové vyhledávače, které vracejí množinu dokumentů obsahující hledanou frázi v nadpisu, URL nebo těle souboru. Oproti korpusu však internetové vyhledávače nabízejí mnohem „slabší“ dotazovací jazyk. Zpravidla nemůžeme omezit počet hledaných slov, nemůžeme zakázat, aby se před hledanou frází vyskytovala jiná fráze a často nedokážeme vyhledat některé znaky, mezi které patří i interpunkce. 19
Například je nemožné vyhledat několikanásobný větný člen pouze na základě položeného dotazu. Dokumenty na internetu rovněž nenesou další sémantické informace, na které bychom se mohli ptát. Podstatné pro nás je, že můžeme pokládat dotazy na souvislou část textu. Obvykle se takové výrazy dávají do uvozovek (Google nebo Seznam), ale nemusí to být vždy pravidlem. K vyhledávání nadřazenosti a podřazenosti použijeme frázi „X je Y“. Na začátku budeme požadovat slovo, jehož hyperonymum nebo hyponymum hledáme a podle toho položíme dotaz „X je *“ nebo „* je Y“, přičemž znak (*) zastupuje libovolný výraz. Například do vyhledávače vložíme frázi „programovací jazyk je *“, některé odpovědi shrnuje následující tabulka. Nejlepší programovací jazyk je C++. Jeho nejoblíbenější programovací jazyk je Visual Basic. Programovací jazyk je kompatibilní s SCPI a IEEE488. Programovací jazyk je prostředek pro zápis algoritmů, jež mohou být provedeny na počítači. Programovací jazyk je jen řemeslný nástroj, nic jiného. Tabulka 3.1: Některé odpovědi vyhledávače Google na dotaz "programovací jazyk je *" Nalezené výsledky budeme dále filtrovat, abychom se zbavili nežádoucích informací. Proces filtrování zahrnuje odstranění vět, které nezačínají hledanou frází nebo nenásledují za spojkami jako „že“, „protože“, „zatímco“, „ačkoliv“ a dalšími. Před získáním hyperonyma určíme slovní druhy ve zbylých větách a následně vybereme první podstatné jméno z výrazu a případné modifikátory ignorujeme. Získaná slova spojíme na základě vzájemné synonymie definované WordNetem do jediného konceptu. Nakonec označíme za hyperonyma takové koncepty, které se vyskytují častěji než ostatní. Pro výraz „programovací jazyk“ bude nalezený nadvýraz „nástroj“. Podobným způsobem budeme získávat hyponyma. Nejprve zformulujeme dotaz formátu „* je Y“, který předložíme vyhledávači. V následující tabulce uvedeme příklady výsledků nalezených pomocí vyhledávače na základě otázky: „* je programovací jazyk.“
20
PHP je programovací jazyk a v každém programovacím jazyce vznikají chyby. Makro je programovací jazyk "Microsoft Visual Basic", který je součástí MS Excel. PostScript je programovací jazyk určený ke grafickému popisu tisknutelných dokumentů vyvinutý v roce 1985 firmou Adobe Systems. GNU Octave je programovací jazyk, který umožňuje složité výpočty. Prolog je logický programovací jazyk. Haskell je programovací jazyk s volnějšími pravidly. Java je programovací jazyk, i platforma. Java je programovací jazyk pocházející od firmy Sun Microsystems. Tabulka 3.2: Nalezené odpovědi na dotaz "* je programovací jazyk" vyhledávačem Google Z nalezených záznamů použijeme jako kandidáty na hyponyma takové, kde se možné hyponymum nachází přímo před zadanou frází. Následně kandidátská hyponyma s nízkým počtem výskytů zkontrolujeme opačným směrem. Vezmeme nalezená Y a ověříme, jestli se původní výraz, ze kterého jsme vycházeli, nachází mezi nejčastějšími hodnotami X. Tímto způsobem odstraníme informace, které jsou chybné. Pro uvedený příklad by to znamenalo ověřit, že „PostScript je *“ a tento výraz má mezi vrchními hyperonymy „programovací jazyk“. To znamená, že „PostScript“ rozpoznáme jako hyponymum a stejně tak „Javu“, která má vysoký podíl výskytů. K vyhledávání můžeme využít i jiných frází, případně jejich kombinací. Pokaždé je však nutné ověřovat, že nalezené výrazy platí směrem od hyperonyma k hyponymu i naopak. Ačkoliv internet obsahuje obrovské množství textů, jsou často neformální, nestrukturované a nespolehlivé, neboť jejich autorem může být kdokoliv. Tato metoda funguje velmi dobře pro specifické výrazy, zatímco obvykle selhává u obecných podstatných jmen jako „student“, „zvíře“ a podobné. (tato podkapitola čerpá z [17])
21
Kapitola 4
Problémy V této kapitole se budeme zabývat komplikacemi při vyhledávání nadřazených a podřazených výrazů v textu. U každého typu problému ukážeme možné způsoby jeho řešení spolu s výhodami a nevýhodami takového postupu. Výklad doplníme názornými příklady vět nalezených v korpusu [18] a na české Wikipedii. Omezíme se pouze na hledání podstatných jmen. Ke každému slovesu existuje jeho zpodstatnělá verze, která vytváří stejný druh vztahů nadřazenosti a podřazenosti jako samotné sloveso s výjimkou toho, že ve své hierarchii obsahuje i podstatná jména, která nemají svůj slovesný ekvivalent. Například „plavat“ obsahuje podobné vztahy jako „plavání“, nadvýrazy jsou „sportovat“ a „sportování“, avšak „sportování“ je podvýrazem „abstraktní entity“, která žádný svůj slovesný ekvivalent nemá. 4.1 Šířka kontextu Prvním problémem při získávání dat je otázka šířky vyhledávaného kontextu. V nejužším případě budeme mít pouze dvě podstatná jména v hledaném vztahu, avšak ztrácíme některé upřesňující údaje. „Zahrady mohou být někdy kombinovány s dalšími krajinnými prvky jako jsou aleje, anglické parky, lesy apod.“ Z uvedené věty bychom získali pouze vztah mezi „prvky“ a „aleje“, který je sice správný, ale zdaleka nepopisuje maximum možného. Výraz „prvky“ není ani přímým hyperonymem „krajinných prvků“, neboť ty mohou být například druhem výzdoby. Na konci věty se navíc nachází několikanásobný větný člen, který je také možné využít. Výběr nejužšího kontextu můžeme bez obav rozšířit i na zahrnutí několikanásobných větných členů, avšak stále ztrácíme polovinu informace v případě „anglických parků“, kde vybereme pouze „parky“. V obou dvou případech jsme měli podstatné jméno rozšířené adjektivem, avšak v druhém z nich jde o vztah přímé hyperohyponymie. To znamená, že pomocí libovolného modifikátoru dostaneme další hyponyma. Proč si tedy pamatovat konkrétně „anglické“ parky místo sady modifikátorů? Přidáním libovolného adjektiva sice získáme jazykově smysluplný výraz, který však nemusí mít empirickou oporu ve světě podobně jako „české parky“.
22
Předchozí případ upozorňuje na potřebu rozšíření kontextu o přídavná jména, ale využijeme rovnou i další podstatná jména a přívlastky o maximální délce výrazu dvou slov. „Část muslimů také tvoří přistěhovalci v různých částech světa jako je západní Evropa.“ V případě krátkého kontextu bychom buď ignorovali slova „částech“ a „západní“, pak bychom špatně vyvodili, že svět je druhem Evropy (ve skutečnosti je mezi nimi vztah meronymie), nebo bychom tento vztah vypustili úplně. V případě středního kontextu je vyvozený vztah správný, jelikož západní Evropa je částí světa. „Zahrnuje také pomocné vědecké a společenské organizace jako jsou knihovny, vydavatelství a nemocnice.“ „Tato situace vedla k tomu, že ruská byrokracie často a jednoduše podléhala blahovůli carského dvora a obecně postrádala některé hlavní charakteristiky moderní byrokracie jako jsou řádné procedury, pevně stanovené institucionální vztahy nebo řádné právní postupy.“ Dvě výše uvedené věty ukazují nedostatky středního kontextu. V prvním případě je těžké určit, zda mluvčí považuje knihovny, vydavatelství a nemocnice pouze za „společenské organizace“ nebo i „pomocné vědecké“. Naplno se zde projevuje nejednoznačnost jazyka, kterému chybí jednoznačné uzávorkování. Kdybychom do věty doplnili závorky nejpravděpodobnějším způsobem, vypadala by následovně: „Zahrnuje také (pomocné vědecké a společenské) organizace jako jsou (knihovny, vydavatelství a nemocnice).“ V takovém případě bychom potřebovali využít kontext delší než střední. Druhou variantou je: „A a (B jako jsou (C, D a E))“ a nejméně pravděpodobnou, avšak možnou, je: „A a (B jako jsou (C, D)) a E“. Druhá zmíněná věta při zahrnutí pouze středního kontextu ani nepřipouští správnou interpretaci, „řádné procedury“ totiž nejsou druhem „moderní byrokracie“, ale jsou druhem „charakteristiky byrokracie“. Rovněž další dvě charakteristiky jsou příliš zkrácené na to, aby poskytly relevantní informaci, neboť právě první část výrazu je pro charakteristiku byrokracie klíčová: „pevně stanovené institucionální vztahy nebo řádné právní postupy“. Předchozí problémy můžeme odstranit několika způsoby. Tím prvním je další rozšíření kontextu, druhým je kontrola pádu. Nejprve se podíváme na problémy, které vyplývají ze získání nepřerušeného množství podstatných a přídavných jmen, sloves a příslovcí.
23
„V současnosti členové Hamasu ostřelují z Pásma Gazy raketami Kassám a raketami typu kaťuša Grad izraelská města jako jsou Sderot a Aškelon.“ Na tomto příkladu je vidět opačný extrém, tedy výběr příliš mnoha slov, která nejsou součástí pojmu. Střední kontext by garantoval nalezení nejlepšího řešení. Jiná možnost je komplikovaný způsob, který by umožnil pouze jeden nepřerušovaný blok podstatných jmen s výjimkou, pokud tento blok obsahuje pouze druhý a třetí pád, pak připustíme další blok podstatných jmen, na které budeme klást stejné podmínky ohledně pádů. Tento způsob by zatím fungoval na všechny zmíněné případy, avšak je nutné kromě slovního druhu znát i pád. Ukážeme si ale případ, kde je nalezený kontext příliš dlouhý na to, aby byl správný. „Já jsem napsal svůj text bez použití dalších atributů jako je ‚small‘.“ Na tomto příkladě je vidět problém nalezení pojmu, který je hlavní složkou vztahu. Hyponymum „small“ se týká „atributu“, ačkoliv bychom snadno mohli vymyslet větu, kde by nás zajímal výraz vzdálenější. Například: „Kódování bez zavedení speciálních znaků jako je ASCII.“ V takovýchto příkladech nejsme schopni zjistit, které podstatné jméno ve vztahu vystupuje. Budeme tedy muset vyloučit všechny věty, kde vybereme více než jedno podstatné jméno. Rozvinuté pojmy, které získáme dlouhým kontextem, jsou vhodné především pro specializované účely, když chceme rozlišit nějakou úzkou oblast od jiné jako např. „lékařské nástroje používané na pediatrii“ oproti „urologii“. 4.2 Několikanásobný větný člen Automaticky určit několikanásobný větný člen nemusí být vždycky úplně snadné. Podíváme se na některé problémy, které při určování mohu nastat. Několikanásobné členy spojují stejné slovní druhy a oddělujeme je spojkami „a“, „nebo“, „i“ a čárkou. „Na památkovou péči připadá ještě 450 miliónů korun, ale ty se dělí z okresů, a jak říkají svorně starostové, představitelé Sdružení historických sídel Čech, Moravy a Slezska, rozdělování je zcela neprůhledné.“ Největší problém je nalézt ukončení několikanásobného členu, který končí slučovací spojkou nebo čárkou. Některé komplikace můžeme odstranit vyžadováním stejného pádu, avšak ani 24
tato podmínka nebude dostatečná. Budeme proto předpokládat, že poslední člen bude k ostatním připojen libovolnou spojkou, a nikoliv čárkou. Přijdeme tím však o část vět, které mají několikanásobný větný člen spojený pouze čárkami, a také část členu můžeme vynechat. „O zkušenostech z práce městských samospráv jednali včera v Košicích na prvním společném setkání primátoři Prahy, Ostravy, Bratislavy, Košic a náměstci primátorů Brna a Plzně.“ Na zvolené větě je vidět komplikace s určením posledního členu, který nemůže být rozpoznán pomocí spojky. Kromě slovního druhu budeme kontrolovat i pád jednotlivých členů a očekávat, že poslední výraz bude připojen slučovací spojkou nebo se následující slovo bude lišit minimálně pádem. Tím dokážeme rozpoznat, že v naší ukázce spojka „a“ spojuje výrazy „primátoři“ a „náměstci“. Při tomto postupu je důležité správně určit první slovo členu, jehož pád použijeme pro všechny další. „Nabízejí mi aktualizované texty týkající se Brna, fotky a další informace...“ Na uvedeném příkladě je vidět potřeba projít všechny výrazy z širokého kontextu, které mohou být součástí několikanásobného větného členu. Takto objevíme vztah mezi „texty“, „fotkami“ a „informacemi“. V okamžiku, kdy dokážeme správně určit všechny členy, přesuneme se k dalšímu problému se samotným rozdělením na hyperonyma a hyponyma. Existují dva případy, které mohou nastat. První je několikanásobný přívlastek, který hledané slovo rozvijí. Například: „Americký, ruský a čínský trh s automobily jsou nejprestižnější trhy světa.“ Nestačí tedy provést rozdělení, ale musíme také připojit rozvíjené sousloví „trh s automobily“. Druhý případ nedokážeme rozdělit vůbec, jelikož několikanásobnost nastává na straně hyperonyma. „Umím obsluhovat elektrické spotřebiče, internet, telefon (včetně mobilního), WC, defibrilátor, osobní automobil a další předměty denní i noční potřeby.“ Na základě uvedené věty není možné klasifikovat předměty mezi denní a noční odděleně. Můžeme buď vzít „předměty denní i noční potřeby“ dohromady, nebo se omezit pouze na „předměty“. Tento stav platí obecně, neboť všechna hyperonyma mají vztah pouze k jedinému 25
hyponymu v rámci věty. 4.3 Nežádoucí slova Některá slova mají smysl pouze v rámci větného kontextu, jejich role je syntaktická nebo relativní. Nejčastější nežádoucí slova jsou příslovce jako „včetně, především, jen, vždy, dříve, zde, jistou“ a mnoho dalších. Příslovce nerozvíjejí samostatná podstatná jména, ale pouze přídavná jména a slovesa, takže vytvářejí široký kontext. Jejich důležitost je zejména u vět jako: „Yukon je součástí francouzsky mluvící části Kanady.“ Další nežádoucí slova jsou relativní adjektiva jako „velký, podstatný, různý, další, jiný“ a podobná. Většinou se tato slova opakují poměrně často na to, abychom je mohli snadno určit a zakázat. Avšak i některá relativní přídavná jména mohou objektivně zpřesňovat pojmy, mezi takové patří „velké planety“ označující „Jupiter“ a další tři planety vzdálenější od Slunce. 4.4 Chyby ve zdroji K získávání hypero-hyponymických výrazů používáme reálné texty, ve kterých vždy hrozí možnost chyb. Nás ovšem budou zajímat pouze takové, které mohou negativně ovlivnit výsledek. Mezi takové určitě nepatří chyby v příčestí minulém nebo shodě podmětu s přísudkem, naopak podstatné pro nás budou zejména překlepy a zmatení pádů v několikanásobném větném členu. Důležitou roli hrají i chyby v zacházení přímo s hypero-hyponymickými výrazy samotným autorem textu, neboť se stává, že z věty logicky vyplývá vztah, který mezi pojmy není. Druhou ještě výraznější kategorií chyb jsou špatně určené slovní druhy a pády, které snadno způsobí, že do výrazu zahrneme chybné pojmy. Tomuto problému se můžeme vyhnout pouze minimalizováním potřeby znát slovní druhy a pády. 4.5 Vložená vedlejší věta Vedlejší věta vložená do věty hlavní nám může zvětšit počet pojmů, mezi kterými se potencionálně nachází hledaný vztah. Vložená věta je z obou stran oddělena čárkami a pokud je klíčové slovo použitého vzoru spojka, před kterou se může psát čárka, nepoznáme, zda napojuje další vedlejší větu, nebo čarka pouze ukončuje větu vloženou a dál pokračuje hlavní věta. Klíčové slovo se tedy může vztahovat ke dvou různým výrazům před čárkami. Nejlépe tento problém ilustruje následující příklad. „...zvyky a vynálezy, které na americkou půdu přinesli teprve Evropané, jako je kolo, 26
písmo, koně, křesťanství a tak dále...“ Obecně nemůžeme určit, zda se „kolo“ vztahuje k „Evropanům“ nebo „zvykům a vynálezům“. Z hlediska pravděpodobnosti s délkou vedlejší věty roste také šance, že se nejedná o vloženou větu. Naopak některé vložené věty dokážeme poznat bezpečně. „...pomoc zemím, které ji potřebují, jako je Rusko či Rumunsko.“ „...obecné poznatky o moci, které pak neznatelně prostupují i tak odlehlé náměty, jako je Tolstého umírání nebo Kafkův vztah k ženám.“ První ukázka je vložená věta, která nenabízí žádnou jinou možnost, než určit „Rusko“ a „Rumunsko“ jako „země“. Druhá ukázka obsahuje obyčejnou vedlejší větu, z které můžeme vyvodit, že „Tolstého umírání“ je druhem „námětu“ podobně jako „Kafkův vztah k ženám“.
27
Kapitola 5
Získávání dat V této kapitole se podíváme na způsoby získávání vztahů nadřazenosti a podřazenosti z textu, analyzujeme výsledky a určíme některé příčiny vzniklých chyb. 5.1 Dolování z Wikipedie Nejprve jsme si stáhli množství článků reprezentované jednotlivými odstavci. Za tímto účelem jsme vytvořili program, který automaticky procházel stránky s požadovanou adresou a hledal na nich další odkazy, které ukládal do databáze spolu s příznakem, zda již byla stránka navštívena. Celkový počet byl 4 541 navštívených stránek, 50 054 uložených odstavců v 27 tisíci větách, které tvoří přes 375 tisíc slov a 66 tisíc jich je různých. Získaná data jsme zúžili pouze na určitý kontext okolo vzoru pomocí regulárních výrazů a na určení slovních druhů jsme využili morfologický analyzátor Ajka [19]. Dále už procházíme slovo za slovem a kontrolujeme dodržování dříve formulovaných pravidel ohledně druhů a pádů. 5.2 Dotazovací jazyk korpusu Korpusy ÚČNK využívají dotazovací jazyk založený na regulárních výrazech (CQL Corpora Query Language) kombinovaných s atributy. Nejpodstatnější atributy pro nás jsou word, lemma a tag, které umožňují dotazy na konkrétní slovní tvar, libovolný tvar odvozený od svého základu a morfologické značky. Námi využívaný korpus SYN2006PUB obsahuje šestnáct pevně stanovených pozic, z nichž každá nese určitou informaci a dvě jsou volné. Nejdůležitější je první, která označuje slovní druh, resp. interpunkci, a pátá obsahující číslo pádu [20]. [lemma=”chodit”][]{2,4}[tag=”N...3.*”|tag=“N...7.*“] Uvedený výraz vybere všechny tvary slovesa chodit následované dvěma až čtyřmi slovy (započítává se i interpunkce) a zakončené podstatným jménem ve třetím nebo sedmém pádě. Pro zkrácení zápisu se dále využívá značky (?) ekvivalentní zápisu {0,1} a [pos=”A”] ekvivalentní [tag=”A.*”]. [pos="A"]?[pos="N"]?[pos="N"][pos="A"]?[word="jako"][word="je" | word="jsou"]([word="," |
28
word="a" | word="nebo"]?[pos="A"]?[pos="N"])+ Výše zmíněný výraz musí obsahovat podstatné jméno, které může být obklopeno jedním dalším spolu s dvěma přídavnými jmény, následuje jedna z frází „jako je“/„jako jsou“ zakončené minimálně jedním pojmem, další mohou být připojeny pomocí čárky, „a“ a „nebo“. 5.3 Výsledky získané z korpusu Používáme již zmíněný korpus SYN2006PUB kvůli jeho velikosti, ačkoliv není příliš vyvážený podle roku vydání příslušného textu, ani v počtu zastoupení jednotlivých médií. Nejprve se podíváme, jaké je množství textů, které obsahují klíčové slovo ze vzoru. Tato čísla však netvoří horní odhad na počet hyperonym, neboť za klíčovým slovem může následovat několikanásobný větný člen, který počty hyponym zvýší. klíčová fráze
výraz v jazyku CQL
počet výskytů
jako jsou / jako je
[pos="N"][word="jako"][word="je" | word="jsou"][pos="N"]
1523
(a / nebo) další
[pos="N"][word="a" | word="nebo"][word="další"][pos="N"]
18599
(a / nebo) jiné
[pos="N"][word="a" | word="nebo"][lemma="jiný"][pos="N"] 7358
(a / nebo) ostatní
[pos="N"][word="a" | word="nebo"][word="ostatní"] [pos="N"]
1253
(a / nebo) podobné [pos="N"][word="a" | word="nebo"][lemma="podobný"] [pos="N"]
2049
(a) hlavně
[pos="N"][word="a"]?[word="hlavně" & pos="D"][pos="N"]
3585
(a) především
[pos="N"][word="a"]?[word="především" & pos="D"] [pos="N"]
6690
jako
[pos="N"][word="jako"][word!="je" & word!="jsou"] [pos="N"]
66261
(,) je / jsou
[pos="N"][word!="jako"][word="je" | word="jsou"][pos="N"] 76903
je / jsou
[pos="N"][word!="," & word!="jako"][word="je" | word="jsou"][pos="N"]
56419
je / jsou (+ další omezení)
[tag="N...1.*"][word!="," & word!="jako"][word="je" | word="jsou"][tag="N...1.*"]
7261
:
[pos="N"][word=":"][pos="N"]
452553
: (+ další omezení)
[tag="N..P1.*"][word=":"][tag="N..S1.*"]
22501
Tabulka 5.1: Výrazy a počty odpovídajících výsledků v korpusu SYN2006PUB
29
Ačkoliv korpus obsahuje přes sto milionů slov, jen relativně velmi malá část je použitelná pro získávání vztahů nadřazenosti a podřazenosti. Některé hledané fráze se v korpusu objevují častěji než jiné, ale často to může být spíš negativní než pozitivní informace. Výrazně větší výskyt je pravděpodobně způsoben častějším používáním v jazyce, což sebou nese i riziko používání takových pojmů v jiném, než očekávaném kontextu. Nejlepším reprezentantem takových pojmů je slovo „jako“, které je možné použít nejrůznějšími způsoby. Povahu nalezených výsledků může také výrazně ovlivnit použití spojek a interpunkce. Příkladem takových vět mohou být: „Poruchová auta, především zahraniční značky, se často vyrábějí na východě.“ nebo „Líbí se mi americká auta a především Ford.“ Ještě zásadnější změnu v počtech nalezených výsledků způsobí specifikování konkrétního pádu. Tabulka 5.1 ukazuje výraznou změnu v nalezení slova „je“ nebo „jsou“ pokud bereme v úvahu všechny, nebo pouze první pád. Omezení ohledně pádu hraje významnou roli v případě dvojtečky. Kromě pádu, omezíme i číslo, neboť očekáváme, že požadovanou informaci obsahují věty typu: „množina X: A, B, C.“ Obvykle se jedná o výčet množiny států, sportovních výsledků, lidí určité profese a podobně.
Obrázek 5.1: Náhled informací získaných z korpusu Nyní máme představu o možnostech hledání a odpovídajících počtech nalezených shod. Dále potřebujeme určit jaké množství výrazů bylo odhaleno správně jako podvýrazy a nadvýrazy. Nezbývá nám jiná možnost, než projít záznamy a ručně určit, jestli se jedná o hledaný vztah. Projdeme nejprve 100 příkladů pomocí CQL výrazů v předchozí tabulce a spočítáme počty správně určených hypero-hyponym, vedle toho použijeme rozšířený CQL výraz, který bude hledat pouze členy zahrnující několikanásobnost a nakonec projdeme nalezené výsledky a spočítáme počty nalezených vztahů. Druhý CQL dotaz vypadá následovně: [pos="N"]( část s klíčovou frází )[pos="N"]([word="," | word="a" | word="nebo"]
30
[pos="N"])+ Uvedený dotaz neplatí pro výrazy, které hyperonymem končí, neboť v takovém případě je několikanásobná část před klíčovou frází. Jsou to všechny ty, které mohou začínat spojkou „a“. klíčová fráze
správně nalezených
správně nalezených (s několikanásobností)
počet výskytů (u několikanásobnosti)
jako je / jako jsou
76
94
821
(a / nebo) další
61
73
4874
(a / nebo) jiné
81
78
1620
(a / nebo) ostatní
72
86
433
(a / nebo) podobné
76
90
587
jsou (+ další omezení)
<50
87
116
Tabulka 5.2: Počet správných výskytů ve 100 příkladech Jedním z výrazů, který dosahuje velmi nízké přesnosti, je fráze „jako“, která se může ve skutečnosti týkat sloves, ačkoliv nejsou přímo zmíněna: „Mluví o podobných slibech jako (mluví i) oponenti z ostatních stran.“ U fráze „jako“ se také stává, že hyperonyma se objevují na obou stranách od tohoto výrazu, takže některé relace jsou špatné jenom, protože jsou otočené. Fráze začínající hyponymy v několikanásobném větném členu někdy špatně určují první člen, neboť k němu přidají i předcházející podstatné jméno, jindy může být vybrané hyperonymum nesprávné, protože je součástí širšího pojmu. Takový případ není příliš častý, protože například „člen parlamentu“ je stejně tak „člen“ nespecializovaný dalšími modifikátory, problém nastává v okamžiku použití určitých pádů: „V budoucnu hrozí návrat zabírání půdy, znárodňování a další historií zapomenutých událostí.“ V uvedené větě je hyperonymum událost, která je pouze modifikována předcházejícím výrazem v sedmém pádě. Tuto větu stačí lehce pozměnit a získáme stejný výsledek i pro třetí pád. Slovesa „je“ a „jsou“ se nacházejí ve větách téměř v libovolné pozici a jejich přesnost je výrazně nízká. V případě několikanásobného větného členu vyloučíme z fráze slovo „je“, neboť věty typu „jablko a banán je ovoce“ nedávají smysl na rozdíl od „ovoce jako je jablko a banán“. Abychom odstranili velké množství chyb, zachováme rovněž naše omezení na první pád. Některé příčiny chyb vyplývají ze samotné volby korpusu, který obsahuje publicistické články. Problematické může být používání metafor a metonymií jako například: „Poslanecká sněmovna je zoo v současné době.“ Z takové věty vyplývá, že zoo je nadvýrazem poslanecké sněmovny, a je tedy
jedním z různých druhů zoologických zahrad. Podobné problémy na
syntaktické úrovni nejsme schopni vyřešit. 31
Pokusíme se dále najít ještě komplikovanější vzory, které budou brát ohled na specifické výsledky pro různé fráze. Naše snaha bude výrazněji se přiblížit 100 % správně klasifikovaných případů. Podstatné pro nás rovněž bude uvést počty nalezených vztahů. Toto číslo bude horním odhadem na maximální počet nalezených vzorů, ačkoliv skutečné číslo bude vždy nižší. Následující tabulka shrnuje položené dotazy a jejich výsledky. klíčová fráze
CQL výraz
správných ze 100
počet výsledků
(a / nebo) další
[pos="N"]([word="," | word="a" | word="nebo"] [pos="N"])+[word="a"|word="nebo"] [word="další"][pos="N" & tag!="N...7.*" & tag! ="N...3.*"]([pos="A"]{0,2}[tag="N...2.*"])?
96
6235
(a / nebo) jiné
[pos="N"]([word="," | word="a" | word="nebo"] [pos="N"])+[word="a"|word="nebo"] [lemma="jiný"][pos="N" & tag!="N...7.*" & tag! ="N...3.*"]([pos="A"]{0,2}[tag="N...2.*"])?
94
1763
(a / nebo) ostatní
[pos="N"]([word="," | word="a" | word="nebo"] [pos="N"])+[word="a"|word="nebo"] [word="ostatní"][pos="N" & tag!="N...7.*" & tag! ="N...3.*"]([pos="A"]{0,2}[tag="N...2.*"])?
93
238
jsou
[pos="N"]([word=","][tag="N...1.*"])*([word="a" | word="nebo"][tag="N...1.*"])[word="jsou"] [pos="N" & tag!="N...7.*" & tag!="N...3.*"] ([pos="A"]{0,2}[tag="N...2.*"])?
92
259
Tabulka 5.3: Rozšířené CQL výrazy a získané výsledky Některé věty dokonce explicitně zmiňují určitý vztah: „X a Y jsou synonyma“. Uvedená věta však platí pouze chápeme-li X a Y jako jeden výraz. Podíváme se také na úspěšnost dalších vzorů používaných v angličtině. Většina však neposkytne příliš vysokou správnost, takže prozkoumáme pouze 20 nalezených výsledků a na obou stranách od hledané fráze budeme očekávat podstatné jméno v prvním pádě, pokud to klíčová fráze přímo nevylučuje.
32
klíčová fráze
správně nalezené
zejména
4
většinou
4
dokonce
2
stejně jako
6
jiný než
2
například
1
např.
8
to je
8
tedy
1
se nazývá
8
a některý další
19
a mnoho dalších
16
a mnohé další
17
a v dalších
4
je jiný
5
je pouze
2
což je
6 Tabulka 5.4: Méně frekventované vzory
Výrazy uvedené v předchozí tabulce nejsou v korpusu příliš frekventované a většina z nich neposkytuje ani velké množství správných výsledků. Výjimkou je vzor „a některý další“, který nalézá zejména instance tříd, 17 z 19 výsledků bylo právě instancí nějaké třídy a pro životný případ „někteří“ se většina týkala konkrétních osob. Vzor „X a mnoho dalších Y“ nutně obsahuje na místě Y podstatné jméno v druhém pádě. Slovo „mnohé“ navíc indikuje, že na pozici X se často může nacházet více vyjmenovaných prvků množiny Y, v procházeném výsledku bylo v několikanásobném tvaru 13 ze 17. 5.4 Výsledky získané programem Na základě učiněných pozorování jsme vytvořili program na získávání hypero-hyponymických vztahů. V prvním kroku jsme se snažili o co největší možný počet nalezených vztahů i za cenu většího množství špatných, následně jsme aplikovali restriktivní pravidla, která vyloučila velké množství chybně klasifikovaných příkladů i s některými správnými. Nejvíce nesprávných výsledků vyloučil opět několikanásobný větný člen. Tabulka 5.5 shrnuje statistiku výsledků na 100 ručně určených případech. 33
klíčová fráze
správně nalezené
jako je
95
jako jsou
93
a jin(é/á/í/ý)
91
a ostatní
89
a další
94
a podobn(é/á/í/ý)
91
Tabulka 5.5: Výsledky klasifikace programu na několikanásobných členech Problém mohou stále způsobovat vedlejší věty vztahující se k podstatnému jménu. V češtině jsou takové věty velmi časté, ale vztah hypero-hyponymie ovlivňují jen výjimečně. „..zařízení, které soustřeďuje sbírky různého druhu jako jsou muzea, galerie, knihovny aj.“ Zmíněné knihovny, galerie a muzea nejsou sbírkami, ale zařízeními. Další problém je spojen s několikanásobností a určením jestli výraz obsahuje několik hyponym, nebo jediné s více členy. „Závazné dokumenty o lidských právech jako jsou regionální evropská Úmluva o ochraně lidských práv a základních svobod...“ V tomto případě dostaneme dvě hyponyma oddělená spojkou a, která však evidentně patří k sobě. V programu kontrolujeme pouze nejsou-li dvě přídavná jména bezprostředně za sebou spojena spojkou a, všechny ostatní případy považujeme za spojení více hyponym. Náprava takového stavu však může být provedena až po nalezení výsledku. Podobně velmi snadno lze odhalit další druh chyby, kterou je příliš dlouhý kontext. Všechny nalezené výrazy delší než 5 slov byly chybné, ačkoliv jedno nebo dvě poslední slova byla hledaná hyponyma. „V prezidentských volbách v roce 2006 mu byli protikandidáty společný kandidát běloruské opozice Aljaksandar Milinkevič, Sjarhej Hajdukevič a další nezávislý kandidát opozice Aljaksandar Kazulin.“ První výraz obsahuje sedm slov nalezených algoritmem, avšak správné hyponymum k výrazu nezávislý kandidát opozice musí být nejméně o jedno slovo kratší. Existují tři varianty možného zkrácení od zachování všech podstatných modifikátorů až po zvolení pouze samotného jména. K ořezání prvního výrazu by bylo možné využít i délku následujícího několikanásobného členu. Musíme si však dát pozor, abychom tím nezkrátili správně nalezená hyponyma. „Za vůz se zařadili členové městského zastupitelstva, měšťané, hosté a další diváci.“ Tento příklad obsahuje první člen o dvě slova delší než je následující a každé jeho zkrácení by vedlo k chybě. Častější kategorií špatné klasifikace je použití věty nějakým nefrekventovaným způsobem, 34
jako v následující větě. „V roce 1834 založili v Paříži němečtí socialističtí dělníci Theodore Schuster, Wilhelm Weitling a jiní Svaz pohrdavých.“ Uvedená věta sice obsahuje vztah hypero-hyponymie, ale nenachází se tam, kde bychom ho očekávali. Místo za slovem „jiní“ stojí hyperonymum němečtí socialističtí dělníci před svými hyponymy. Klíčové fráze „a hlavně“ a „a především“ v několikanásobném členu obvykle místo vztahu hypero-hyponymie udávaly pouze slova jedné třídy. Dvě následující věty ukazují těsná i vzdálenější hyponyma. Pokud bychom měli jedno slovo ze skupiny zařazené ke svým nadvýrazům, mohli bychom přiřadit i ostatní, ale bylo by nutné správně určit dané hyperonymum, neboť vždy nemusí být to první nadřazené. „...Portugalci, Španělé, Britové, Holanďané a hlavně Francouzi...“ „Mauritius je také vynikajícím místem pro nákup různého oblečení, textilií a hlavně pleteného zboží.“ Výsledky také často zahrnovaly výrazy v závorkách, které v případě do dvou slov tvořily synonymum předcházejícího výrazu, delší pak daný pojem popisovaly. „...byly do těchto oblastí introdukovány odolnější dřeviny – smrk pichlavý, borovice pokroucená (Pinus contorta), borovice černá (Pinus nigra) a další druhy rodu Pinus...“ „Vzniklé tzv. svářkové železo se poté na ocel zpracovávalo náročnými metodami jako je cementace (dlouhodobé zahřívaní tyčového železa s dřevěným uhlím) nebo kelímkový proces (tavení železa s přesným množstvím dřevěného uhlí).“
35
Závěr Cílem této práce bylo nalézt metody vhodné k získávání nadřazených a podřazených výrazů pro češtinu na základě již existujících způsobů zejména pro anglický jazyk. Snažili jsme se o převedení systému vzorů z angličtiny, hledali jsme nové vzory pro češtinu a testovali jsme možnosti nalézání, získávání a ověřování platnosti vzorů pomocí internetových vyhledávačů. U všech prozkoumaných metod jsme požadovali vysokou míru správnosti s tím, abychom dosáhli co největší možné míry pokrytí. U špatně klasifikovaných případů jsme uvedli příklady, kde dané postupy selhávají. Nakonec jsme vytvořili program implementující předchozí pozorování. Naše aplikace vrací pojmy ve vzájemném hypero-hyponymickém vztahu se všemi svými specifickými modifikátory, které je kdykoliv možné snadno odstranit. Počty celkově nalezených výsledků jsme výrazně zúžili požadavkem na hyponyma, aby se nacházeli ve vztahu několikanásobnosti. V tomto ohledu by bylo možné aplikaci dále rozšířit, aby spolehlivěji filtrovala i ostatní pojmy. Kromě upravení vstupu aplikace by bylo možné dále modifikovat některé chyby na výstupu, které by pomocí nějakých pravidel mohly být převedeny na správně určená hyperonyma a hyponyma nebo je na základě popsaných charakteristik pouze odstranit z výstupu. Další možný způsob na získávání nadřazených a podřazených pojmů je prohledávání hlaviček a seznamů na stránkách Wikipedie. Tento způsob umožňuje získat obrovské množství dat, která však nebývají příliš spolehlivá. Bylo by proto nutné najít metodu na ověření takových výsledků.
36
Literatura [1] KIVI – Knihovnictví a Informační Věda Informuje: Struktura tezauru [online]. c2010 [cit. 14. května 2010]. Dostupný z WWW: [2] Climent, Salvador; Rodríguez, Horacio; Gonzalo, Julio: Definition of the links and subsets for nouns of the EuroWordNet project [online]. c2010 [cit. 2010-05-13]. Dostupný z WWW: [3] Princeton University: WNSTATS(7WN) manual page [online]. c2010 [cit. 2010-04-10]. Dostupný z WWW: [4] Koskela, Anu: On the Distinction between Metonymy and Vertical Polysemy in Encyclopaedic Semantics [online]. c2010 [cit. 2010-05-13]. Dostupný z WWW: [5] Wikipedia – The Free Encyclopedia: Text corpus [online]. c2010 [cit. 2010-04-10]. Dostupný z WWW: [6] Svartvik, Jan: Directions in Corpus Linguistics [online]. Arthur Collington GmbH, Berlín, 1992. [7] TU Chemnitz: Introduction to corpus linguistics: What is a corpus? [online]. c2010 [cit. 201004-15]. Dostupný z WWW: [8] BNC: About the British National Corpus [online]. c2010 [cit. 15. dubna 2010]. Dostupný z WWW: [9] ÚJČ AV: Struktura korpusu | Korpus DIALOG [online]. c2010 [cit. 22. dubna 2010]. Dostupný z WWW: [10] NLP: Seznam dostupných korpusů – Centrum NLP [online]. c2010 [cit. 10. května 2010]. Dostupný z WWW: [11] Fellbaum, Christiane: WordNet: an electronic lexical database. MIT Press, 1998. [12] EuroWordNet: EuroWordNet:Building a multilingual database with wordnets for several European languages [online]. c2010 [cit. 2010-05-06]. Dostupný z WWW: [13] Vossen, Piek: EuroWordNet: a multilingual database with lexical semantic networks. Springer, London. 1998. [14] Hearst, Marti A.: Automatic Acquisition of Hyponyms from Large Text Corpora. University of California, Berkeley, 1992.
37
[15] Ravichandran, Deepak; Hovy, Eduard: Learning Surface Text Patterns for a Question Answering System [online]. c2010 [cit. 2010-04-16] Dostupný z WWW: [16] Shinzato, Keiji; Torisawa, Kentaro: Extracting Hyponyms of Prespecified Hypernyms from Itemizations and Headings in Web Documents [online]. c2010 [cit. 2010-05-15]. Dostupný z WWW: [17] Sombatsrisomboon, Ratanachai; Matsuo, Yutaka; Ishizuka, Mitsuru: Acquisition of Hypernyms and Hyponyms from the WWW [online]. c2010 [cit. 2010-05-15]. Dostupný z WWW: [18] Český národní korpus: Abecední a retrográdní slovníky lemmat a tvarů z korpusů SYN2000 a SYN2005 [online]. Ústav Českého národního korpusu FF UK, Praha 2008. Dostupný z WWW: [19] NLP: Morfologický analyzátor ajka [online]. c2010 [cit. 15. května 2010]. Dostupný z WWW: [20] Český národní korpus: Popis morfologických značek [online]. c2010 [cit. 17. května 2010]. Dostupný z WWW:
38