Sistemi basati su conoscenza Costruzione automatica di ontologie
Sistemi basati su conoscenza Costruzione automatica di ontologie di dominio Dott. Fabio Massimo Zanzotto a. a. 2001 -2002 FMZ 1
Ontologie di dominio (esempio) cibo vegetale frutta mela pera ortaggio carne_bianca carne_rossa arancia FMZ 2
Ontologia di dominio • Le applicazioni basate su conoscenza richiedono molte informazioni precise – Grandezza delle ontologie di dominio – Precisione dell’informazione contenuta. FMZ 3
Concetto importanti • Ontologia contiene: – Concetti – Relazioni tra concetti – Istanze • I concetti sono quelli ritenuti importanti per l’applicazione FMZ 4
Nozione di termine • Dato un dominio conoscitivo, un termine è la rappresentazione superficiale di un concetto importante per il dominio • Es. Dominio Informatico hard disk Turing machine Von Neumann machine Virtual machine FMZ 5
Costruzione di ontologie di dominio • Passo importante: individuare i concetti che si desidera includere – Fare una ipotetica lista di candidati – Separare concetti importanti da quelli non importanti (da includere/da non includere) FMZ 6
Costruzione di ontologie di dominio • Non sono esperto di dominio (problema): – Ingegnere della conoscenza – Progettista di basi di dati – Programmatore ma conoscono una metodologia di risoluzione del problema FMZ 7
Ontologie di dominio • Sorgente di informazione (conoscenza) – Testi scritti in linguaggio naturale che riguardano il dominio in questione FMZ 8
Ciclo di produzione Modello esteso del dominio Termine Collezione di documenti Ontologia pre-esistente Ingegneri della conoscenza + Esperti del Dominio FMZ 9
Produzione semi-automatica di ontologie • Affiancare agli esperti di dominio Ingegneri della Conoscenza “Automatici” • Abbiamo: – Cosa dobbiamo cercare: i concetti importanti – Dove cercarlo: i testi scritti in linguaggio naturale – Il trait-d’union: la nozione di termine FMZ 10
Nozione di termine: riflessioni • Rappresentazione superficiale – Proprietà osservabile nel mondo testuale • Importanza per il dominio – Proprietà osservabile nel modello esteso del dominio • La rappresentazione superficiale (termine) non è il concetto soggiacente FMZ 11
Rappresentando in XI • Per ogni concetto vogliamo rappresentare una forma interna e le sue proprietà /* hard_disk. C(X) è il concetto*/ prop(hard_disk. C(X), [name(X, [hard, disk])]). FMZ 12
Nozione di termine: riflessioni • Rappresentazione superficiale – Sequenza di 1 o 2 parole • Importanza per il dominio – Frequenza con cui è osservata la sequenza • Si assume che esiste una relazione uno a uno tra termine e concetto FMZ 13
Costruzione del modello/sistema • Specifiche: – Costruire una procedura che dato un insieme di testi in ingresso, mostri le forme superficiali in ordine di importanza • Ci vogliamo del male e lo implementiamo in Pro. Log FMZ 14
Conta su di un testo /* concetti_importanti(Testo, Concetti_Ordinati) Testo = [w 1, w 2, . . . , wn] Concetti_Ordinati = [(c 1, freq 1), . . . , (cn, freqn)] */ FMZ 15
Conta su di un testo I concetti devono essere rappresentati dalla sequenza di parole intervallata da _ e terminano con C ed hanno come proprietà quella di manifestarsi nel testo con la forma superficiale rappresentata dalle parole stesse Es. Forma superficiale hard disk pre-tax profit Rappresentazione hard_disk. C pre-tax_profit. C FMZ 16
Conta su di un testo concetti_importanti(Testo, Concetti_Ordinati): singoli(Testo, Concetti. Semplici), importanza(Concetti. Semplici, Concetti. Semplici. Val), coppie(Testo, Concetti. Compl), importanza(Concetti. Compl, Concetti. Compl. Val), append( Concetti. Semplici. Val, Concetti. Compl. Val, Concetti. Val), sorted(Concetti. Val, Concetti_Ordinati). FMZ 17
Singoli e coppie singoli([], []). singoli([W|RT], [C|RC]): atomconcat(W, ’C’, C), !, singoli(RT, RC). coppie([], []). coppie([W 1, W 2|RT], [C|RC]): atomconcat([W 1, ’_’, W 2, ’C’], C), !, coppie([W 2|RT], RC). FMZ 18
Importanza importanza([], []). importanza([C|RC], [(C, FREQ)|RCFREQ]): compare(C, [C|RC], FREQ, RCREST) !, importanza(RT, RC). compare(_, [], 0, []). compare(A, [A|REST], FREQ, REST 1): compare(A, REST, F 1, REST 1), FREQ is F 1 + 1. compare(A, [B|REST], FREQ, [B|REST 1]): compare(A, REST, FREQ, REST 1). FMZ 19
Esempio ? ? ? FMZ 20
Esercizi • Trasformare un testo in ingresso (sequenza di caratteri) in sequenza di parole (si utilizzi il concetto di stringa in prolog) • Scrivere un predicato che ordini per importanza i concetti in più testi. FMZ 21
Limiti dell’algoritmo presentato • Forme superficiali povere Vengono proposti concetti non convincenti • Nozione di importanza troppo poco informativa Salgono concetti generici FMZ 22
- Slides: 22