220 likes | 357 Views
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.
E N D
Sistemi basati su conoscenzaCostruzione 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
Ingegneri della conoscenza + Esperti del Dominio Ciclo di produzione Modello esteso del dominio Termine Collezione di documenti 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