220 likes | 366 Views
Razvoj algoritma za avtomatsko generiranje ontologij. Aleksander Pivk fakultetni m entor: akademik prof. dr. Ivan Bratko institutski mento r : prof. dr. Matjaž Gams. Ontologija. Ocenjevanje (ekspert). Mno žica dokumentov. Sistem. ni OK. OK. Vhodni dokument. Ontologija.
E N D
Razvoj algoritma za avtomatsko generiranje ontologij Aleksander Pivk fakultetni mentor: akademik prof. dr. Ivan Bratko institutski mentor: prof. dr. Matjaž Gams
Ontologija Ocenjevanje (ekspert) Množica dokumentov Sistem ni OK OK Vhodni dokument Ontologija Odgovor agost ShinA* Teza doktorata • na množici vhodnih dokumentov se poskuša sistem avtomatsko naučiti znanja o domeni, tj. ontologijo, ki se uporabi za avtomatsko luščenje informacij. • doprinos – sistem za avtomatsko generiranje ontologij (strojno in človeško berljivih) iz spletnih dokumentov. Ena izmed temeljnih nerešenih nalog semantičnega spleta.
Postopek delovanja sistema PREDZNANJE primeri iz določene domene(npr. CFP, e-nakupovanje, …) ONTOLOGIJA POSTOPKOVNI OPIS: a) s pomočjo predznanja procesiraj primere in pripravi podatke za učni algoritem b) uporabi učni algoritem za generiranje pravil (znanja) c) iz pravil zgradi ontologijo - <h#|b|i|title>- kw={workshop, conference, CFP} • dokumenti/primeri so zapisani v HTML • primere poda človek
zahtevnost znanja Predznanje (1) • pet vrst predznanja: • html oznake in strukture • lastna imena • pripadnost vnaprej definiranemu seznamu (imena oseb, držav, mest, ustanov, mesecev, dni, …) • osnovne entitete • sintaktična analiza besedila (shallow language processing) • orodje GATE (ogrodje za razvoj komponent pri procesiranju naravnega jezika) • obstoječe splošne ontologije • Wordnet
Predznanje (2) • HTML OZNAKE in STRUKTURE • sintaksa jezika HTML • ELEMENT: par ujemajočih seoznak (<a>…</a>), enostavna oznaka (<br>)ali tekst • BLOK: (lahko) sestavljen iz več elementov, ločnico predstavljajo skupine oznak: • interne povezave v dokumentu (#anchor) • mejniki (<h#>,<br>,<p>,<hr>,<blockquote>,…) • SEZNAM: vsebina elementa(<table>, <ul>, <ol>, <dt>) • pomembnost oznak • oznake z večjo informacijsko vrednostjo (<h#>, <font>, <i>, <b>,<u>,<center>…)
Predznanje (3) • OSNOVNE ENTITETE • (hevristična) sintaktična pravila: • tel, fax: (tel|fax|gsm|phone) +?\\(?X\\)?\\(X\\)?(-?X)+ X=[0-9]+ • e-mail: (e?-?mail(to)?)? Y(\\.Y)*@Y(\\.Y))+ Y=[0-9a-zA-Z]+ • datum: [DDDD|MMMM] d{2}W*d{2} W*d{4} W=[.,/ ] • ura: d{2}Z*d{2} Z=[:] • temperatura: [T|temp] d{3}°?[C|F]
Podrobnejši opis delovanja • vhodni parametri • dokumenti/primeri iz izbrane domene • izbira predznanj • procesiranje in priprava podatkov za učenje • procesiranje in obdelava primerov na podlagi predznanja in strukturne analize • priprava učnih atributov • učna faza • učni algoritmi: povezovalna pravila, ILP sistem (HYPER?), HINT? • induciranje pravil in dopolnjevanje atributov • grajenje ontologije iz pravil • zapis ontologije v formalen jezik (RDF/S, OWL)
ponavljaj Učna faza(alg: povezovalna pravila) • osnovni korak(bottom-up pristop) • iz učnih atributov induciramo pravila • sortiramo glede na (confidendce, support) • izluščimo pravila nad pragom • združevanje pravil v hierarhično strukturo (drevo) • koraki višjih nivojev • dodamo/dopolnimoučne atribute (agregacija, razbitje) • iz učnih atributov induciramo nova pravila • drevo nadgradimo z izbranimi novimi pravili • postopek učenja pravil na višjih nivojev ponavljamo, dokler ne zgradimo celotnega drevesa (povežemo vsa poddrevesa) • generirano drevo predstavlja ontologijo
Simulacija konkretnega primera • trije dokumenti/primeri iz domene CFP • predznanje: a) - c) • po strukturni analizi dobimo:
Simulacija konkretnega primera • učni primeri • učni algoritem (povezovalna pravila) • izluščimo pravila • TITLE,DATE, LOC, PC, PC_LIST,DATES, DAT_LIST, DL_TYP=L2 (c=1) • TOPICS,TOP_LIST -> TL_TYP=6 (c=1) • LOC -> LOC_TYP=L5 (c=2/3) • OC,OC_LIST -> OCL_TYP=L1 (c=1/2) • … • spravili (nad pragom) gradimo ontologijo
CFP - <h2|h3> + LIST- kw={date} - <h2|h3> + LIST- kw={comittee} TITLE DATE TOPIC LOCATION COMITTEE - kw={program} - kw={organize} • <h2|h3> + LIST- kw= {topic, theme, area} - <h#|b|i|title>- kw={workshop, conference, CFP} - <h#|b|i> D1 D2 D3 D4 D5 NAME - pravila inducirana iz predznanja D1: <h#|b|i> D2: kw={submission} D3: kw={notification} D4: kw={camera ready} D5: kw={abstract} ORGANIZE PROGRAM UNIVERSITY CITY COUNTRY Simulacija konkretnega primera • iz pravil generiramo ontologijo • zapis v formalen jezik (RDF, OWL)
Dileme • PREDZNANJE • pri kateri stopnji predznanja sistem začne funkcionirati? • ali obstoječe ontologije kaj pripomorejo? • UČENJE • kako izkoriščati strukturno indukcijo? • poskus hevrističnega grupiranja za povezovalna pravila • primernostsistema HYPER?
Delitev množice HTML oznak • tekstni nivo (vrstica) • <font, tt, i, b, big, small, sub, sup, em, strong, dfn, code, samp, kbd, var, cite, q, a> • bločni nivo • <h#, address, p, pre, div, center, blockqoute, form, isindex, hr, table, caption, tr, th, ul, ol, li, dt, dd, br, frame, frameset, body>
množica HTML dokumentov sistem ontologija AGOSD ontologija vhodni dokument ShinA* odgovor Slika 1
skrbnik ontologija AGOD množica spletnih dokumentov ontologija vhodni dokumenti ShinA* VUSP uporabnik odgovor Slika 1a
skrbnik AGOD množica spletnih dokumentov množica okvirjev(F-Logic) ontologija OntoBroker vhodni dokumenti VUSP ShinA* uporabnik odgovor uporabnik odgovor Slika 1c
predznanje HTML dokumentiizizbranedomene(npr. turizem, e-nakupovanje, …) ontologija POSTOPKOVNI OPIS: a) s pomočjo predznanja procesiraj dokumente, izlušči relevantne tabele in jih pripravi za procesiranje/obdelavo b) obdelaj relevantne tabele (poravnava) c) uporabi obstoječe (splošne) ontologije za ugotavljanje/določanje semantike d) iz obdelanih tabel in določene semantike zgradi ontologijo - primerki konceptov Slika 2
ontologija predznanje HTML dokumentiizizbranedomene(npr. turizem, e-nakupovanje, …) POSTOPKOVNI OPIS: a) s pomočjo predznanja procesiraj dokumente, izlušči relevantne tabele in jih pripravi za procesiranje/obdelavo b) obdelaj relevantne tabele c) uporabi obstoječe (splošne) ontologije za ugotavljanje/določanje semantičnih kategorij d) iz obdelanih tabel in določene semantičnih kategorij zgradi ontologijo e) preslikaj ontologijo v formalizem F-Logic primerki konceptov okvirji(jezik F-Logic) Slika 2b
Semantični Semantični 4 Semantično oplemenitenje FTM 4 Semantično oplemenitenje FMT Funkcijski Funkcijski 3Grajenje FTM 3Grajenje FTM Strukturni Strukturni 2Odkrivanje strukture 2Odkrivanje strukture Fizični Fizični 1Čiščenje & Normalizacija 1Čiščenje & Normalizacija vhod vhod tabelarični model tabelarični model metodološki koraki metodološki koraki izhod izhod okvirF-Logic dokumentHTML Okvir HTML Slika 3
Semantični Semantični 4 Semantično oplemenitenje FMT 4 Semantično oplemenitenje FMT Funkcijski Funkcijski 3Grajenje FTM 3Grajenje FTM Strukturni Strukturni 2Odkrivanje strukture 2Odkrivanje strukture Fizični Fizični 1Čiščenje & Normalizacija 1Čiščenje & Normalizacija vhod vhod tabelarični model tabelarični model metodološki koraki metodološki koraki izhod izhod tabelaHTML okvirF-Logic tabelaHTML konceptF-Logic
Tour [ Code => ALPHANUMERIC; DateValid => DATE; EconomicExtension (PersonClass, RoomClass) => LARGE_NUMBER; ExtendedExtension (PersonClass, RoomClass) => LARGE_NUMBER; ]. FORALL X,Y,P <- EXISTS T T:Tour[EconomicExtension@(X,Y) -> P]. X = adult, Y = single_Room, P = 35.450; X = adult, Y = double_Room, P = 32.500; X = adult, Y = extra_Bed, P = 30.550; X = child, Y = occupation, P = 25.800; X = child, Y = no_Occupation, P = 23.850; X = child, Y = extra_Bed, P = 22.900; FORALL X <- EXISTS T T:Tour[Code@ -> X]. X = DP9LAX01AB; FORALL X,Y,P <- EXISTS T T:Tour[Code@ -> X and DateValid -> Y ExtendedExtension@(adult, single_Room) -> P]. X = DP9LAX01AB, Y = 01.05.04-30.09.04, P = 2.510;
- FORALL X,Y,P <- EXISTS T T:Tour[EconomicExtension@(X,Y) -> P]. X = adult, Y = single_Room, P = 35.450; X = adult, Y = double_Room, P = 32.500; X = adult, Y = extra_Bed, P = 30.550; X = child, Y = occupation, P = 25.800; X = child, Y = no_Occupation, P = 23.850; X = child, Y = extra_Bed, P = 22.900; - FORALL X <- EXISTS T T:Tour[Code@ -> X]. X = DP9LAX01AB; - FORALL X,Y,P <- EXISTS T T:Tour[Code@ -> X and DateValid -> Y and ExtendedExtension@(adult, single_Room) -> P]. X = DP9LAX01AB, Y = 01.05.04-30.09.04, P = 2.510;