Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky



Podobné dokumenty
EXTRAKCE STRUKTUROVANÝCH DAT O PRODUKTOVÝCH A PRACOVNÍCH NABÍDKÁCH POMOCÍ EXTRAKČNÍCH ONTOLOGIÍ ALEŠ POUZAR

Sémantický web a extrakce

Ontologie. Otakar Trunda

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Případová studie: extrakce strukturovaných dat z webu s využitím extrakčních ontologií

MBI - technologická realizace modelu

Text Mining: SAS Enterprise Miner versus Teragram. Petr Berka, Tomáš Kliegr VŠE Praha

Markovovy modely v Bioinformatice

PRODUKTY. Tovek Tools

Korpusová lingvistika a počítačové zpracování přirozeného jazyka

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Metadata, sémantika a sémantický web. Ing. Vilém Sklenák, CSc.

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Uživatelská podpora v prostředí WWW

Využití metod strojového učení v bioinformatice David Hoksza

Moderní systémy pro získávání znalostí z informací a dat

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

NLP & strojové učení

PRODUKTY. Tovek Tools

Sémantický web 10 let poté

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

INTLIB. Osnova. Projekt (TA /Inteligentní knihovna) je řešen s finanční podporou TA ČR. ! Legislativní doména

7. Rozdělení pravděpodobnosti ve statistice

Inovace CRM systémů využitím internetových zdrojů dat pro malé a střední podniky. Ing. Jan Ministr, Ph.D.

Kdy se narodil... Vypracovali: Mrkývka Vojtěch, Mrázek Ondřej, Novotná Marie. Předmět: PLIN08 Projekty II. Semestr: Jaro 2015

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Modely a sémantika. Petr Šaloun VŠB-Technická univerzita Ostrava FEI, katedra informatiky

Obsah. Zpracoval:

Problémové domény a jejich charakteristiky

Dolování asociačních pravidel

Znalostní systém nad ontologií ve formátu Topic Maps

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

S M Ě R N I C E č. 6/2014 ministra financí

Naproti tomu gramatika je vlastně soupis pravidel, jak

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Formální jazyky a gramatiky Teorie programovacích jazyků

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

Dolování z textu. Martin Vítek

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

POKROČILÉ POUŽITÍ DATABÁZÍ

Logický datový model VF XML DTM DMVS

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů

Výměnný formát XML DTM DMVS PK

Logika pro sémantický web

Stručně o XML (výhody, nevýhody) Proč komprimovat XML? Metody komprese XML XMill. Optimalizace komprese XML. Závěr

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

1. Znalostní systémy a znalostní inženýrství - úvod. Znalostní systémy. úvodní úvahy a předpoklady. 26. září 2017

Systém elektronického rádce v životních situacích portálu

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole Aplikace booleovské logiky

Kurz pro studenty oboru Informační studia a knihovnictví 5. Informační architektura

Extrakce z nestrukturovaných dat

POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE

ZKUŠENOSTI S AUTOMATIZACÍ CITAČNÍ ANALÝZY NA ZAKONECHPROLIDI.CZ. Pavel Gardavský/AION CS, s.r.o

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Znalostní báze pro obor organizace informací a znalostí

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0

Chování spotřebitelů na trhu s bydlením shánění bydlení

Informační a znalostní systémy jako podpora rozhodování

PŘÍLOHA C Požadavky na Dokumentaci

Dobývání znalostí z textů text mining

Statistická teorie učení

Automatické vyhledávání informace a znalosti v elektronických textových datech

UČENÍ BEZ UČITELE. Václav Hlaváč

Formální úprava bakalářských a diplomových prací Univerzita Karlova, Husitská teologická fakulta

Profilová část maturitní zkoušky 2017/2018

Hierarchický databázový model

8.2 Používání a tvorba databází

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Aplikace s odvozováním nad ontologiemi

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h)

Unstructured data pre-processing using Snowball language

ANOTACE vytvořených/inovovaných materiálů

U Úvod do modelování a simulace systémů

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Struktura e-learningových výukových programù a možnosti jejího využití

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

PRODUKTY Tovek Server 6

Petr Křemen. Katedra kybernetiky, FEL ČVUT. Petr Křemen (Katedra kybernetiky, FEL ČVUT) Sémantické sítě a rámce 1 / 112

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

MINISTERSTVO PRO MÍSTNÍ ROZVOJ Č.j. 7022/ R O Z H O D N U T Í č. 19/2016. ministryně pro místní rozvoj. ze dne

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

SK01-KA O1 Analýza potřeb. Shrnutí. tým BCIME

TÉMATICKÝ OKRUH Softwarové inženýrství

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Správa VF XML DTM DMVS Datový model a ontologický popis

Datace, popis a příklady použití

Aplikace SDNS. XML struktura pro nahrání dat ze souboru. Příručka uživatele (programátora) Sekce informatiky Odbor informačních systémů. verze 1.

1. Matematická logika

Objektově orientované databáze. Miroslav Beneš

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

Transkript:

Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky DIPLOMOVÁ PRÁCE 2012 Bc. Aleš Pouzar

Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky DIPLOMOVÁ PRÁCE Extrakce strukturovaných dat z českého webu s využitím extrakčních ontologií Autor: Bc. Aleš Pouzar Katedra: Katedra informačního a znalostního inženýrství Obor: Znalostní technologie Vedoucí práce: Doc. Ing. Vojtěch Svátek, Dr. Praha 2012

Prohlášení Prohlašuji, že jsem diplomovou práci na téma Extrakce strukturovaných dat z českého webu s využitím extrakčních ontologií vypracoval samostatně. Použitou literaturu a další podkladové materiály uvádím v přiloženém seznamu literatury. V Praze dne 27. června 2012................................... Bc. Aleš Pouzar iv

Poděkování Rád bych poděkoval vedoucímu mé práce Vojtěchu Svátkovi za rady a čas, po který se mi věnoval, ale i za možnost zapojit se do dalších, pro mě zajímavých projektů. Velký dík patří Martinu Labskému za jeho trpělivé zodpovídání dotazů ohledně extrakčního systému Ex i za obecné rady ohledně extrakce informací. Dále bych rád poděkoval firmě Dain s.r.o. za poskytnutí dat k pracovním nabídkám a vůbec za inspiraci věnovat se této oblasti. Největší poděkování pak patří mým rodičům za jejich nekonečnou podporu po celou dobu mého studia a Simoně za její obdivuhodnou trpělivost. v

a Abstrakt Předkládaná práce se zabývá úlohou automatické extrakce informací z HTML dokumentů ve dvou vybraných doménách. Ze stránek e-shopů jsou extrahovány nabídky notebooků a z webových prezentací firem volně publikované pracovní nabídky. Výsledkem extrakčního procesu jsou strukturovaná data uspořádaná do záznamů, ve kterých je každému údaji přiřazena odpovídající sémantická značka. Pro realizaci úlohy byl vybrán extrakční systém Ex, který kombinuje dva typy extrakčních znalostí: ručně zadaná pravidla a supervizované algoritmy strojového učení. Díky expertní znalosti v podobě extrakčních pravidel lze účinně kompenzovat nedostatek trénovacích dat. Pravidla jsou přitom nezávislá na konkrétní formátovací struktuře a jeden extrakční model je tak možné využít pro heterogenní množinu dokumentů. Dosažená úspěšnost v extrakci nabídek notebooků ukázala, že by extrakční ontologie, popisující jeden nebo několik málo typů produktů, mohla být úspěšně využita v kombinaci s metodami pro indukci wrapperů a tím automaticky extrahovat nabídky všech typů produktů na úrovni webu. Klíčová slova: extrakce informací, automatická sémantická anotace, extrakční ontologie, strojové učení, rozpoznávání pojmenovaných entit, dolování dat z webu Abstract The presented thesis deals with the task of automatic information extraction from HTML documents for two selected domains. Laptop offers are extracted from e-shops and free-published job offerings are extracted from company sites. The extraction process outputs structured data of high granularity grouped into data records, in which corresponding semantic label is assigned to each data item. The task was performed using the extraction system Ex, which combines two approaches: manually written rules and supervised machine learning algorithms. Due to the expert knowledge in the form of extraction rules the lack of training data could be overcome. The rules are independent of the specific formatting structure so that one extraction model could be used for heterogeneous set of documents. The achieved success of the extraction process in the case of laptop offers showed that extraction ontology describing one or a few product types could be combined with wrapper induction methods to automatically extract all product type offers on a web scale with minimum human effort. Keywords: information extraction, automatic semantic annotation, extraction ontologies, machine learning, named entity recognition, web content mining vi

Obsah Seznam obrázků Seznam tabulek ix xi 1. Úvod 1 1.1. Motivace............................................ 2 1.2. Cíle.............................................. 3 1.3. Struktura práce........................................ 4 2. Extrakce informací z webu 5 2.1. Typy dokumentů....................................... 6 2.2. Typy úloh a využití..................................... 7 2.3. Přehled přístupů....................................... 9 2.3.1. Přístup využívající lingvistické techniky...................... 10 2.3.2. Přístup založený na ontologiích........................... 12 2.3.3. Wrapperový přístup................................. 12 2.4. Přehled metod........................................ 13 2.4.1. Skryté Markovovy modely.............................. 13 2.4.2. Podmíněná náhodná pole.............................. 16 2.4.3. Porovnávací techniky................................. 18 2.5. Extrakční systémy...................................... 20 2.6. Metody vyhodnocení..................................... 22 3. Systém Ex 25 3.1. Popis systému......................................... 25 3.2. Anotace a vyhodnocení................................... 27 3.3. Nástroj CRF++....................................... 27 3.3.1. Příznaky....................................... 28 3.3.2. Možnosti nastavení algoritmu............................ 30 4. Extrakce produktových nabídek 31 4.1. Popis domény......................................... 32 4.2. Dataset............................................ 34 4.3. Klíčové otázky........................................ 36 4.4. Vytváření extrakční ontologie................................ 37 4.4.1. Specifikace atributů................................. 38 4.4.2. Koreferenční rozhodnutí............................... 40 4.4.3. Seskupování atributů do instancí.......................... 41 4.5. Trénování CRF modelu................................... 42 4.6. Vyhodnocení......................................... 43 vii

Obsah 4.6.1. Extrakce hodnot atributů.............................. 43 4.6.2. Extrakce instancí................................... 44 5. Extrakce pracovních nabídek 47 5.1. Popis domény......................................... 47 5.2. Dataset a ruční anotace................................... 49 5.3. Klíčové otázky........................................ 50 5.4. Vytváření extrakční ontologie................................ 51 5.4.1. Slovníky........................................ 52 5.4.2. Název pracovní pozice................................ 54 5.4.3. Seskupování atributů do instancí.......................... 55 5.5. Trénování CRF modelu................................... 56 5.6. Vyhodnocení......................................... 57 6. Závěr 61 6.1. Shrnutí provedených experimentů.............................. 61 6.2. Využití extrakčních ontologií v doméně produktových nabídek.............. 62 6.3. Zhodnocení cílů........................................ 63 Literatura 66 A. Výsledkové tabulky I B. Ukázky výstupu V viii

Seznam obrázků 2.1. Příklad instance šablony Pracovní nabídka.................... 8 2.2. Topologie konkrétního HMM modelu....................... 14 2.3. HMM model v čase................................. 15 2.4. Grafická struktura CRF modelu. X odpovídá pozorováním (slovům v dokumentu) a veličina Y stavům (značkám)...................... 17 2.5. Algoritmus MDR a porovnávání stromů...................... 20 2.6. Vilainovy metriky.................................. 24 3.1. Ukázka části extrakční ontologie.......................... 27 4.1. Produktový katalog................................. 33 4.2. Výčet parametrů notebooku bez kontextu..................... 34 4.3. Schéma třídy Nabídka notebooku......................... 38 5.1. Částečně strukturovaná pracovní nabídka..................... 48 5.2. Schéma třídy Pracovní nabídka........................... 52 5.3. Příklad pracovní nabídky s vizuálně odděleným názvem pracovní pozice.... 55 B.1. Extrakční ontologie pro pracovní nabídky byla aplikována na dataset čítající více než 9 600 dokumentů, na výstupu bylo přes 12 600 extrahovaných pracovních nabídek..................................... IX ix

Seznam tabulek 2.1. Výstup morfologické analýzy............................ 11 3.1. Trénovací data pro algoritmus CRF++...................... 28 4.1. Základní údaje o datasetu e-shopů......................... 35 4.2. Nabídka notebooků extrahované typy informací................ 35 4.3. Míra úspěšnosti extrakce atributů pro nabídky notebooků (trénovací data).. 44 4.4. Nabídky notebooků: úspěšnost seskupování atributů do instancí........ 45 5.1. Pracovní nabídky extrahované typy informací.................. 49 5.2. Základní údaje o datasetu firemních stránek................... 50 5.3. Vyhodnocení atributů pro pracovní nabídky (trénovací data).......... 58 5.4. Vyhodnocení atributů pro pracovní nabídky (testovací data).......... 58 5.5. Pracovní nabídky: úspěšnost seskupování atributů do instancí......... 59 A.1. Míra úspěšnosti extrakce atributů pro nabídky notebooků (trénovací data).. II A.2. Míra úspěšnosti extrakce atributů pro nabídky notebooků (trénovací data).. III xi

1Kapitola 1. Úvod Ačkoliv množství volně dostupných a užitečných informací na Internetu neustále roste, jejich nalezení se stává paradoxně obtížnější a nákladnější. Současný způsob vyhledávání informací pomocí klíčových slov, kterými uživatel definuje svou informační potřebu, umožňuje zjistit přítomnost určitého termínu v dokumentu. To ale ještě nezaručuje, že se v něm nalézá požadovaná informace. Příčin je většinou více, ať už mnohoznačnost (dvě různé entity reálného světa jsou v daném jazyce často popsány stejným výrazem) nebo prostě fakt, že každá entita (objekt, informace) se může vyskytovat v nejrůznějších souvislostech a vztazích s jinými entitami 1. Možnosti dnešního vyhledávání jsou dostačující v případě, kdy uživatel hledá libovolné články (dokumenty) na určité téma, o kterém si chce něco přečíst (jinak řečeno, jeho informační potřeba je široce vymezená). Pokud naopak uživatel hledá velmi specifickou (konkrétní) informaci, je nucen každý nalezený dokument, který je systémem označen za relevantní, pročíst a požadovanou informaci v něm vyhledat (pokud se tam nachází). Tento způsob náročného (a ne vždy úspěšného) vyhledávání je v rozporu s obecným požadavkem na rychlé a včasné informace, který je v dnešním světě příznačný. Sofistikovanější a pohodlnější vyhledávání informací naráží na stávající reprezentaci dat na webu (nejčastěji v podobě HTML dokumentů), která definuje pouze uspořádání a vzhled jednotlivých částí textu. Struktura těchto dokumentů je tak orientována výhradně na prezentaci informací pro koncového uživatele. Co je lidmi vnímáno jako smysluplný text (či obrázek), jsou pro stroje nicneříkající řetězce znaků. Vynořila se přirozená snaha explicitně přiřadit k jednotlivým fragmentům textu uvnitř dokumentu odpovídající význam (samovysvětlující popis) 2 a to ve standardizované formě, která by byla strojově zpracovatelná 3. Prosazení tohoto konceptu, známého pod pojmem sémantický web, ale závisí rovněž na tom, jak rychle, úspěšně a s jakými náklady lze využít existující nestrukturovaná data, která obsahují množství užitečných informací. Metody extrakce informací, které umožňují v dokumentech identifikovat (a následně sémanticky anotovat) předem specifikované typy událostí, entit či relací (resp. 1 Pořadí výsledků vyhledávání je rovněž ovlivněno hojně používanými optimalizačními SEO technikami. 2 Nebo-li metadata, která definují význam ( sémantiku ) dat. 3 Tj. ve strojově srozumitelném jazyce. 1

Úvod údaje popisující určité události nebo entity), provádí zmíněné kroky čtení dokumentů a výběru relevantních informací za uživatele. Takto extrahovaná data mají velký význam již nyní, přestože jsou využívána pouze v koncových aplikacích bez jejich vzájemného propojení, které by umožnilo zodpovídat specifické dotazy napříč doménami (na globální úrovni). V současné době jsou vedle univerzálních vyhledávacích systémů jako Google populární i další vyhledávací služby, které se zaměřují na data určitého typu ve více či méně strukturované podobě které získavají od uživatelů (klientů). Narozdíl od výše uvedených vyhledávačů umožňují zodpovídat specifické dotazy, nepokrývají ale zdaleka všechen relevantní obsah, který se na webu nachází. Příklady takových služeb jsou portály zaměřené na komparativní nakupování nebo pracovní portály pro hledání volných pracovních míst. Možnosti vyhledávání pak záleží na samotné kvalitě (strukturovanosti) dat a počtu typů údajů. Objevují se i tzv. agregátory zdrojů, které získávají data určitého typu automaticky z několika primárních zdrojů. Podle povahy dat je pak uživateli předložen konečný obsah (výsledek) nebo výsledky vyhledávání na odpovídajících stránkách (tj. formou odkazů na primární zdroje). Dobrovolné poskytování dat veřejné povahy ve strukturované podobě je zde rozhodně největší překážkou ne každý je ochotný potřebná data poskytovat, příp. neví jak nebo k tomu nemá prostředky. Předkládaná práce řeší konkrétní úlohy ve dvou vybraných doménách, jejichž cílem je extrahovat a sémanticky označkovat informace nalezené v HTML dokumentech. Obě úlohy jsou primárně zaměřeny na využití dat ve zmíněných specializovaných vyhledávačích, použité metody extrakce informací lze ale využít i v mnoha dalších scénářích, které jsou relevantní k výše definovanému problému. První úloha se zabývá extrakcí strukturovaných dat o nabídkách notebooků ze stránek e-shopů. Extrahovány jsou jednotlivé parametry výrobku včetně informací o nabídce jako je cena nebo dostupnost. Druhá úloha se zaměřuje na získání informací z volně publikovaných pracovních nabídek na stránkách firem. Obě úlohy jsou omezeny pouze na český web a tedy i na český jazyk. 1.1. Motivace Extrakce informací je prostřední a zároveň nejkritičtější článek celého procesu prvním krokem je získání dostatečně obsáhlé množiny webových dokumentů, úkolem finální fáze je spárovat nabídky týkající se identických produktů (resp. odstranit duplicitní záznamy pracovních nabídek). Ve výsledku tak musí být extrakční model dostatečně robustní i pro nerelevantní dokumenty a zároveň popsat co nejvíce důležitých informací, které by usnadnily finální proces párování produktů (tj. rozlišení mezi různými variantami produktu se stejným názvem). Hlavní motivací této práce je skutečnost, že automatickým zpracováním velkého množství dokumentů lze s pomocí metod extrakce informací získat podstatně více relevantních informací, než jakými disponují databáze současných portálů 4. E-shopová data o produktových nabídkách jsou zpravidla poskytována portálům kompa- 4 Množství dat pochopitelně přímo úměrně roste s počtem nalezených relevantních dokumentů ve fázi crawlingu. Web crawler viz 2 na straně 5. 2

Cíle rativního nakupování (např. heureka.cz) prostřednictvím tzv. XML feedů 5, které musí odpovídat požadovanému schématu. To pro dané firmy nese i určité náklady, neboť schéma databáze a způsob uložení dat může být i značně odlišný od požadované specifikace. Využití těchto služeb může odrazovat potenciální obchodníky (především menší e-shopy) navíc i tím, že jsou většinou zpoplatněny. Na webových prezentacích firem se pak nachází mnoho pracovních nabídek, které jsou v rámci Internetu unikátní (tj. nejsou zveřejněny na žádném pracovním portálu). Některé nabídky firmy na portály nevkládají z důvodu, že mohou mít nadčasovou povahu (tj. firma má obecně zájem o šikovné pracovníky, ale nejde o bezprostřední potřebu a tedy ani žádné aktivně nehledá). Na pracovní nabídky lze narazit i na stránkách menších personálních agentur. Příkladem portálu, který agreguje pracovní nabídky z několika pracovních portálů, je jooble.cz. 1.2. Cíle Cílem této práce je vytvořit extrakční modely, které umožní automaticky získávat užitečné informace v dostatečně vysoké kvalitě z dostatečně rozsáhlé množiny dokumentů. Kvalitou je přitom myšleno nejenom konkrétní číslo, vyjadřující míru úspěšnosti 6 extrahovaných dat, ale rovněž co nejširší využitelnost pro reálné aplikace. Mezi dílčí cíle, které tento základní cíl naplňují, patří: vytvoření jediného extrakčního modelu pro každou doménu, který umožní extrahovat informace z množiny heterogenních dokumentů s různou formátovací strukturou využitelnost vytvořených modelů i pro extrakci z nestrukturovaného dokumentu/textu získání dat o vysoké granularitě (tj. např. rozlišit jednotlivé parametry výrobku) extrahovat o každé nabídce maximum užitečných informací Některé cíle jsou společné oběma úlohám, jiné se týkají spíše jen produktových nabídek (druhý a čtvrtý bod). Druhý cíl vychází z faktu, že popis vlastností produktu je často uveden v podobě neformátovaného (volného) textu jak v nestrukturovaných webových stránkách, tak v některých existujících označkovaných metadatech. Pro úlohu pracovních nabídek byla navázána spolupráce s firmou Dain, která mi poskytla výchozí data ke zpracování a se kterou byly konzultovány průběžné výstupy tak, aby jejich výsledná forma byla aplikovatelná do praxe. Zcela zásadní je v daných dokumentech identifikovat celý název pracovní pozice a místo pracoviště. V databázi mohou být tyto údaje ukládány spolu s odkazem na původní zdroj (tj. stránku obsahující pracovní nabídku). Pro firmu Dain bylo dostačující získat celý popis pracovní nabídky. V této práci (v souladu s 5 XML feed je pojem, který se vžil pro XML soubor obsahující určitá data (nejčastěji automaticky vygenerovaná z databáze) podle předem určeného schématu, aby mohla být zpracována dalšími aplikacemi. 6 Pod pojmem úspěšnost je zde zamýšlena jednak přesnost (správnost) výsledků extrakce, jednak jejich úplnost, pojem je tedy ekvivalentní F-míře, jejíž definice je uvedena v kapitole 2.6. 3

Úvod obecným požadavkem na vysokou granularitu údajů) byly namísto celých popisů extrahovány jen některé základní typy údajů, které se v pracovních nabídkách nejčastěji objevují 7. Dalším důležitým údajem jsou kontaktní informace firem, kterým se v této práci nevěnuji. Úloha extrakce kontaktních údajů byla v minulosti řešena rovněž s pomocí nástroje Ex [7]). 1.3. Struktura práce Práce je dále členěna do pěti kapitol. Druhá kapitola podává přehled o metodách a přístupech, které se používají pro úlohy extrakce informací. Uveden je rovněž krátký přehled extrakčních systémů. Třetí kapitola představuje extrakční systém Ex, který byl vybrán pro realizaci obou úloh. Kromě obecných informací je v kapitole popsáno, jakým způsobem jsou využity zahrnuté algoritmy strojového učení. Čtvrtá a pátá kapitola popisují realizaci vybraných úloh. V obou případech kapitoly začínají analýzou dané domény a shrnutím klíčových otázek. Následuje popis vytváření samotné extrakční ontologie, tj. jakým způsobem byly řešeny vybrané problémy. Další část obou kapitol pojednává o vytvořených modelech pomocí algoritmu CRF++ a v poslední části jsou vytvořené extrakční ontologie vyhodnoceny. V závěrečné kapitole jsou pak diskutovány dosažené výsledky, které jsou konfrontovány se zvolenými cíly. 7 Nutno poznamenat, že získání celého popisu není vždy triviální úlohou. Identifikace jednotlivých údajů v popisu obsažených je jeden z možných přístupů (zdola nahoru), jak identifikovat hranice popisu nabídky. 4

2Kapitola 2. Extrakce informací z webu Extrakce informací je technika umožňující identifikovat v textu údaje předem specifikovaného typu a extrahovat je v podobě strukturovaných a strojově srozumitelných dat. Výsledná data tak mohou být snadno využita pro potřeby dalších aplikací. Extrakce informací je zaměřena pouze na extrakci izolovaných fragmentů textu, nikoliv na jeho komplexním porozumění (přestože je někdy určitá úroveň porozumění částí textu nezbytná). Z tohoto pohledu je extrakce informací disciplínou, která se nachází na půli cesty mezi tradičním vyhledáváním informací podle klíčových slov (IR information retrieval) a porozuměním přirozeného jazyka strojem (NLU natural language understanding). Extrakce informací (IE information extraction) bývá někdy uváděna jako specifická úloha z oblasti dolování dat z textu (text mining), potažmo z webu (web mining) pokud se omezíme pouze na webové dokumenty 1. V první a dosud nejznámější monografii o web miningu [9] je věnována jedna kapitola technikám, které vznikly právě pro úlohu extrakce informací z webu (a které jsou krátce zmíněny v 2.4.3). Z tradičního pohledu data miningu, který se zabývá objevováním nových, netriviálních a potenciálně zajímavých informací z rozsáhlé množiny dat, je extrakce informací spíše samostatnou a svébytnou disciplínou. Objevování vzorů, které umožňují v textu identifikovat požadované informace, totiž nelze považovat za novou znalost v tom smyslu, že vzory jako takové nemají pro člověka vypovídací hodnotu. Nalezené vzory mají povahu extrakčních znalostí, s jejichž pomocí extrakční systém ve výsledku nalezne a extrahuje pouze známou, v dokumentu obsaženou informaci (ta může být uvedena explicitně nebo lze vyčíst z kontextu). V praktických aplikacích je ale zřejmé prolínání obou disciplín samotné výsledky extrakčního procesu mohou být mj. dále využity v text (web) miningových aplikacích a naopak web (text) miningové techniky jako crawling 2 nebo klasifikace stránek jsou často využívány před samotným extrakčním procesem. Extrakce informací je od svých prvopočátků naopak pevně spjata s oblastí zpracování přirozeného jazyka (NLP natural 1 Web (data) mining jako takový se dělí na 3 základní podoblasti: web content mining (dolování z obsahu webu), web structure mining (dolování ze struktury webu) a web usage mining (dolování z dat o uživatelském chování na webu). Extrakce informací pak může být chápána jako součást web content miningu. 2 Web crawler je druh počítačového programu, který na internetu prochází stránky propojené odkazy, stahuje dokumenty (metainformace, obsah) a ukládá části dokumentů v různých formátech k dalšímu použití. Využíván je především pro indexaci stránek na internetu. 5

Extrakce informací z webu language processing). Tato kapitola shrnuje současné poznání v oblasti extrakce informací a ač je primárně zaměřena na prostředí webu, opomíjeny nejsou ani tradiční metody, které jsou úžeji spjaty se zpracováním přirozeného jazyka. Ty neztratily nic ze své důležitosti, neboť velké množství informací na webu je stále obsaženo ve formě vět psaných přirozeným jazykem. 2.1. Typy dokumentů Textové dokumenty, které jsou vstupem každé extrakční úlohy, lze rozlišovat podle míry jejich strukturovanosti. Dokumenty mohou být strukturované, polostrukturované či nestrukturované. Pohled na to, co lze považovat za strukturované nebo kde leží hranice mezi jednotlivými typy dokumentů, se liší napříč oblastmi výzkumu. Soderland považuje volný (neformátovaný) text psaný v přirozeném jazyce (např. novinové články) za nestrukturovaný, komentáře v diskusním fóru nebo medicínské záznamy za polostrukturované a HTML stránky za strukturované [12]. Z tradičního databázového pohledu jsou za strukturované naopak považovány databázové tabulky (příp. tabulky vytvořené v tabulkovém procesoru nebo neformátované tabulky, kde jsou hodnoty oddělené středníkem). Z tohoto úhlu pohledu jsou XML dokumenty spíše polostrukturované (datové hodnoty se prolínají se schématem), zatímco HTML dokumenty nestrukturované. V [3] považují naopak XML za strukturovaná, HTML stránky za polostrukturovaná a volný text za nestrukturovaná data. Z výše uvedených pohledů jsou jednotlivé typy dokumentů popisovány spíše podle jejich struktury. Pro extrakci informací je ale rovněž podstatná povaha samotného textu, která může být proměnlivá v rámci všech uvedených typů dokumentů. Dlouhé odstavce textu psané v přirozeném jazyce jsou v nestrukturované podobě (ty nalezneme např. v novinových článcích, recenzích nebo blozích uživatelů), informace zapsané v tabulkové formě jsou většinou strukturované a útržky textu polostrukturované. Útržky jsou navzájem izolované jednotky, netvoří tedy plnohodnotné věty a v dokumentech se nacházejí většinou na samostatných řádcích (ve formě položek seznamu). Poslední definici tak rovněž vyhovuje obyčejný neformátovaný text, pokud jsou jednotlivé informace psány pod sebou na řádcích a netvoří souvislé věty (v podstatě jde tedy o tabulku s jedním sloupcem). V praxi je ale spíše rozhodující, jaká je granularita originálních dat s ohledem na požadavky. Podle (ne)souladu stavu a cíle lze pak vybrat odpovídající nástroj či metody. V [4] klasifikují HTML dokumenty podle míry granularity obsažených dat od málo kvalitních po velmi kvalitní. Pokud je naším cílem extrahovat položky odpovídající n atributům, pak velmi kvalitní stránky jsou takové, kde každá položka odpovídající právě jednomu atributu je obklopena párem HTML značek. Naopak málo kvalitní stránky jsou ty, kde každý řetězec znaků mezi párem HTML tagů odpovídá více než jednomu atributu (jednotlivé hodnoty atributů mohou být příp. odděleny interpunkčními znaménky jako.,, nebo ; ). V takovém případě mohou být nekvalitní rovněž XML dokumenty nebo data generovaná z databází (i databázové tabulky a XML soubory mohou obsahovat delší souvislý text jako např. popis nějakého výrobku). 6

Typy úloh a využití 2.2. Typy úloh a využití Podle povahy extrakčního cíle se rozlišuje několik základních typů úloh, které se v praktických aplikacích zpravidla kombinují. Níže uvádím jejich výčet, pro úplnost je uveden i jejich anglický ekvivalent. rozpoznávání/extrakce pojmenovaných entit (named entity recognition/extraction) extrakce termínů (term extraction) plnění šablon (template filling) extrakce relací (relation extraction) koreferenční rozhodnutí (coreference resolution) Pojmenované entity jsou slova či slovní spojení, která v textu vystupují jako jména osob, geografická místa, názvy organizací, jména produktů, časové či peněžní výrazy. Pojmenované entity jsou tedy vlastní jména rozšířená o některé další výrazy. Pojem vznikl v souvislosti se zpracováním přirozeného jazyka (resp. extrakcí informací), nejde tedy o klasický lingvistický termín. V encyklopedii Wikipedia je pojmenovaná entita mj. definována jako taková entita, která má jeden nebo více rigidních designátorů 3, jež ji označují. Například výraz automobilová společnost založená Henry Fordem v roce 1903 odkazuje k designátorům Ford nebo Ford Motor Company. Naopak výraz současný americký prezident je non-rigidní designátor, protože vztah mezi ním a individuem, které označuje, je nahodilý. Podobně je to i u časových nebo číselných výrazů. Rok 2012 je pojmenovaná entita, neboť odkazuje k 2012. roku v gregoriánském kalendáři, naopak měsíc červen odkazuje k měsíci červnu v libovolném roce a pojmenovanou entitou tedy není. Byly rovněž vytvořeny taxonomie pojmenovaných entit 4. Například v názvu notebooku Lenovo ThinkPad Edge E520 odpovídá výrobce Lenovo entitě Organizace, zatímco ThinkPad Edge E520 je Produkt. Tento typ úlohy nalézá využití mj. pro automatické zodpovídání dotazů nebo ve strojovém překladu, kde je žádoucí zachovat vlastní jména v původním jazyce (tj. nepřekládat např. John Smith na Jan Kovář ). O rozpoznávání pojmenovaných entit v češtině pojednává [13]. Úlohou extrakce termínů je nalézt v textu všechny termíny, které jsou relevantní k určité doméně. Tato úloha je užitečná např. při konceptualizaci doménové znalosti, resp. jako podpora při vytváření doménové ontologie. V úloze plnění (populace) šablon je extrakčním cílem šablona tvořená relací k-tice, do které se mají vyplnit údaje předem specifikovaného typu, jež se vztahují k nějakému objektu či události. Obecně řečeno jde o určitý scénář příkladem je sbírání údajů o teroristických útocích (z novinových článků) nebo o pracovních místech. Příklad takové vyplněné šablony je na obr. 2.1. 3 Pojem, který zavedl americký filosof a logik Saul Kripke. Podle něj rigidní designátor referuje právě k jednomu a témuž individuu ve všech možných (sémantických) světech. Rigidní designátory zahrnují jak vlastní jména, tak např. biologické druhy nebo látky. 4 www.ldc.upenn.edu nebo nlp.cs.nyu.edu 7

Extrakce informací z webu název pozice vzdělání řidičský průkaz jazyk jazyk pracovní poměr Pracovní pozice Obchodní zástupce SŠ B AJ NJ živnostenský list Obrázek 2.1.: Příklad instance šablony Pracovní nabídka. Extrahované hodnoty jsou zvýrazněny barvou, každá barva odpovídá jednomu atributu (slotu). V souvislosti s extrakcí datových záznamů z webových stránek generovaných podle určité formátovací šablony se v literatuře často vyskytuje rovněž pojem extrakce šablon (template extraction). Jedná se fakticky o konkrétní realizaci úlohy plnění šablon (pokud údaje v nalezeném záznamu odpovídají slotům v definované šabloně). Princip uvedené metody je popsán v sekci 2.4.3. Cílem extrakce relací (relation extraction) je nalézt mezi extrahovanými údaji (mohou jimi být jak pojmenované entity tak celé instance šablon) jeden z předem daných vztahů, např. osoba se narodila ve městě. Konkrétním příkladem této relace je narozen_v(ernest Hemingway, Oak Park-Illinois) pro větu Ernest Hemingway was born in Oak Park-Illinois. Výstupem tohoto typu úlohy je tedy binární relace 5, která explicitně popisuje vztah mězi nějakými dvěma objekty (entitami). Plnění šablon naproti tomu vyjadřuje příslušnost určité položky (entity) k danému scénáři, jejím předmětem ale není identifikovat typy vztahů mezi jednotlivými entitami (položkami) uvnitř této n-ární relace. V závislosti na definici úlohy může jít ale ve výsledku téměř o totéž. Pokud by bylo cílem vyplnit šablonu o českých prezidentech, pak jednotlivými sloty 6 by mohly být např. místo narození, knihy, které napsal a vysoké školy, které absolvoval. Ačkoliv neexistuje zjevný vztah mezi sloty navzájem, za předpokladu přítomnosti všech uvedených typů informací by vznikly následující smysluplné binární relace: narozen_v(<prezident>,<místo>), napsal_knihu(<prezident>,<kniha>), ab- 5 Výsledkem mohou být pochopitelně relace vyšší arity, k jejich konstrukci je ale zapotřebí nejprve detekovat binární relace. 6 Pojmem slot je v úloze plnění šablon obecně označován typ informace o dané entitě (jde tedy o ekvivalentní výraz k atributu). V ontologickém inženýrství je slot chápan jako binární relace. 8

Přehled přístupů solvent_školy(<prezident>,<vš>). Úkolem koreferenčního rozhodnutí (analýzy koreferencí) je rozpoznat, zda dvě extrahované hodnoty neodkazují ke stejnému referentu (entitě reálného světa). V kladném případě jsou tyto hodnoty v koreferenčním vztahu. Koreference může být jmenná (např. HP a Hewlett- Packard ) nebo zájmenná (tj. jedna z hodnot je zájmeno, které může zastupovat např. v textu již zmíněné vlastní jméno). V závislosti na typu úlohy se hledají koreferenční vztahy buď na úrovni dokumentu nebo datového záznamu (instance šablony), kterých se na stránce nalézá více. V této diplomové práci jsou pro obě domény primárně řešeny úlohy plnění šablon (konkrétní instance šablony je v dalším textu práce označována jako instance ontologické třídy, jde ale o totéž) a koreferenční rozhodnutí, částečně pak rozpoznávání pojmenovaných entit. Cílem je totiž extrahovat pouze ty pojmenované entity, které se vztahují k danému scénáři. Příklady aplikací Extrakce informací nachází uplatnění pro vědecké, komerční i osobní účely. Příklady užitečných aplikací jsou systémy pro automatické zodpovídání na faktografické otázky nebo strukturované vyhledávání. Zatímco současné fulltextové vyhledávání dokáže vrátit dokumenty v podstatě jen na jednoduchý dotaz, pomocí strukturovaného vyhledávání lze klást složitější dotazy. Tak lze snadno hledat informace nejen o entitách, ale i o vztazích mezi nimi. Strukturované vyhledávání lze využít ve specifických doménách jako např. vyhledávání produktů, služeb (ubytování, hotely aj.) nebo pracovních míst. MEzi další aplikace patří například sledování specifických událostí v tisku (např. teroristické útoky nebo kriminální činy), vyhodnocování uživatelských nálad z transkripcí hovorů na zákaznických linkách, automatický sběr bibliografických údajů o vědeckých i jiných publikacích nebo pro analýzu sentimentu, kdy jsou nejrůznějších diskusních fór nebo blogů extrahovány myšlenky a názory lidí (třeba o produktech). 2.3. Přehled přístupů Pro extrakci informací jsou nejčastěji využívána pravidla, jejichž úkolem je identifikovat v textu požadované údaje. Extrakční pravidla 7 mohou popisovat přímo hodnotu, jež má být extrahována, její kontext nebo separátory (v podobě HTML značek) oddělující jednotlivé položky textu. Extrakční pravidla mohou být obecně vyjádřena pomocí formálních gramatik nebo logických pravidel (založených na predikátové logice prvního řádu). Patrně nejpoužívanějším prostředkem jsou regulární výrazy, v prostředí webu se ale uplatňují rovněž výrazy popisující cestu (např. XPath). Složitější struktury slov lze popsat pomocí bezkontextových gramatik. Pro zápis extrakčních pravidel je možné použít běžné programovací jazyky (Perl, PHP, Java, Prolog), existují ale rovněž jazyky navržené speciálně pro extrakci informací (např. JAPE v systému GATE nebo EOL v systému Ex). K odvozování (učení) vzorů z 7 Pojmy extrakční pravidla, resp. extrakční vzory se v literatuře prolínají a zaměňují, budu je tedy v této práci používat jako synonyma. 9

Extrakce informací z webu množiny trénovacích příkladů se využívají buď supervizované metody (učení s učitelem) nebo nesupervizované metody (učení bez učitele) strojového učení. Dle míry automatizace vytváření extrakčních pravidel lze mluvit o manuálních, poloautomatických nebo automatických metodách. Poloautomatické a automatické metody jsou založeny na induktivním učení. Nepravidlový přístup představují pravděpodobnostní grafické modely, které se nezaměřují na vnitřní strukturu slov, ale na jejich vztahy v posloupnosti slov, kterou dokument přirozeně vytváří. Snahou je modelovat závislost výskytu atributů (typů informací) mezi sebou. K tomu jim obvykle stačí samotná identita (podoba) slov a několik málo příznaků, jež popisují jejich obecné vlastnosti (slovní druh, velké písmeno na začátku apod.). Hledání ideálních parametrů modelu, které by dokázaly dostatečně obecně a přesně vystihnout danou závislost, se provádí opět na množině trénovací dat pomocí algoritmů strojového učení. Nejpoužívanější statistické modely jsou podrobněji popsány v 2.4.1 a 2.4.2. Pro potřeby extrakce informací z webu byly vyvinuty plně automatické techniky, které narozdíl od výše uvedených nevyžadují žádná trénovací data a minimální či žádný zásah od uživatele. Jedná se o metody, které v rámci jednoho nebo více HTML dokumentů hledají jednotnou formátovací šablonu, podle které jsou data na stránce generována z databáze. Jejím nalezením lze tak snadno získat obsažená data v podobě datových záznamů 8. Zbývající část této podkapitoly popisuje základní směry v extrakci informací, které se vyvinuly na základě různých potřeb. V praxi se často využívá kombinace více přístupů najednou, jen velmi obtížně by se ale hledal extrakční systém, který využívá výhod všech přístupů. 2.3.1. Přístup využívající lingvistické techniky První extrakční systémy byly zaměřeny na texty psané v přirozeném jazyce, pro které bylo nutné použití metod pro zpracování přirozeného jazyka. Pro tento přístup jsou typické metody jako lexikální analýza, indetifikace konců vět, lemmatizace, značkování slovních druhů (partof-speech tagger) nebo mělká syntaktická analýza vět (shallow parsing nebo také chunking). Každý extrakční systém musí provést nejprve tokenizaci, tj. vstupní text segmentovat na menší jednotky, které mají z hlediska dalšího zpracování význam. Obecně může být výsledným tokenem znak, ale i věta. Pro potřeby extrakce informací (a zpracování přirozeného jazyka) je žádoucí, aby token byl samostatné slovo, číslo, interpunkční znaménko, matematický operátor aj. U HTML dokumentů se kromě slov přirozeného jazyka vyskytují rovněž tagy (každý tag je zpravidla jeden token). Pro potřeby morfologické a syntaktické analýzy je nutné provést rovněž lexikální analýzu textu. Ta spočívá v identifikaci jednotlivých lexémů 9 v textu. Určité obtíže mohou nastat u zkratek nebo s interpretací slov oddělených spojovníkem/pomlčkou (obě znaménka jsou často zaměnována). Ty mohou být chápána jako dvě samostatná slova nebo jako jediné slovo. Stemming odstraňuje zakončení slov a ponechává jen jeho kořen. Ve většině případů je ale tato technika pro extrakci informací nepoužitelná, neboť redukuje identitu slov na obecnější 8 Datový záznam je tvořen položkami, které se vztahují k jednomu objektu. Např. produktová nabídka v produktovém katalogu, komentář ve fóru atd. 9 Základní (lexikální) jednotka slovní zásoby jazyka. 10

Přehled přístupů výrazy, které vedou k nejednoznačnosti. Pro syntaktickou analýzu vět je klíčová identifikace konců vět, neboť tečka plní v textu i další funkce. Lemmatizace je proces, ve kterém je lexém převeden na jeho základní tvar lemma 10. Určování slovních druhů a lemmat je součástí morfologické analýzy slov. Ta má za úkol pro každé vstupní slovo najít nejen možná lemmata, ale určit rovněž jeho gramatické kategorie. Výstup morfologického analyzátoru pro slova funkci a technika je uveden v tabulce 2.1. vstupní slovo lemma značka 11 NNFS3 funkci funkce NNFS4 NNFS6 NNMS2 technik technika NNMS4 technika NNFS1 Tabulka 2.1.: Výstup morfologické analýzy. V prvním případě je jediné nalezené lemma (tedy základní slovníkový tvar) slovo funkce. Protože slovní tvar funkci odpovídá slovu funkce ve 3., 4. a 6. pádě, jsou na výstupu celkem 3 značky. Např. značka NNFS3 odpovídá podstatnému jménu (substantivu) rodu ženského v jednotném čísle a 3. pádě. Slovu technika pak odpovídá lemma technik (jako povolání) a lemma technika. Prvnímu slovníkovému tvaru odpovídají dvě značky (NNMS2 a NNMS4 ), zatímco druhému jen jedna (podstatné jméno, rod ženský, číslo jednotné, 1. pád NNFS1 ). Pro odstranění morfologické víceznačnosti je nutné vybrat pouze jediný slovníkový tvar (který je jediný správný vzhledem k okolnímu kontextu). Tento proces zjednoznačňování (desambiguace) je založen na pravidlových nebo statistických přístupech. Morfologická desambiguace je klíčová rovněž pro syntaktickou analýzu vět. V mnoha úlohách IE může být dostačující samotná lemmatizace bez určování příslušných gramatických kategorií. Mělká syntaktická analýza vět probíhá zdola nahoru. Nejprve jsou identifikována jednotlivá slova a jejich vlastnosti (tj. výstup morfologické analýzy), které slouží pro odvození frází ve větě (např. jmenné nebo slovesné fráze) k sestavení derivačního stromu (strom, který reprezentuje syntaktickou strukturu věty podle formální gramatiky). Tím se liší od plné syntaktické analýzy, která se zabývá rovněž závislostními vztahy mezi výrazy ve větě (pak je výstupem tzv. závislostní strom). Vhodným jazykovým zdrojem využitelným v aplikacích extrakce informací (nebo obecně zpracování přirozeného jazyka) je tezaurus WordNet, který seskupuje slova do synonymických řad zvaných synsety. Kromě krátkých obecných definicí jejich významu zachycuje různé sémantické nebo lexikální vztahy, které mezi synsety existují. Příklady sémantických vztahů jsou hyponymie hyperonymie (vztah nadřazeného a podřazeného pojmu), holonymie meronymie (vztah celku a části) nebo vyplývání. Slova jsou rovněž zařazena do různých sémantických tříd (tj. množina konceptů, které patří do určité sémantické kategorie). 10 Lemma označuje v lingvistice základní podobu lexému (tedy slova nebo fráze), která se uvádí jako reprezentativní ve slovnících (slovníkový tvar). 11

Extrakce informací z webu Výstup výše uvedených metod může být využit jak při vytváření extrakčních pravidel (adresující buď hodnoty nebo i kontext), tak při klasifikaci sekvencí slov (kde jsou lingvistické údaje součástí množiny příznaků daného slova). Význam jednotlivých metod se liší v závislosti na povaze textu, ale i na obtížnosti jazyka. V jazycích jako čeština, kde je velmi časté ohýbání slov, je morfologická analýza u některých typů úloh nezbytná. Příkladem extrakčních systémů, které využívají metody pro zpracování přirozeného jazyka, jsou WHISK, RAPIER (viz 2.5) a SRV. 2.3.2. Přístup založený na ontologiích Extrakční systémy založené na extrakčních ontologiích vznikly ze dvou důvodů. Aby vznikla ontologie jako popis nějaké domény, musí ji někdo nejprve vytvořit. Extrakční systémy na druhou stranu umožňují automaticky získávat informace obsažené v textu, aniž by přesně věděly, co extrahují. Vznikla tedy myšlenka oba přístupy spojit. Řešením prvního problému je automatické populování ontologií instancemi konceptů. Řešení druhého problému pak spočívá v tom, že extrakční systémy mohou využít již jednou vytvořenou znalost. Ve třetí kapitole je blíže popsán extrakční systém Ex, který je představitelem přístupu založeného na tzv. extrakčních ontologiích. 2.3.3. Wrapperový přístup Pojmem wrapper se v původním smyslu označovala komponenta v systémech pro integraci informací, jejímž cílem bylo poskytnout jediné a zároveň jednotné rozhraní pro dotazování se nad několika informačními zdroji. V současné době se tak rovněž označují extrakční systémy, které umožňují efektivně získávat data z webu. Pojem wrapper může označovat jak systém pro extrakci informací, tak konkrétní extrakční pravidla. Wrapper může být komplexní systém, který zahrnuje proces shromažďování dat z webu (crawling), proces extrakce a výše uvedenou integrační komponentu. Může jít ale také o jednoduchý skript o několika řádcích, který extrahuje např. informace z tabulek na určité webové stránce. Wrapper využívá formátovací struktury HTML stránky a skutečnosti, že mnohé údaje na webu jsou pevně strukturované (mají vysokou kvalitu HTML kódu). Extrakční pravidla wrapperů primárně adresují tzv. oddělovače položek, které jsou si v rámci stránky velmi podobné či stejné a oddělují požadované hodnoty. Ve značné většině případů plní funkci oddělovače formátovací značky (HTML tagy), v některých případech mohou být využity i literály (příkladem takového oddělovače je slovo jméno: ve větě Jméno: Aleš Pouzar, pokud extrahujeme vlastní jména). V případě méně kvalitního HTML kódu lze tímto způsobem získat jen veškerý obsah, který se mezi danými tagy nachází. Pak je nutné použít i nějaká jednoduchá pravidla adresující konkrétní hodnoty v nalezených položkách (nejčastěji regulární výrazy). Kushmerick rozlišuje několik tříd wrapperů (pravidel) podle jejich vyjadřovací síly: LR, HLRT, OCLR, HOCLR. Nejjednodušší z nich je LR (Left-Right) wrapper, který obklopuje požadovanou hodnotu z obou stran: <td> $5.00 </td> 12

Přehled metod Musíme zde každý prvek n-tice vyjádřit zvlášť (v tomto případě cena produktu). Složitější wrapper je pak např. OCLR (Opening-Close-Left-Right), kde parametry O a C definují začátek a konec nezávislých n-tic. Např: <tr><td>blue:</td> <td> $5.00 </td></tr> <tr><td>yellow:</td> <td> $6.50 </td></tr> Každá n-tice je jeden produkt, který má přiřazenu barvu a cenu. Parametr O zde odpovídá tagu <tr>, zatímco parametr C odpovídá tagu </tr>. Pomocí toho wrapperu je tak možné extrahovat celou n-tici. Extrakční pravidla pro wrapper mohou být vytvářena manuálně nebo odvozována z trénovacích příkladů prostřednictvím učících metod (v této souvislosti se používá pojem indukce wrapperů wrapper induction). Pro indukci wrapperů se využívají metody strojového učení, ve většině případů jde o metody učení s učitelem, které vyžadují ručné označkované příklady. Mezi wrappery se rovněž řadí systémy umožňující nalézt datové záznamy na stránce automaticky bez zásahu uživatele, které byly zmíněny na začátku kapitoly. Tyto systémy nevyžadují pravidla, místo toho analyzují strukturu a hledají v ní opakující se vzory, které by mohly představovat datové záznamy s požadovaným obsahem. Výhodou wrapperů je možnost získat rychle a efektivně velké množství dat. Nevýhodou je naopak přílišná závislost na formátovací struktuře, neboť pro každou třídu dokumentů 12 jsou zapotřebí nová pravidla. Metody pro indukci wrapperů sice proces vytváření pravidel zrychlují, přesto je tento přístup využitelný nanejvýš pro extrakci dat z menšího počtu webových sídel. Další nevýhodou je nutnost udržovat wrappery aktuální. Layout webů se s časem mění a pravidla tak přestávají fungovat. Některé systémy umí změnu formátování na webu detekovat automaticky a vygenerovat nová pravidla na základě znalosti dříve extrahovaných dat (pokud zůstala stejná). Ve většině případů je ale nutné provést učící proces odznova (tj. včetně značkování dat), u mánuálně konstruovaných wrapperů nezbývá než všechna pravidla přepsat. 2.4. Přehled metod V následující podkapitole jsou popsány dva pravděpodobnostní modely, které se mj. používají pro značkování textu a jsou tedy vhodné pro úlohu extrakce informací. Dokument je reprezentován typicky jako sekvence slov. Dále jsou popsány některé z automatických metod, kde dokument odpovídá DOM stromu (hierarchii HTML značek). 2.4.1. Skryté Markovovy modely Skrytý Markovův model (HMM hidden Markov model) patří do skupiny grafických pravděpodobnostních modelů. Jeho využití je široké, nachází uplatnění jak v oblastech rozpoznávání 12 Třída dokumentu je množina dokumentů na určitém webovém sídle, které sdílejí formátovací strukturu (ve smyslu, že je identická nebo velmi podobná). Např. stránky vse.cz, fis.vse.cz a kizi.vse.cz tvoří jednu třídu dokumentu. 13

Extrakce informací z webu řeči, zpracování přirozeného jazyka (strojový překlad, značkování slovních druhů aj.), tak i v bioinformatice (predikce genů) nebo v kryptoanalýze. V úloze extrakce informací se HMM používá pro značkování slov v dokumentu. Cílem je objevit co nejoptimálnější skrytou posloupnost značek (tj. značky pro daná slova nejsou přímo pozorovatelná), která je pozorovatelná pomocí množiny náhodných procesů 13, jež generují pozorovací posloupnost (slova dokumentu). Výraz co nejoptimálnější se přitom vztahuje k takové posloupnosti značek, která by minimalizovala počet chyb při značkování dokumentu. Skrytý Markovův model je formálně definován jako pětice (Y, X, A, B, π): Y počet stavů (značek) X počet pozorování (slov) A přechodové pravděpodobnosti mezi jednotlivými stavy (značkami) B výstupní pravděpodobnosti pozorovaných slov π počáteční rozdělení pravděpodobností Obrázek 2.2.: Topologie konkrétního HMM modelu. Náhodná veličina X představuje konkrétní pozorování, veličina Y představuje konkrétní stavy. Černé hrany odpovídají přechodovým pravděpodobnostem mezi stavy, barevně označené hrany pak výstupním (emisním) pravděpodobnostem. Skrytý Markovův model je konečný automat, který přechází z jednoho stavu do druhého, přičemž v každém stavu vygeneruje jedno slovo. Tento proces je znázorněn na obrázku 2.3. Přechody mezi jednotlivými stavy odpovídají Markovovu procesu prvního řádu, neboť budoucí stav závisí pouze na současném stavu a nikoliv už na stavech předcházejících (paměť je omezena na jeden předchozí stav). Tato skutečnost se označuje jako Markovova vlastnost. 13 Tyto náhodné procesy jsou determinovány konkrétní strukturou modelu, která se získá z trénovacích dat ve fázi učení. 14

Přehled metod Obrázek 2.3.: HMM model v čase. Y i reprezentují posloupnost skrytých stavů (Markovův proces). X i jsou jednotlivá pozorování. Šipky znázorňují směr závislosti. Přechod z předchozího stavu na současný stav (přechodová pravděpodobnost) v čase t je určen pravděpodobností P (y t y t 1 ) a generování slova x t v současném stavu y t (výstupní nebo také emisní pravděpodobnost) v čase t je určeno pravděpodobností P (x t y t ). Pro přechody vycházející z libovolného stavu platí, že množina odpovídajících přechodových pravděpodobností musí sčítat do 1. HMM je generativní model, který pro celou sekvenci slov délky N modeluje sdružené rozdělení pravděpodobnosti P (X, Y ), které lze rozložit na součin distribuce přechodových a výstupních pravděpodobností: P (X, Y ) = P (Y ) P (X Y ) (2.1) kde N P (Y ) = P (y 1 y 0 )P (y 2 y 1 )... P (y n 1 y n ) = P (y t y t 1 ) (2.2) t=1 N P (X Y ) = P (x 1 y 1 )P (x 2 y 2 )... P (x n y n ) = P (x t y t ) (2.3) t=1 Pro úlohu extrakce informací jsou pak stěžejní tyto dvě otázky: fáze učení jak odhadnout parametry modelu vzhledem k pozorované posloupnosti, aby pravděpodobnost P (X) byla maximální fáze dekódování jak najít odpovídající posloupnost stavů (značek) Y k danému modelu a při pozorované posloupnosti slov X 15

Extrakce informací z webu Fáze učení Natrénovaný HMM model označíme µ = (A, B, π). Výstupní a přechodové pravděpodobnosti modelu lze přibližně aproximovat podle relativních četností v trénovacích datech, většinou se ale využívá učení pomocí nesupervizovaného Baum-Welchova algoritmu. To probíhá v iterativním procesu, kde v každém kroku je natrénován model s novými parametry, které zvyšují maximálně věrohodný odhad modelu (tj. pravděpodobnost pozorované sekvence v trénovacích datech P (X µ)). Učící fáze končí dosažením maximálního počtu iterací nebo pokud přírůstek zlepšení modelu nepřekročil daný práh. Protože by takto natrénovaný model neuměl rozpoznávat nová slova, která nebyla zahrnuta v trénovacích datech, je ve fázi učení rovněž nutné přerozdělit část pravděpodobnosti přiřazené pozorovaným slovům ve prospěch slov nepozorovaných, nebo-li aby každá emisní distribuce zahrnovala rovněž neznámé slovo. Fáze dekódování Problém dekódování spočívá v nalezení takové posloupnosti stavů (značek) Y, která pro pozorovanou sekvenci slov délky n maximalizuje sdružené rozdělení pravděpodobnosti: Y = arg max P (Y P (Y, X, µ) X, µ) = arg max = arg max P (Y, X, µ) (2.4) Y Y P (X, µ) Y P (Y, X, µ) = P (y 1 y π )P (x 1 y 1 )P (y 2 y 1 )P (x 2 y 2 )... P (y n 1 y n )P (x n y n ) (2.5) kde je počáteční stav označen y π. Protože se posloupnost n slov v daném dokumentu nemění, je marginální pravděpodobnost P (X) konstantní a tudíž pro výpočet maxima zbytečná. Výstupní sekvence značek Y pro daný dokument je tedy determinována nejlepší stavovou cestou vzhledem k pozorované sekvenci slov. Problém hledání maxima lze efektivně řešit pomocí Viterbiho algoritmu (technika dynamického programování). Ten vychází z principu, že pro výpočet pravděpodobnosti určité cesty s 1... s n lze využít již dříve spočítanou pravděpodobnost pro kratší cestu s 1... s n 1., která tvoří prefix počítané cesty. 2.4.2. Podmíněná náhodná pole Podmíněná náhodná pole (CRF conditional random fields) je pravděpodobnostní model určený pro značkování a segmentaci senkvenčních dat. Jeho využití je stejné jako u HMM, v současné době ale dosahuje mezi pravděpodobnostními modely nejlepších výsledků ve všech zmíněných oblastech. Potvrzují to výsledky mnoha výzkumných prací, kde byl na stejných datech srovnáván CRF model s klasickým HMM modelem, příp. s jeho (v některých ohledech vylepšenou) variantou MEMM (maximum-entropy Markov model Markovský model s maximální entropií). 16

Přehled metod Obrázek 2.4.: Grafická struktura CRF modelu. X odpovídá pozorováním (slovům v dokumentu) a veličina Y stavům (značkám). Podmíněná náhodná pole jsou narozdíl od HMM diskriminativní model, který namísto sdruženého rozdělení pravděpodobnosti P (X, Y ) modeluje přímo podmíněnou pravděpodobnostní distribuci P (Y X), která je z pohledu úloh jako extrakce informací nebo zpracování přirozeného jazyka nejpodstatnější. Dalším důvodem popularity CRF oproti HMM je možnost využít velkého počtu vzájemně závislých příznaků, pomocí nichž lze lépe modelovat některé reálné jevy (v případě extrakce informací a NLP je to závislost mezi slovy ve větě, lze přitom uvažovat i delší kontext). Příznakem může být samotné slovo, jeho vlastnosti (např. ortografické nebo morfologické jako lemma či slovní druh), členství slova v nějakém seznamu slov nebo slova v okolí aktuálního slova. U skrytého Markovova modelu je sice rovněž možné použít namísto slova množinu příznaků, ve většině situací to ale povede k prořídnutí trénovacích dat (data sparseness). Úkolem CRF v úloze extrakce informací je tedy označkovat sekvenci slov dokumentu pomocí odpovídajících sémantických značek. Značka y t pro aktuální slovo x t závisí na předchozím stavu y t 1 a pozorované množině příznaků F (x t ) pro toto slovo. Podmíněná pravděpodobnost je tedy určena jako P (y t y t 1, F (x t )) Zde je důležité zdůraznit, že tyto lokální podmíněné pravděpodobnosti neslouží pro výpočet celé podmíněné distribuce, ale jsou převedeny na tzv. potenciálové funkce. Ty nejsou normalizované (nemusí sčítat do 1) a namísto pravděpodobnosti vracejí číselné váhy. Tím se zabraňuje jevu label bias, který je popsán níže. Tyto potenciálové funkce jsou přitom definovány pouze pro ty vrcholy v grafu, které jsou navzájem propojeny, tj. tvoří maximální kliku v grafu. V případě sktruktury CRF modelu v podobě řetězce je potenciálová funkce definována na dvojici sousedních stavů Y i a Y i+1 a odpovídajícího pozorování X t (viz obrázek 2.4). Potenciálová funkce se vypočítá jako exponenciální součet vah pozorovaných příznaků: ψ(y i 1, y i, F (X)) = exp fɛf λ f,si,s i 1 f(y i 1, y i, X, i) (2.6) Parametr λ f,yi,y i 1 představuje váhu konkrétního příznaku f odhadnutou z trénovacích dat ve fázi učení. Příznaková funkce 14 F se vztahuje zároveň ke slovům a k předchozímu a 14 Rozdíl mezi příznakem a příznakovou funkcí je objasněn v další kapitole na konkrétních ukázkách pro 17

Extrakce informací z webu současnému stavu. Izolované potenciálové funkce nemají přímou pravděpodobnostní interpretaci, jejich význam spočívá v lokálních omezeních náhodných veličin, pro které je funkce definována. To ve výsledku ovlivňuje i globální konfiguraci modelu. Hledání nejpravděpodobnějšího označkování Y vstupní sekvence slov v dokumentu pro daný model µ spočívá v maximalizaci podmíněné pravděpodobnostní distribuce: Y = arg max P (Y X, µ) (2.7) Y Tu dostaneme vynásobením n potenciálových funkcí daných klik: P (Y 1 n X, µ) = Z(λ, X) exp λ f,yi,y i 1 f(y i 1, y i, X, i) (2.8) i=1 fɛf Z označuje normalizační faktor: Z(λ, X) = s n exp λ f,si,s i 1 f(y i 1, y i, X, i) (2.9) i=1 fɛf Normalizace je tedy provedena až u celé výstupní distribuce. Pro hledání nejlepší cesty je opět využíván Viterbiho algoritmus. Ve fázi učení je cílem dosáhnout maximální věrohodnosti podmíněné pravděpodobnosti sekvence značek v celých trénovacích datech (viz 2.8). Optimalizace přitom probíhá na celé výstupní distribuci (nikoliv na lokálních pravděpodobnostech), trénink CRF modelu je proto podstatně pomalejší než u HMM nebo MEMM. Pro tuto úlohu se využívají gradientní algoritmy jako např. L-BFGS (Low-Memory BFGS). Problém označovaný label bias se vztahuje k preferenci stavů s nižším počtem následných přechodů před stavy s vyšším počtem přechodů. To je dáno podmínkou, aby přechodové pravděpodobnosti z jednoho stavu do dalších sčítaly do 1 s rostoucím počtem možných přechodů tak klesá i průměrná přechodová pravděpodobnost. Label bias patří k hlavní nevýhodě MEMM oproti CRF. Nespornou výhodou CRF (a MEMM) oproti HMM je naopak využití velkého množství vzájemně závislých příznaků. 2.4.3. Porovnávací techniky Cílem porovnávacích technik je detekovat opakující se vzory ve formátovací struktuře stránky. Mnohé webové stránky jsou generovány automaticky z databáze podle určitých šablon a tedy lze obnovit (resp. objevit) původní strukturu informací (která byla v určité míře ztracena při publikování dat ve formátu HTML) nalezením této formátovací šablony. Úloha se v literatuře někdy označuje jako template extraction nebo pattern mining (to je ale relativně obecný výraz, pod kterým se skrývají i další významy). Objekt generovaný podle nějaké šablony (např. nabídka produktu) budeme označovat jako datový záznam (v návaznosti na původní strukturu dat ve formě databázové tabulky). Jedná se o plně automatické metody, k jejichž provedení nejsou nutná žádná trénovací data ani zásah uživatele. Výhodou je dále skutečnost, že jeden datový záznam odpovídá algoritmus CRF++ (3.3). 18

Přehled metod právě jedné instanci. To je užitečné v případě plnění šablon, resp. seskupování hodnot do instancí ontologické třídy. Hranice mezi jednotlivými záznamy totiž od sebe zároveň oddělují nalezené k-tice hodnot atributů a není zapotřebí seskupovat hodnoty na základě pravidel. Na druhou stranu se tyto techniky uplatní jen u pevně strukturovaných HTML stránek a přímá využitelnost získaných dat je přímo úměrná kvalitě vstupního HTML dokumentu (viz typy dokumentů na straně 6). Formátovací šablonu lze nalézt za těchto situací: hledání probíhá v rámci jediného dokumentu, ve kterém se nachází alespoň dva záznamy generované podle stejné (či velmi podobné) šablony hledání probíhá v rámci webového sídla pro alespoň dva dokumenty stejné třídy, které obsahují po jednom záznamu Příkladem první situace jsou nejrůznější produktové katalogy, komentáře na diskusním fóru nebo třeba výsledky vyhledávání na Google.com. Za (relativně) nejjednodušší příklad takové šablony (struktury) si lze představit tabulku, kde každý řádek tabulky odpovídá jednomu datovému záznamu a každý sloupec specifikuje typ informace (tato struktura se nejvíce přibližuje původní podobě). Příkladem druhého typu jsou např. šablony pro zpravodajské články nebo blogy. Pro realizaci úlohy se používají tzv. porovnávací techniky založené na míře podobnosti. Možné je porovnávat řetězce (string alignment nebo také string matching), stromy (tree alignment nebo tree matching) nebo obojí zároveň. V konkrétních úlohách je nutné porovnávat společně i desítky řetězců (stromů), v takovém případě se jedná o vícenásobné porovnávání (multiple alignment). Nejpoužívanější technikou pro měření vzdálenosti ( podobnosti ) mezi řetězci je Levenhsteinova editační vzdálenost. Je definována jako minimální počet operací (vkládání, mazání a substituce) vyžadovaných pro změnu řetězce s 1 na řetězec s 2. Vzdálenost mezi stromy A a B je definována jako minimální počet operací nutných pro transformaci stromu A do stromu B (vložení uzlu, odstranění uzlu nebo nahrazení uzlu). Pro porovnávání stromů se používá DOM strom. Nejjednodušší možností, jak porovnat dva stromy, je najít maximum shodných uzlů. Algoritmus MDR Algoritmus MDR (Mining Data Records) [14] je určen pro hledání datových záznamů, které jsou tvořeny HTML značkami, jež se používají pro tvorbu tabulek či formulářů. Navržený algoritmus umožňuje najít rovněž vnořené záznamy. Metoda vychází z předpokladu, že jestliže datové záznamy jedné datové oblasti jsou vedle sebe a mají podobný formát, pak se v DOM stromu musí nacházet na stejné úrovni a mít společného předka (viz obrázek na následující straně). Oblast datových záznamů (zkráceně datová oblast) je vymezena jako taková skupina datových záznamů, které spolu sousedí, jsou podobně (stejně) formátované a popisují podobné objekty. Příkladem datové oblasti je např. produktový katalog tvořený záznamy o mobilních telefonech. Algoritmus se skládá celkem ze 3 kroků: 19

Extrakce informací z webu Obrázek 2.5.: Algoritmus MDR a porovnávání stromů. Zdroj: [14] 1. zkonstruování DOM stromu pro danou stránku 2. nalezení a vydolování datových oblastí 3. identifikace datových záznamů Najít na stránce datové záznamy a jejich skryté schéma znamená najít opakující se vzory a zarovnat je. Datový záznam může na stránce začínat odkudkoliv a může být libovolně dlouhý. Varianta vyzkoušet všechny možnosti je stěží možná a především neefektivní. Obecný problém výše uvedených technik a metod je skutečnost, jak zjistit, zda nalezené položky tvoří k-tici nebo množinu k-tic. Obtížnější je to v případě, kdy jsou všechny k-tice v rámci jedné množiny tvořeny stejným počtem atributů. Ukázka níže odpovídá množině 3 dvojic (jedná se o 3 variace stejného produktu lišící se barvou a cenou): <tr><td><b>blue:<b></td> <td> $5.00 </td></tr> <tr><td><b>yellow:<b></td> <td> $6.50 </td></tr> <tr><td><b>pink:<b></td> <td> $10.99 </td></tr> HTML kód níže naopak zobrazuje atributy jedné dvojice (jedná se o parametry jednoho produktu): <tr><td><b>weight:<b></td> <td> 30 kg </td></tr> <tr><td><b>height:<b></td> <td> 5 m </td></tr> Ne vždy lze předpokládat, že každý HMTL tag je generovaný šablonou a vše ostatní (tj. slova obsažená mezi značkami) jsou datové položky (na tomto předpokladu jsou postaveny wrapperové systémy DeLa a DEPTA). Proto některé systémy (IEPAD nebo OLERA) nechávají na samotném uživateli, aby označil co je šablona a co data. V tomto případě je nutný minimální zásah uživatele. 2.5. Extrakční systémy V [3] klasifikují extrakční systémy z několika úhlů pohledu. 20

Extrakční systémy Vezmeme-li v úvahu úlohu plnění šablon (extrakce instancí nějaké třídy) na webové stránce, kde je extrakční cíl definován jako relace k-tice (k odpovídá počtu atributů), pak může dojít k následujícím variacím datového objektu: chybějící atribut atribut má více hodnot různá pořadí atributů různá formátování 1 atribut má více různých formátování/jednotné formátování pro více atributů datový objekt je ploché nebo vnořené struktury (obsahuje další objekty) Některé extrakční systémy provádějí tokenizaci vstupního dokumentu na úrovni slov, jiné na úrovni tagu (tj. token odpovídá buď HTML tagu nebo celému řetězci znaků mezi dvěma HTML tagy). Jak bylo uvedeno již výše, systémy se liší i stupněm automatizace, podporou komplexních objektů s vnořenou strukturou, typem dokumentů, dostupností grafického uživatelského rozhraní nebo formátem výstupních dat (XML), robustností vůči různým variacím extrakčního cíle nebo adaptivitou. Sarawagi 15 rozlišuje wrapper systémy podle typu extrakční úlohy. Extrakce jednoho typu údaje (field-level extraction), extrakce na úrovni záznamu (record-level extraction), extrakce na úrovni stránky (page-level extraction) a extrakce na úrovni webového sídla (site-level extraction). První uvedená úloha extrahuje hodnoty jediného atributu (slotu), nezabývá se vztahy mezi atributy v datovém objektu. Druhý typ odpovídá již definované relaci k-tice, cílem je ale pouze jediný typ objektu. Naproti tomu wrappery umožňující extrakci na úrovni stránky mohou definovat více typů objektů. Poslední uvedený typ definuje takové úlohy, kde jsou cílové atributy rozházené po celém webovém sídlu. Rapier Rapier je zástupcem semisupervizovaných extrakčních systémů založených na analýze přirozeného jazyka. Indukce extrakčních pravidel probíhá zdola nahoru pomocí technik inspirovaných induktivním logickým programováním. Každé extrakční pravidlo je definováno pomocí 3 vzorů, z nichž první a poslední specifikují okolí hodnoty, která má být extrahována: (1) prefixový vzor (pre-filler pattern), který popisuje levý kontext požadované hodnoty, (2) vzor popisující hodnotu (filler pattern), jež má být extrahována a (3) suffixový vzor (post-filler pattern), který popisuje pravý kontext požadované hodnoty. Jednotlivé vzory mohou být vymezeny pomocí slov, slovních druhů nebo sémantických tříd. Rapier využívá při generalizaci pravidel slovník WordNet. Pokud je jedno z pravidel omezeno třídou žena a druhé třídou muž, generalizací vznikne mj. pravidlo omezené třídou osoba. Nejlepší generalizace dvou 15 Sarawagi, S.: Automation in information extraction and integration. Tutorial of The 28th International Conference on Very Large Data Bases (VLDB), 2002. 21

Extrakce informací z webu pravidel je hledána pomocí paprskového prohledávání, k výslednému pravidlu mohou být dodatečně přidány další omezení, dokud pravidlo nefunguje bezchybně. Rapier umožňuje ze stránek extrahovat pouze jediný objekt (instanci šablony). Níže je ukázka indukovaného pravidla na základě předložených trénovacích příkladů. nn a nnp odkazují ke slovním druhům podstatné jméno, resp. vlastní jméno, jj označuje přídavné jméno. Cílem je extrahovat oznámení o akvizici firem. Pre-filler Pattern: Filler Pattern: Post-filler Pattern: 1) syntactic: {nn,nnp} 1) word: undisclosed 1) semantic: price 2) list: length 2 syntactic: jj 2.6. Metody vyhodnocení Pro vyhodnocení úspěšnosti extrakčních metod se používají tradiční metriky využívané v oblasti vyhledávání informací. Měření úspěšnosti extrakce hodnot Přesnost (P precision) vyjadřuje podíl správně extrahovaných položek mezi všemi extrahovanými položkami. Jestliže ručně označkovaná data označíme GOLD (odpovědi učitele ručního anotátora) a automaticky extrahovaná data AUTO (předpovědi extrakčního systému), přesnost se bude rovnat průniku ručně označkovaných a automaticky extrahovaných dat ku počtu všech předpovědí systému: P = AUT O GOLD AUT O (2.10) P = # správné odpovědi # odpovědi systému Úplnost (R recall) vyjadřuje podíl správně extrahovaných položek ku počtu všech položek označených anotátorem. Jinak řečeno, úplnost je počet správných odpovědí systému ku počtu všech odpovědí učitele (které jsou implicitně považovány za správné): R = AUT O GOLD GOLD (2.11) R = # správné odpovědi # odpovědi učitele Obě míry leží v intervalu < 0; 1 >, přičemž 1 (100 %) je nejvyšší možná dosažená přesnost (úplnost). Mezi přesností a úplností existuje inverzní vztah. Čím obecnější extrakční pravidla specifikujeme (nebo čím obecnější dotaz položíme vyhledávači), tím více výsledků dostaneme, zároveň ale bude mezi nimi dost i těch, které neodpovídají našemu dotazu (cíli). Čím jsou extrakční pravidla nebo dotaz na vyhledávač specifičtější, tím přesnější dostaneme výsledky 22

Metody vyhodnocení ale zdaleka ne všechny. Pro potřebu srovnání jednotlivých metod (či systémů) pomocí jedné metriky byla definována rovněž F -míra, která je harmonickým průměrem přesnosti a úplnosti: F = (β2 + 1) P R β 2 P + R (2.12) Parametr β umožňuje preferovat jednu z měr před druhou. Nejčastěji se používá nastavení β = 1, tedy obě míry mají stejnou váhu. Meření úspěšnosti seskupování hodnot Lze rovněž měřit správnost seskupování hodnot atributů do instancí (objektů). Pro potřeby této práce jsem si vybral Vilainovy metriky [10], která je odvozena z výše uvedených měr. Namísto hodnot porovnává pomyslné hrany, které propojují sekvenci označkovaných hodnot atributů v rámci instance. Každá instance má tedy přesně N 1 hran, kde N je počet vrcholů (hodnot atributů) v dané instanci. Pro názornost je doplněn obrázek 2.6. Vilainova přesnost (VP Vilain precision) se počítá jako poměr počtu hran nutných k propojení extrahovaných hodnot patřících do instance k počtu všech extrahovaných hran v instanci. V P = # správné hrany # hrany systému Vilainova úplnost (VR Vilain recall) je poměr počtu správně extrahovaných hran ku počtu všech ručně označkovaných hran. měr: V R = # správné hrany # hrany učitele Vilainovo skóre (VS Vilain score) je podobně jako u F -míry harmonický průměr obou V S = 2 V P V R V P + V R (2.13) Mikroprůměrování a makroprůměrování Pokud probíhá vyhodnocení na velkém datasetu, je vhodné předem určit, jakým způsobem se budou počítat průměrné hodnoty statistik pro celý soubor dat. Při mikroprůměrování jsou počítány statistiky zvlášť pro každý dokument a ve výsledku se zprůměrují (nebere se tedy ohled na počet příkladů v dokumentech). Makroprůměrování bere celý soubor dat jako jeden dokument statistiky jsou tedy vypočítány z kumulativních počtů AUT O GOLD, AUT O a GOLD. 23

Extrakce informací z webu Obrázek 2.6.: Vilainovy metriky. Levá strana označuje ručně označkované údaje (3 hrany), pravá strana výsledek extrakčního procesu (2 hrany). Vilainova přesnost je rovna 1/2=0.5 a Vilainova úplnost 1/3=0.33. 24

3Kapitola 3. Systém Ex 3.1. Popis systému Extrakční nástroj Ex 1, vyvíjený na VŠE Praha, slouží k extrakci pojmenovaných entit (hodnot atributů) a k jejich seskupování do relací (instancí tříd). Zpracovávat lze dokumenty s různým množstvím formátovací struktury jako jsou webové stránky, ale také čistě textové nebo tabulární dokumenty. Definice tříd a (k ní náležejících) atributů se zapisují do tzv. extrakční ontologie [1]. Snahou je zde využít pro extrakci doménové ontologie doplněné o znalosti umožňující automatickou extrakci z textu. Mezi doménové ontologie využitelné pro odvození struktury extrakčních ontologií [5] v oblasti nabídek produktů patří např. CEO 2 nebo nově vznikající PTO 3. Odvozením z vhodné doménové ontologie se současně minimalizuje úsilí nutné pro zpětnou konverzi extrahovaných výsledků při populaci zdrojové ontologie. Nástroj Ex kombinuje celkem tři typy extrakční znalosti: pravidla ručně zadaná expertem, znalosti indukované z trénovacích dat pomocí algoritmů strojového učení a částečně jsou využity znalosti nesupervizovaně indukované na základě opakující se formátovací struktury (především pro tabulky). Tímto způsobem je možné z textu extrahovat i takové hodnoty, které předchozí typy extrakční znalosti nepokrývají (nebo-li je chybně považují za negativní příklady). Extrakční ontologie definuje jednu nebo více tříd (např. produktová nabídka) sestávajících z atributů, u kterých lze definovat kardinalitní a datotypová omezení a využít dědičnosti (např. cena a cena s DPH). Definice atributů i tříd obsahují extrakční indicie (evidence), které jsou reprezentovány zejména regulárními vzory a axiomy. Regulární vzory na úrovni třídy specifikují pravděpodobná pořadí atributů uvnitř instance nebo kontext jejího výskytu, zatímco na úrovni atributů modelují předpovídanou hodnotu atributu (obsahové vzory) nebo okolí jeho výskytu (kontextové vzory). Vzory lze definovat na úrovni slov (včetně rozsáhlých seznamů), vlastností slov, na úrovni znaků a na úrovni formátovacích značek (HTML tagů). Vzory mohou odkazovat na jiné vzory (patřící i k jiné třídě), možné je tak jejich opakované 1 http://eso.vse.cz/~labsky/ex/ 2 http://www.ebusiness-unibw.org/ontologies/consumerelectronics/v1 3 http://www.productontology.org 25

Systém Ex použití, včetně vnoření jednoho vzoru do druhého. Třídní axiomy představují tvrzení o obsahu třídy (typicky o vztazích mezi hodnotami jejích atributů, např. emailová adresa je podobná jménu majitele ), zatímco axiomy definované na atributech se vyjadřují o hodnotě daného atributu. Axiomy je možné definovat jako funkce jazyka JavaScript vracející binární výsledek. U každé evidence je možno nastavit dva pravděpodobnostní odhady. Přesnost evidence P (A E) stanovuje pravděpodobnost výskytu atributu v případě, že daná evidence platí. Pokrytí evidence P (E A) stanovuje, do jaké míry je přítomnost vzoru pro extrakci hodnoty daného atributu nutná. Dále je každý typ atributu spojen s určitou nízkou apriori pravděpodobností výskytu v textu. Na základě vyhodnocení všech evidencí a předpokladu jejich podmíněné nezávislosti systém odhadne pravděpodobnost každé potenciální hodnoty atributu P AC ve zkoumaném dokumentu: P AC = P (A E Φ A ) (3.1) Pro extrakci atributů lze navíc přímo z extrakční ontologie trénovat a používat externí algoritmy strojového učení: značkovač sekvencí CRF[8] a některé klasifikátory implementované v systému Weka [2]. Rozhodnutí těchto algoritmů je obvykle využito jako další obsahový vzor klasifikovaného atributu [6]. Práce s nástrojem CRF++ je blíže popsána v sekci 3.3. Atribut na obrázku 3.1 je definován pomocí dvou obsahových a dvou kontextových vzorů. První vzor říká, že výskyt jednoho z uvedených písmen v textu s 25 % pravděpodobností představuje skupinu řidičského oprávnění, tj. pro řetězec A jde o pravděpodobnost P (A driving license) = 0.25 100 % pokrytí zamezí extrakci hodnot tento vzor nesplňujících. První kontextový vzor svým vysokým pokrytím 75 % omezuje pravděpodobná levá okolí předpovídané hodnoty atributu (označené symbolem $). Pokrytí vzoru má na výsledek extrakce vliv vždy, i když neodpovídá žádnému řetězci, naopak parametr přesnost vstupuje do výsledné míry spolehlivosti 4 pouze v případě, že daný vzor platí. Největší vliv na (ne)extrakci má první kontextový vzor s pokrytím 75 %, který vymezuje levé okolí předpovídané hodnoty atributu (označené zástupným symbolem $). Ve vzoru jsou celkem 2 regulární vzory (řádky), stačí splnit pouze jeden z nich (znak nového řádku, potažmo oddělovač představuje logický operátor OR). Kardinalita vztahu je vymezena pomocí parametru card, tedy jedna instance třídy může mít až 4 odpovídající hodnoty (skupiny ŘP). Poslední obsahový vzor přijímá rozhodnutí externího klasifikátoru CRF. Extrakční vzory se pro každý atribut specifikují ve dvou částech (sekcích). První je určena pro definici obsahových vzorů, zatímco druhá pro definici kontextových vzorů. Obě části jsou oddělené a na sobě nezávislé v tom smyslu, že nelze provázat určitá pravidla z jedné sekce s pravidly z druhé sekce (tj. mezi obsahovými a kontextovými vzory nelze vytvářet vztahy). Tímto způsobem se Ex liší např. od Rapieru. Tam každé pravidlo obsahuje vzor pro levý 4 Míra spolehlivosti je předpověď extrakčního systému o dané hodnotě spočítaná z pravděpodobnostních odhadů extrakčních indicií. 26

Anotace a vyhodnocení Obrázek 3.1.: Ukázka části extrakční ontologie atribut driving_license pro extrahování skupin řidičského oprávnění. kontext (pre-filler), obsahový vzor (filler) a vzor pro pravý kontext (post-filler). Oba způsoby mají v praxi své výhody a nevýhody, patrně nejlepší variantou by byla možnost využívat výhod obou. 3.2. Anotace a vyhodnocení Systém Ex podporuje anotace ve formátu Ellogon. Ty je možné vytvořit se stejnojmennou aplikací Ellogon 5 (víceúčelová a vícejazyčná platforma pro zpracování textů). Ellogon umožňuje jak označkování hodnot atributů, tak výsledné anotace pospojovat do skupin (instancí). V systému Ex je možné měřit úspěšnost extrakce atributů a rovněž úspěšnost seskupování hodnot atributů do instancí. K tomu slouží Vilainova míra uvedená v 2.6. Měření je možné ve dvou módech. Tzv. striktní mód (dále strict mode) počítá za správně extrahovanou hodnotu jen takovou, která je identická s ručně označkovanou hodnotou. Naopak ve volném módu (dále loose mode) jsou k výslednému skóre připočteny i částečně správně extrahované hodnoty. Skóre pro danou hodnotu pak odpovídá poměru počtu správně extrahovaných slov (tokenů) k počtu ručně označkovaných slov. Dále jsou zde přítomny módy occurrence a presence. První uvedený mód počítá všechny výskyty atributů, zatímco ve druhém případě postačuje extrahovat pro každý atribut v dokumentu jediný výskyt. 3.3. Nástroj CRF++ Nástroj CRF++ 6 je open source implementace algoritmu CRF. Systém Ex umožňuje tento algoritmus zahrnout do extrakční úlohy. V extrakční ontologii postačuje definovat, které atributy z ontologie mají být součástí CRF modelu, a vytvořit tzv. příznakové šablony. Spuštěním trénovacího módu systém Ex automaticky vygeneruje z označkovaných dat trénovací soubor, který posléze předloží nástroji CRF++. Výsledkem je natrénovaný model, který stačí přidat 5 http://www.ellogon.org/ 6 http://code.google.com/p/crfpp/ 27

Systém Ex do extrakční ontologie (uvedením cesty k modelu a jeho název). V nástroji Ex lze použít celkem dvě reprezentace dokumentu: sekvence slov a sekvence sousloví určité délky. Pro algoritmus CRF je vhodnější první uvedený. HTML značky nejsou do trénovacích dat zahrnuty. Každý atribut v extrakční ontologii, který je vybrán pro CRF model, je automaticky modelován jako začátek atributu (tj. první slovo hodnoty) a pokračování atributu (zbývající slova hodnoty). Předpověď CRF klasifikátoru má pak stejnou povahu jako jakékoliv jiné extrakční pravidlo. K atributu stačí přidat odkaz na definovaný CRF model se jménem konkrétní značky. Tento odkaz je vnořen v obsahovém vzoru a proto je ještě potřeba zadat pravděpodobnostní odhady jako u ostatních vzorů. Při extrakčním procesu pak systém Ex předkládá nástroji CRF++ jednotlivá testovací data (odpovídající aktuálnímu dokumentu) a přijímá zpět nejlepší rozhodnutí klasifikátoru. Pokud značka (třída) vrácená klasifikátorem odpovídá atributu (značce) předpovídané hodnoty, pak extrakční vzor platí (a naopak). 3.3.1. Příznaky Velkou výhodou CRF oproti HMM je možnost využít velké množství vzájemně závislých příznaků. Protože na vhodně definovaných příznacích závisí výsledná úspěšnost modelu, měla by být tomuto kroku věnována dostatečná pozornost. Způsob vytváření příznaků je demonstrován na jednoduchém příkladě. Mějme v označkovaném dokumentu následující posloupnost slov: Notebook Sony VAIO SB3S9E/B Slovo Sony je označkováno jako Manufacturer, slovo VAIO jako Serie a slovo SBS3S9E/B jako Model. Pro každé slovo (příklad) máme definovány 2 vlastnosti: velikost písma ( CA první velké, UC všechna velká, LC všechna malá) ortografický typ slova ( ALPHA jen písmena abecedy, ALPHANUM alfanumerické slovo, P interpunkční znaménko, INT číslo) Každou sémantickou značku pak modelujeme jako začátek značky (B-značka) a pokračování značky (I-značka). V tabulce 3.1 je zachycen odpovídající výstup určený pro algoritmus CRF++. Slovo [0] Velikost písma [1] Typ slova [2] Třída Notebook CA ALPHA bg Sony CA ALPHA B-Manufacturer VAIO UC ALPHA B-Serie SB3S9E UC ALPHANUM B-Model / NA P I-Model B UC ALPHA I-Model Tabulka 3.1.: Trénovací data pro algoritmus CRF++. Číslo v hranaté závorce označuje číslo sloupce. Třída bg odkazuje k neoznačkovanému slovu (nezajímavé slovo na pozadí). 28

Nástroj CRF++ Před vytvářením CRF modelu je nejprve nutné vytvořit šablony, které pomocí maker definují, z jakých typů údajů v trénovacím souboru (viz tabulka) se má vytvořit příznak. Tyto příznaky jsou posléze pomocí příznakových funkcích převedeny do binární podoby. Příznaková šablona je tedy např.: U05:%x[-1,0]/%x[0,0] Makro %x[-1,0] odkazuje k předchozímu příkladu (tj. o řádek výše) v nultém sloupci a makro %x[0,0] odkazuje k atuálnímu příkladu v nultém sloupci. Tata šablona tedy dává do vztahu předchozí a aktuální slovo v dokumentu. Příznak je konkrétní realizace dané šablony. Pokud se nyní nacházíme na druhé pozici v trénovacích datech (2. řádek), pak je výsledkem: U05:Notebook/Sony Současně je vytvořena příznaková funkce, která váže vygenerovaný příznak ke konkrétní třídě: func1 = if (output = B-Manufacturer and feature="u05:notebook/sony") return 1 else return 0 Šabloně U06:%x[-1,2]/%x[0,2] by pak odpovídal příznak typ předchozího slova/typ aktuálního slova. Počínaje druhým řádkem tabulky by byly postupně vygenerovány příznaky AL- PHA/ALPHA, ALPHA/ALPHA, ALPHANUM/ALPHA, P/ALPHANUM a AL- PHA/P. Počet příznakových funkcí f vygenerovaných jednou šablonou (tj. počet binárních příznaků) je roven L N, kde L je počet tříd (značek) a N je počet jedinečných konkrétních příznaků, které byly pomocí šablony vygenerovány. Po vygenerování všech příznakových funkcí pro všechny definované šablony je pak každému slovu x v trénovacích datech podle těchto vytvořených funkcí přiřazena odpovídající množina binárních hodnot F x, které definují, zda dané slovo má nebo nemá konkrétní příznak (tyto binární hodnoty jsou v podstatě binární příznaky): F x = {func 1, func 2,..., func f } Součástí distribuce systému Ex jsou již předdefinované šablony, které byly v minulosti využity v úlohách jako extrakce kontaktních informací nebo oznámení o seminářích [7]. Těchto šablon využívám rovněž pro extrakci produktových a pracovních nabídek. Trénovací soubor pro nástroj CRF++, který systém Ex automaticky vytváří z trénovací sady dokumentů, obsahuje informace jako základní identita slova, slovo převedené na malá písmena, lemma (funguje pouze pro angličtinu) nebo ortografické vlastnosti slova. V šablonách příznaků jsou pak kombinovány tyto informace do bigramů, trigramů atd. Využívají se rovněž okénka slov pro obsáhnutí identity/vlastností okolních slov (okénka jsou velikosti 5 slov, tj. kontext je 2 slova vlevo a 2 vpravo). Zbývající údaje v trénovacím souboru se týkají toho, zda dané slovo odpovídá extrakčním vzorům definovaných v extrakční ontologii či nikoliv. Výsledné příznaky pak pro každé slovo určují, zda odpovídá začátku vzoru, pokračování vzoru nebo neodpovídá vzoru. 29

Systém Ex 3.3.2. Možnosti nastavení algoritmu Kvalitu výsledného modelu lze ovlivnit pomocí 3 parametrů: výběr regularizačního algoritmu (L1/L2) parametr ovlivňující míru generalizace (hyper-parametr) určení prahu pro minimální frekvenci příznaku Regularizace je používána ve statistice a strojovém učení k zamezení přeučení (overfitting). Podle autorů první typ regularizace (L1) výrazně redukuje absolutní počet příznaků v modelu, mírně lepších výsledků dosahuje druhá uvedená varianta regularizace (L2). Pomocí druhého parametru lze vyvažovat rovnováhu mezi přeučením a podučením modelu. Pro fázi učení jde o klíčový parametr. Čím vyšší číslo, tím větší tendence k přeučení. Třetí parametr umožňuje prořezat příznaky o ty, které se vyskytují v datech v počtu menším než je nastavený práh. To je užitečné při velkém množství dat a velkém množství příznaků. 30

4Kapitola 4. Extrakce produktových nabídek Předmětem této úlohy je extrahovat nabídky notebooků. Extrakčním cílem jsou vybrané parametry notebooků a údaje specifikující konkrétní nabídku, které jsou jedinečné pro každý eshop (tj. cena a dostupnost zboží na skladě). Jednotlivé typy extrahovaných informací jsou zmíněny v sekci 4.2. Extrakční cíl byl zvolen se záměrem, aby získaná data mohla být použita v aplikacích jako strukturované vyhledávání na základě parametrů a komparativní nakupování. Cílem je vytvořit jedinou extrakční ontologii pro všechny typy stránek (produktové katalogy, detailní popisy produktů). Pro doménu produktových nabídek byly vytvořeny 2 extrakční ontologie, které se od sebe liší použitými extrakčními znalostmi. První extrakční ontologie (EO#1) využívá pouze ručně zadaná pravidla, zatímco druhá ontologie (EO#2) kombinuje expertní znalost v podobě pravidel se znalostmi indukovanými pomocí algoritmu CRF++. Úloha byla realizována v následujících krocích: 1. analyzovat webové stránky e-shopů 2. vybrat dataset a rozdělit ho na trénovací a testovací část 3. navrhnout extrakční ontologii a pro každý atribut ručně napsat extrakční vzory (EO#1) 4. ručně označkovat trénovací data 5. vylepšovat extrakční ontologii do té doby, dokud dochází ke zvyšování úspěšnosti na trénovacích datech 6. natrénovat CRF model se všemi atributy 7. vytvořit ontologii #EO2: k ručně napsaným vzorům z #EO1 přiřadit dodatečné vzory, které přijímají rozhodnutí klasifikátoru CRF 8. ručně označkovat testovací data 9. na testovacích datech ověřit kvalitu modelu EO#2 31

Extrakce produktových nabídek 10. natrénovat další CRF model s jinými parametry učení či jinými atributy, příp. jiným počtem příznakových šablon 11. vybrat CRF model dosahující na testovacích datech nejvyšší F-míry 12. provést vyhodnocení na trénovacích i testovacích datech pro obě extrakční ontologie (#EO2 s CRF modelem vybraným v předcházejícím kroku) Kromě parametrů samotného CRF modelu je především klíčové jeho zapojení do extrakční ontologie #EO2 tak, aby na výsledek extrakce měly vliv pouze správná rozhodnutí CRF klasifikátoru a naopak špatná rozhodnutí byla potlačena. Je proto nutné u každého atributu v ontologii dosáhnout optimálního vyvážení pravděpodobnostních odhadů všech extrakčních indicií a zároveň brát v potaz, že jsou některé atributy ve vzájemné interakci a proto zhoršení úspěšnosti u jednoho může vést ke zhoršení úspěšnosti několika dalších atributů. Nejvíce času zabraly kroky 3 až 5. Z bodu 5 bylo často nutné vracet se k předchozím dvěma bodům. Proces ručního anotování celého datasetu trval přibližně jeden člověkotýden (5 člověkodní). Seskupování hodnot do instancí probíhalo automaticky pomocí vytvořeného PHP skriptu. Při anotování bylo seskupení hodnot patřící do jedné instance z obou stran ohraničeno označením okolních neutrálních slov (k tomu sloužila speciální značka). Skript pak podle těchto oddělovačů zařadil označkované hodnoty do odpovídajících instancí. Hlavním důvodem automatizace byla skutečnost, že Ex vyžaduje anotace instancí v trochu jiné podobě, než v jaké je vytváří Ellogon. Ellogon odkazuje k prvkům instance pomocí pozice hodnoty v textu (např. {5600 5615}), zatímco Ex odkazuje na již označkované prvky pomocí jejich identifikátorů (např. {1}). Vytváření ručních pravidel zabralo přibližně 2 člověkotýdny. Určení přesnějšího časového údaje stěžuje fakt, že jsem se systémem Ex předtím nikdy nepracoval a tudíž bylo nejprve potřeba pochopit, jak funguje a jakým způsobem zapisovat potřebná extrakční pravidla. Tento proces učení jsem zahájil tvorbou extrakčních ontologií, které jsou předmětem této práce. Proces vytváření extrakční ontologie probíhal tedy současně s procesem učení. 4.1. Popis domény Z hlediska počtu nabídek produktů a množství informací o produktech lze stránky eshopů rozdělit na dva základní typy: stránka obsahující produktový katalog s více produkty stránka, která detailně popisuje jeden vybraný produkt Produktový katalog si lze představit jako tabulku obsahující m n (nabídek) produktů, kde m je počet řádků a n počet sloupců dané tabulky (obrázek 4.1). Každá buňka pomyslné tabulky tedy odpovídá jedné nabídce 1. Jediné údaje, které se v produktových nabídkách objevují bez 1 Tato představa se liší od tabulkové struktury zapsané v HTML kódu, kde je pro popis jednoho produktu nutné využít více buněk. 32

Popis domény Obrázek 4.1.: Produktový katalog. Stránka generovaná z databáze podle formátovací šablony. výjimky u všech eshopů, jsou název notebooku a cena. Velmi často bývá uváděna dostupnost a množství na skladě. Počet parametrů popisujících notebook se u jednotlivých obchodů liší. Parametry bývají nejčastěji uvedeny ve zkrácené formě bez jakéhokoliv kontextu 2 (viz obrázek 4.2), výjimkou nejsou ani slovní popisy tvořené větami přirozeného jazyka. Dokumenty obsahující produktový katalog budu v dalším textu označovat jako katalogová stránka eshopu. Druhý typ stránek je naopak charakteristický detailním popisem jednoho vybraného produktu. Ten je většinou tvořen kombinací slovního popisu (větami přirozeného jazyka) a výčtem parametrů ve formě tabulky či seznamu. Narozdíl od katalogové stránky je u všech parametrů uveden kontext, podle kterého lze daný údaj identifikovat. Tento typ stránky budu nadále označovat jako detailová stránka eshopu. Kromě produktových katalogů a detailních popisů se na stránkách eshopů vyskytují často i další oblasti datových záznamů, které obsahují nabídky produktů např. seznam nejlépe prodávaných notebooků v postranní liště. Proto i detailová stránka může obsahovat více produktů. Obecně u produktových nabídek platí, že se vlastnosti (parametry) produktů nacházejí nejčastěji v základním tvaru i v českém jazyce (tj. ohýbání slov se nepoužívá typicky u názvů produktů, řad/modelů nebo číselných či technických parametrů). Pro identifikaci těchto hodnot není nutná morfologická analýza (resp. lemmatizace). Každý notebook lze popsat velkým množstvím parametrů, převážně technické povahy. Číselné parametry následované příslušnými jednotkami míry se snadno rozlišují od okolního textu, víceznačnost hrozí u hodnot se stejnou jednotkou míry: např. 8 GB jako operační paměť a 500 GB jako kapacita pevného disku. Důležitý je zde kontext, přestože ve většině 2 Cyhbějícím kontextem je zamýšlena nepřítomnost údajů, které indikují (vysvětlují) daný parametr. 33