1FMZ
Sistemi basati su conoscenza Costruzione automatica di ontologie di dominio
Dott. Fabio Massimo Zanzotto
a.a. 2001-2002
2FMZ
Ontologie di dominio(esempio)
cibo
vegetale carne
frutta ortaggio carne_bianca carne_rossa
mela pera arancia
3FMZ
Ontologia di dominio
• Le applicazioni basate su conoscenza richiedono molte informazioni precise
– Grandezza delle ontologie di dominio– Precisione dell’informazione contenuta.
4FMZ
Concetto importanti
• Ontologia contiene:– Concetti – Relazioni tra concetti – Istanze
• I concetti sono quelli ritenuti importanti per l’applicazione
5FMZ
Nozione di termine
• Dato un dominio conoscitivo, un termine è la rappresentazione superficiale di un concetto importante per il dominio
• Es. Dominio Informaticohard diskTuring machineVon Neumann machineVirtual machine
6FMZ
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)
7FMZ
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
8FMZ
Ontologie di dominio
• Sorgente di informazione (conoscenza)
– Testi scritti in linguaggio naturale che riguardano il dominio in questione
9FMZ
Ciclo di produzione
Ontologia
pre-esistente
Collezione di documenti
Modello esteso del dominioTermine
Ingegneri della conoscenza + Esperti
del Dominio
10FMZ
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
11FMZ
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
12FMZ
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])]).
13FMZ
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
14FMZ
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
15FMZ
Conta su di un testo
/*
concetti_importanti(Testo,Concetti_Ordinati)
Testo = [w1,w2,...,wn]
Concetti_Ordinati = [(c1,freq1),..., (cn,freqn)]
*/
16FMZ
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
17FMZ
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).
18FMZ
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).
19FMZ
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).
20FMZ
Esempio
??????
21FMZ
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.
22FMZ
Limiti dell’algoritmo presentato
• Forme superficiali povereVengono proposti concetti non convincenti
• Nozione di importanza troppo poco informativaSalgono concetti generici