Dott. Fabio Massimo Zanzotto a.a. 2001-2002 Sistemi basati su conoscenza Costruzione automatica di ontologie di dominio Dott. Fabio Massimo Zanzotto a.a. 2001-2002
Ontologie di dominio (esempio) cibo vegetale carne frutta ortaggio carne_bianca carne_rossa mela pera arancia
Ontologia di dominio Le applicazioni basate su conoscenza richiedono molte informazioni precise Grandezza delle ontologie di dominio Precisione dell’informazione contenuta.
Concetto importanti Ontologia contiene: Concetti Relazioni tra concetti Istanze I concetti sono quelli ritenuti importanti per l’applicazione
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
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)
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
Ontologie di dominio Sorgente di informazione (conoscenza) Testi scritti in linguaggio naturale che riguardano il dominio in questione
Ciclo di produzione Modello esteso del dominio Termine Collezione di documenti Ingegneri della conoscenza + Esperti del Dominio Ontologia pre-esistente
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
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
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])]).
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
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
Conta su di un testo /* concetti_importanti(Testo,Concetti_Ordinati) Testo = [w1,w2,...,wn] Concetti_Ordinati = [(c1,freq1),..., (cn,freqn)] */
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 Rappresentazione hard disk hard_diskC pre-tax profit pre-tax_profitC
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).
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).
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).
Esempio ??????
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.
Limiti dell’algoritmo presentato Forme superficiali povere Vengono proposti concetti non convincenti Nozione di importanza troppo poco informativa Salgono concetti generici