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 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_diskC(X) è il concetto*/ prop(hard_diskC(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 ProLog FMZ 14 Conta su di un testo /* concetti_importanti(Testo,Concetti_Ordinati) Testo = [w1,w2,...,wn] Concetti_Ordinati = [(c1,freq1),..., (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_diskC pre-tax_profitC FMZ 16 Conta su di un testo concetti_importanti(Testo,Concetti_Ordinati):singoli(Testo,ConcettiSemplici), importanza(ConcettiSemplici,ConcettiSempliciVal), coppie(Testo,ConcettiCompl), importanza(ConcettiCompl,ConcettiComplVal), append( ConcettiSempliciVal, ConcettiComplVal, ConcettiVal), sorted(ConcettiVal, Concetti_Ordinati). FMZ 17 Singoli e coppie singoli([],[]). singoli([W|RT],[C|RC]):atomconcat(W,’C’,C), !, singoli(RT,RC). coppie([],[]). coppie([W1,W2|RT],[C|RC]):atomconcat([W1,’_’,W2,’C’],C), !, coppie([W2|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,REST1):compare(A,REST,F1,REST1), FREQ is F1 + 1. compare(A,[B|REST],FREQ,[B|REST1]):compare(A,REST,FREQ,REST1). 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