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
Scarica

8_FMZ_CostruzioneAutomaticaOntologie