Tassonomie: Stato dell'Arte
Indice
1 Introduzione
2
2 Costruzione delle Tassonomie
4
2.1
Approccio Manuale . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Approccio Automatico . . . . . . . . . . . . . . . . . . . . . . . .
5
3 Tecniche di Generazione di Tassonomie
6
3.1
Tecniche NLP e Database Semantico Lessicale . . . . . . . . . . .
3.2
Generazione di Tassonomie da Corpus di Testo
. . . . . . . . . .
7
3.3
Costruzione di Tassonomie Usando i Tag . . . . . . . . . . . . . .
7
Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.4
3.4.1
3.5
6
Tecniche di Clustering . . . . . . . . . . . . . . . . . . . .
9
Altri Metodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4 Algoritmi per la generazione di tassonomie
12
5 Denizioni Preliminari
12
5.1
Gra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
5.2
Somiglianza tra i Termini
12
5.3
Matrice di Distanza
. . . . . . . . . . . . . . . . . . . . . . . . .
14
5.4
Centralità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
5.5
Proprietà delle Gerarchie
15
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
6 Algoritmi
16
6.1
Algoritmo di Oliveira . . . . . . . . . . . . . . . . . . . . . . . . .
6.2
Approccio Gerarchico Partizionale
per la Costruzione di una Tassonomia
16
. . . . . . . . . . . . . . .
16
6.3
Bayesian Rose Tree . . . . . . . . . . . . . . . . . . . . . . . . . .
20
6.4
Multi-Branch Clustering . . . . . . . . . . . . . . . . . . . . . . .
21
6.5
Algoritmo di Punera . . . . . . . . . . . . . . . . . . . . . . . . .
23
6.6
Algoritmo di Dijskra-Jarnik-Prim . . . . . . . . . . . . . . . . . .
24
6.7
Algoritmo di Kruskal . . . . . . . . . . . . . . . . . . . . . . . . .
25
6.8
Algoritmo di Edmonds . . . . . . . . . . . . . . . . . . . . . . . .
25
6.9
Algoritmo di Heymann . . . . . . . . . . . . . . . . . . . . . . . .
26
6.10 Algoritmo di Shearer . . . . . . . . . . . . . . . . . . . . . . . . .
27
6.11 Algoritmo di Murthy . . . . . . . . . . . . . . . . . . . . . . . . .
28
6.12 Algoritmo di Clustering Spettrale . . . . . . . . . . . . . . . . . .
29
6.13 Algoritmo Genetico . . . . . . . . . . . . . . . . . . . . . . . . . .
31
1
1 Introduzione
La natura aperta e non regolamentata di Internet, unita alla crescita esponenziale del Web, ha creato una necessità sempre maggiore di servizi di categorizzazione dei contenuti. Un tipico esempio di questi servizi è il Filtro Famiglia,
che fornisce meccanismi di classicazione dei contenuti online tali da permettere
ai genitori di evitare che i propri gli possano accedere a contenuti inappropriati [1]. La necessità di un recupero più veloce delle informazioni e di una migliore
classicazione della conoscenza fa sì che l'utilizzo delle tassonomie sia ormai irrinunciabile. La tassonomia è uno schema di classicazione dei contenuti basato
sulla correlazione tra essi. Il termine tassonomia deriva da taxos, ordinare e
nomos, regola [2]. Esempi di tassonomie impiegate no ad oggi comprendono
la tassonomia di Bloom [3], delle piante, degli animali ecc. Oggi le tassonomie
vengono utilizzate anche in altri settori, come in psicologia ed information
technology, e stanno diventando indispensabili in un numero crescente di applicazioni, in particolare nei campi di studio di domini specici. Nella ricerca
sul web, per esempio, organizzare query speciche di dominio in una gerarchia
può aiutare a capire meglio le query e a migliorare i risultati della ricerca [4] o
a ranare le query [5]. Un altro campo di applicazione è quello delle pubblicità
online, dove le tassonomie vengono adottate su domini specici per valutare
la relazione tra una data query e le bidding keyword(le keyword o keyphrase
associate all'annuncio pubblicitario). Dal punto di vista di un generico utente,
navigare attraverso una tassonomia è più vantaggioso rispetto all'utilizzo della
ricerca per keyword [6, 7] in quanto la quest'ultima è ecace quando l'utilizzatore conosce il nome dell'informazione obbiettivo. Quando invece l'informazione
cercata è costituita da un grosso insieme di istanze è di solito più ecace navigare attraverso le tassonomie. L'utilizzo delle tassonomie presenta molti vantaggi,
tuttavia il loro aggiornamento e mantenimento è molto dicile in quanto l'inserimento di nuovi argomenti o categorie necessita un tempo maggiore. Secondo
l'indagine fatta da Gartner [8] la costruzione delle tassonomie è di vitale importanza e il 70% delle imprese che nel 2006 hanno investito in attività per la
gestione di informazioni destrutturate non hanno raggiunto il loro ritorno economico (ROI) a causa di investimenti insucienti nell'ambito della costruzione
di tassonomie.
Le tassonomie, inizialmente, venivano realizzate a mano, ma recentemente
alcuni rami delle attività di ricerca si sono focalizzati sulla loro generazione automatica. La motivazione è che la costruzione manuale di tassonomie è un processo
laborioso ed i risultati nali sono spesso altamente soggettivi se confrontati con
tassonomie costruite tramite approcci
data-driven.
Inoltre, i metodi automatici
possono permettere agli esseri umani ed alle macchine di comprendere sia i domini altamente mirati sia quelli molto dinamici. Diversi studi sono stati dedicati
alla generazione di tassonomie, in particolare per quanto riguarda la creazione
automatica di tassonomie ed ontologie per domini specici [9, 10, 11].
Molti
approcci allo stato dell'arte sono basati sull'adozione di corpus che dovrebbero
essere rappresentativi del dominio. Metodi di estrazione delle informazioni vengono utilizzati per dedurre delle relazioni dal corpus, che vanno poi combinate
per costruire la tassonomia. Anche se questi approcci hanno ottenuto numerosi
successi, presentano alcuni svantaggi. In particolare, è molto più facile trovare un corpus di testo per argomenti generali rispetto ad argomenti specici,
principalmente a causa delle minori dimensioni del corpus e della scarsità di
2
dati per questi ultimi (intuitivamente, più specico è il dominio, minore è la
dimensione del corpus disponibile per quel dominio).
Inoltre, in presenza di
domini altamente dinamici l'identicazione di un corpus di testo diventa ancora
più dicile.
Invece di costruire tassonomie da un corpus di testo, è possibile
adottare una tassonomia a carattere generale, come Open Directory Project
Wikipedia
2
1
o
. Tuttavia, una base di conoscenza a carattere generale ha di solito
bassa copertura su un dominio altamente specializzato, e può produrre interpretazioni ambigue per i termini più caratteristici del dominio.
Attualmente,
la sda principale in questo campo di ricerca è concentrata sull'induzione di
tassonomie da un insieme di keyword o keyphrase, piuttosto che da uno specico corpus del dominio. Un insieme di keyword, di solito, fornisce essibilità e
precisione nel caratterizzare un dominio, anche nel caso che cambi rapidamente.
Inoltre, in molti casi, tale insieme di keyword è facilmente reperibile. Per esempio, le società di motori di ricerca sono interessate nel creare tassonomie per
domini pubblicitari specici, in cui ciascun dominio è descritto da un insieme
di keyword di inserzioni (bid phrase). Il problema principale in questo tipo di
approcci è dato dalla carenza di relazioni esplicite tra le keyword.
Il metodo
più comune per superare questo problema è l'arricchimento delle keyword, eseguito aggregando i risultati di ricerca per ciascuna keyword e rappresentando
le keyphrase arricchite mediante bag of words [12, 13]. La recente evoluzione
del Web ha permesso lo sfruttamento delle sue risorse per estrarre informazione
utile per l'arricchimento di keyword e keyphrase (ad esempio mediante l'uso
dei tag di un social network)[14, 15]. Il problema principale dell'approccio per
arricchimento keyword (ancora aperto nel campo dell'induzione di tassonomie)
è il seguente: viene rappresentato il contesto delle keyphrase piuttosto che le
relazioni concettuali che esistono fra esse. Per esempio, i risultati di ricerca per
la chiave assicurazione auto contiene un numero molto limitato di articoli su
come assicurazione auto sia denita o caratterizzata. La maggior parte degli
articoli si limita ad introdurre un certo tipo di polizza auto o a parlarne di
sfuggita. Da questo genere di articoli possiamo estrarre parole come Florida,
Ford o incidente. Il contesto risultante può essere arbitrario e non connesso
ad assicurazione.
In [16] sono presentati uno studio preliminare ed un ap-
proccio per la costruzione di tassonomie da keyword. Tale proposta si basa sia
sull'adozione di una base di conoscenza generale da cui dedurre la conoscenza ed
il contesto tramite motori di ricerca, sia su un approccio Bayesiano per costruire
una tassonomia gerarchica.
1 http://www.dmoz.org/
2 http://www.wikipedia.org/
3
2 Costruzione delle Tassonomie
La costruzione di tassonomie comporta una limitazione della realtà da rappresentare (entità, campo di conoscenza, settore industriale, etc.) [2]. Ad esempio,
la tassonomia di un dominio Sport, può essere costruita specicando le categorie Calcio, Cricket, Hockey, etc. sotto Sport. Per l'estrazione di categorie
e termini che possono essere usati per ogni categoria, bisogna eseguire un'analisi
ed uno studio attenti e dettagliati che sono deniti dagli esperti del dominio [17].
Dopo un'attenta analisi, le categorie e il contenuto di ogni categoria sono rappresentati in una struttura organizzativa [18]. È possibile costruire tassonomie
utilizzando i modelli di tassonomia esistenti (tassonomie precostruite) ottenuti
da fornitori, che sono in grado di accelerare la costruzione di tassonomie ed aiutare l'impresa a fornire risultati rapidi. Le tassonomie esistenti possono essere
ottimizzate per speciche esigenze dell'organizzazione. Tuttavia le tassonomie
precostruite presentano alcuni svantaggi in quanto hanno minore applicabilità e necessitano di un certo tempo da dedicare alla formazione degli utenti.
Una tassonomia realizzata in-house è più precisa per un'organizzazione ed i
suoi propositi. La scelta della terminologia della tassonomia è controllata completamente dallo sviluppatore.
A volte non è possibile ricorrere a tassonomie
precostruite poiché potrebbero non essere disponibili tassonomie esistenti per un
particolare dominio. Gli unici svantaggi per la costruzione di una tassonomia
sono il maggior consumo di tempo ed il costo. Indipendentemente da quale sia
l'approccio utilizzato per costruire una tassonomia, generalmente è costituito
da quattro fasi [19]:
• Pianicazione e Analisi:
uno studio dettagliato deve essere fatto dagli
esperti di dominio per identicare le categorie, le risorse da assegnare e i
costi coinvolti nella costruzione.
• Progettazione, sviluppo e test:
la progettazione dettagliata della
struttura gerarchica è eettuata dal team di sviluppo software.
• Realizzazione:
nel capitolo 3 sono discussi diversi approcci di realizza-
zione delle tassonomie.
• Manutenzione:
la manutenzione manuale di una tassonomia è un la-
voro faticoso e richiede tempo. Tuttavia la manutenzione può essere più
semplice se si usano approcci costruttivi automatici.
Per la generazione delle tassonomie sono ampiamente utilizzate due tecniche:
l'Approccio top-down e bottom-up [20]
•
L'approccio top-down prevede la selezione di una categoria generale che
viene suddivisa in sottocategorie più speciche.
Solitamente le tassono-
mie sono sviluppate manualmente e ciò fornisce un controllo sui concetti
presenti nei livelli più alti della tassonomia.
•
L'approccio bottom-up prevede la selezione delle categorie speciche che
vengono accorpate per ottenere le categorie superiori. Per estrarre i concetti dal contenuto e generalizzare, in questo approccio, vengono utilizzate
tecniche automatiche.
4
2.1 Approccio Manuale
Il metodo più banale per costruire una tassonomia è il metodo manuale. Viene
creata manualmente da esperti aventi esperienza in un particolare settore. La
costruzione manuale permette un controllo maggiore sui sinonimi e sull'ordine
dei concetti.
La scelta della terminologia da utilizzare è lasciata agli esperti
di dominio. A causa del giudizio umano, la classicazione manuale dei documenti in concetti è meno accurata, provocando possibili fraintendimenti della
terminologia per un utente nale che vuole vedere una particolare risorsa di un
dominio. Anche la manutenzione di una tassonomia utilizzando tale approccio
è un compito che richiede tempo. Per tali motivi, oggi è molto raro costruire
tassonomie utilizzando l'approccio manuale [2].
Vantaggi:
decisione umana, alta precisione, mancanza di ambiguità.
Svantaggi:
processo laborioso, mancanza di scalabilità, risorse più costose
2.2 Approccio Automatico
Negli ultimi anni la ricerca si è distinta in diversi approcci di generazione
automatica di tassonomie proposti. Alcuni di questi includono:
•
Utilizzo di un database semantico lessicale (WordNet, Wikipedia ecc.) e
tecniche Natural Language Processing (NLP)(vedi par. 3.1).
•
Utilizzo di vasti corpus di testo (vedi par.3.2 ).
•
Utilizzo di una combinazione di tag (annotazioni/keyword) e di Wikipedia
per generare tassonomie (vedi par. 3.3).
•
Algoritmi di clustering (vedi par.3.4).
Gli approcci di cui sopra possono essere utilizzati in qualsiasi combinazione
per migliorare la costruzione delle tassonomie. Diversi strumenti di classicazione automatica sono disponibili per classicare il contenuto di una tassonomia
prevalente o per generare una struttura tassonomica.
Vari algoritmi (analisi
statistiche, probabilità bayesiana, clustering) [21] vengono applicati a strumenti
che creano la struttura tassonomica ad una serie di documenti utilizzando strategie bottom-up.
La costruzione automatica tuttavia fornisce meno controllo
sui sinonimi e sull'ordine di concetti.
Inoltre è necessario un anamento dei
concetti anché l'utente possa capire. Si può risparmiare tempo ma il giudizio
umano sarà necessario per controllare se il concetto dovrebbe far parte o meno
della tassonomia.
Vantaggi:
gestisce grandi volumi, facilmente misurabile, risorse più economi-
che
Svantaggi:
debolezza dell'algoritmo/regola, imprecisioni, non facile da adde-
strare.
5
Figura 1: Tassonomia dell'Informatica
3 Tecniche di Generazione di Tassonomie
3.1 Tecniche NLP e Database Semantico Lessicale
Con linguaggio naturale ci si riferisce alla lingua parlata dalle persone.
IL
processo di trattamento automatico del linguaggio naturale è chiamato Natural
Language Processing. Dalla Fig.1 si può osservare che NLP deriva da intelligenza articiale la quale è a sua volta una sotto-categoria di computer. Il
NLP è eettuato a vari livelli, cioè livello linguistico, livello sintattico, livello semantico, information retrieval ed extraction e traduzione automatica. Tuttavia
ci sono sia vantaggi che problemi a tutti i livelli. Viene utilizzato per varie applicazioni, ad esempio classicazione del testo in categorie, indicizzazione e ricerca
in grandi testi, traduzione automatica, comprensione del parlato, estrazione di
informazioni, acquisizione di conoscenze e generazione di testo.
Per quanto riguarda le applicazioni basate su NLP, vengono utilizzate banche
3
dati semantico-lessicali, come ad esempio WordNet . WordNet è comunemente
usato per la lingua inglese. Raggruppa le parole inglesi in insiemi di sinonimi
chiamati synset, fornisce brevi denizioni generali e registra varie relazioni semantiche tra questi insiemi di sinonimi. Usando WordNet è possibile generare
una struttura gerarchica denendo la relazione IS-A tra nomi e verbi [22]. Tuttavia WordNet è utilizzato anche in altre lingue e può anche essere costruito
per altre lingue utilizzando WordNet inglese come struttura scheletro [23]. Sono stati utilizzati diversi sistemi dove WordNet gioca un ruolo importante. Ad
esempio in [24] viene utilizzato un approccio semi supervisionato per costruire
una tassonomia da zero utilizzando coppie iponimo-iperonimo del Web. Esistono anche altre reti semantiche lessicali derivate da Wordnet e Wikipedia come ad
4
5
6
esempio Yago , Concept.net , BabelNet . L'approccio più comune per dedurre
le relazioni tassonomiche sfruttando il NLP e le reti semantiche è utilizzare una
strategia bottom-up [23].
3 http://wordnet.princeton.edu/wordnet/
4 http://www.mpi-inf.mpg.de/departments/databases-and-information-systems/research/yago-naga/yago/
5 http://conceptnet5.media.mit.edu/
6 http://babelnet.org/
6
3.2 Generazione di Tassonomie da Corpus di Testo
La generazione automatica di tassonomie da testo si basa spesso sull'utilizzo
di corpus, generalmente a grande dimensionalità, in modo da estrarre da essi
l'informazione per realizzare la struttura tassonomica. Un esempio è dato da
Oliveira et al. [25], i quali propongono l'utilizzo di un corpus per realizzare delle
mappe concettuali. Una mappa concettuale è uno strumento che rappresenta
informazione e conoscenza [26] mediante un grafo i cui nodi sono concetti elementari e gli archi sono relazioni tra essi. Un altro approccio che non utilizza dati
di addestramento è stato proposto in [18] per ricavare automaticamente un'organizzazione gerarchica di concetti da un insieme di documenti. L'approccio è
basato sui seguenti principi:
•
I termini della gerarchia vengono estratti da documenti.
•
L'organizzazione dei termini è tale che un termine genitore si riferisce ad
un concetto più generale di un termine glio.
•
Il termine glio rappresenta un sotto argomento correlato del genitore.
Un altro approccio è proposto in [27], in cui le relazioni semantiche sono
estratte da documenti testuali. Sulla base della co-occorrenza dei termini nel
testo vengono scoperte le relazioni. In questo approccio, i parametri sono scelti
tra documenti correlati per rappresentare le categorie e per selezionare il miglior
sottoinsieme di caratteristiche.
Un altro approccio è proposto in [28] in cui termini vengono sottoposti ad
una preelaborazione, ed in seguito sono estratti dal set di documenti ed utilizzati
per costruire una gerarchia concettuale.
L'approccio è diviso in tre moduli:
un modulo di estrazione del termine che etichetta i documenti, un modulo di
generazione del termine che seleziona i potenziali candidati ed un modulo di
ltraggio del termine che riduce il numero di termini in base ad uno schema
statistico di punteggio. Questo approccio è semi automatico.
3.3 Costruzione di Tassonomie Usando i Tag
Il Social Tagging è una tendenza attuale.
La gente contrassegna una risorsa
che può essere utilizzata per una miglior condivisione e ricerca [29]. Il tagging
aiuta a scoprire gli elementi che non sono stati trovati e aiuta a migliorare la
ricerca.
Sono disponibili diversi siti web in cui la gente può taggare i conte-
nuti o le risorse per una comunicazione più ecace.
Flickr
7
, Delicious
8
, Bibsonomy
usati per il tagging.
9
, Technorati
10
Alcuni di essi includono
che sono portali ampiamente
Fondamentalmente la codica può essere rappresentata
come documenti, utenti e tag [30]. Questo è noto come
Tagging Collaborativo.
Dal momento che i tag sono usati per descrivere le risorse e categorizzare le
risorse, essi svolgono un ruolo importante per la generazione della tassonomia.
Questa sezione descrive gli approcci utilizzati per creare tassonomie a partire
7 Flickr è il servizio on-line di condivisione foto di Yahoo!. La gente tagga le foto per
condividere il contenuto. (www.flickr.com)
8 Delicious è un servizio molto popolare di social bookmarking di Yahoo!. Le persone
possono etichettare i segnalibri per condividere i contenuti. (www.delicious.com)
9 Bibsonomy è un servizio di gestione delle pubblicazioni online. (www.bibsonomy.org)
10 Technorati è un aggregatore di notizie online di vari settori (www.technorati.com)
7
dai tag generati dagli utenti. Inoltre fornisce una panoramica sui problemi che
possono vericarsi dai tag generati dagli utenti. Alcuni approcci utilizzati per
costruire tassonomie si trovano in [30, 31, 32, 33, 34].
Il social tagging può,
ad esempio, essere utilizzato per classicare pagine web, descrivendo categorie
e pagine web in base ai tag [31]. Con questo approccio si assegnano le risorse
alle categorie in base alla similarità tra le risorse. Wetzker et al. descrivono un
classicatore gerarchico che può essere utilizzato per classicare i documenti in
categorie in base ai tag che vengono utilizzati per descrivere i documenti [32].
Questo approccio richiede che il documento sia preelaborato prima di inoltrare
il documento nel classicatore gerarchico. Noll e Meinel [30] descrivono la classicazione dei documenti categorizzati utilizzando Open Directory Project (o
DMOZ). Picca et al. costruiscono una tassonomia usando il Super Sense Tagging(SST) per estrarre i termini più alti della gerarchia e poi usando le categorie
di Wikipedia e Wordnet per costruire il resto della gerarchia [33]. Un nuovo approccio per la generazione di tassonomie utilizzando i tag è proposto in [34]. In
questo approccio i tag sono raccolti dal database di Delicious e viene eseguita
l'analisi euristica delle regole. I documenti validi vengono estratti utilizzando
i tag con l'aiuto di Wikipedia.
Ogni documento viene analizzato e vengono
eseguite un'acquisizione di concept-retionship ed un processo di inferenza per
generare una tassonomia. Un altro approccio proposto è quello in cui i tag sono
estratti da archivi e vengono impiegate tecniche di clustering [35]. La similarità
tra i tag può essere calcolata utilizzando la metrica di distanza che dipende da
co-occorrenza e similarità semantica per i tag. Attualmente la ricerca è in corso
per migliorare, con l'aiuto dei tag, sia la costruzione di tassonomie, sia la navigazione attraverso le tassonomie. Il tagging ore un approccio più facile per
la classicazione dei contenuti e la generazione di tassonomie.
Tuttavia i tag
possono essere oggetto di un uso non ottimale essendo dati generati dagli utenti e, di conseguenza, il vocabolario di termini tag potrebbe non essere preciso.
Anche lo spam è un problema serio in quanto gli spammer tendono a creare tag
errati per promuovere i loro interessi personali [29].
3.4 Clustering
La generazione di tassonomie con i metodi descritti nei capitoli 3.1 e 3.2 prevede
alcune gravi limitazioni, come la totale dipendenza da reti semantico-lessicali
e la necessità di ampio studio delle forme verbali. Inoltre trovare i rapporti o
le mappe concettuali dal testo richiede la risoluzione di tanti casi particolari.
Tuttavia le tecniche che utilizzano algoritmi di clustering hanno prodotto alcuni
buoni risultati [36]. Il clustering può essere denito come il processo di organizzazione di oggetti in gruppi i cui membri sono strettamente legati. In letteratura
sono stati eseguiti diversi studi e sono stati proposti numerosi approcci. Ci sono
principalmente due tipi di algoritmi: gerarchico e partizionale; il primo produce
una serie annidata di partizioni, mentre il secondo produce una sola partizione
[37]. L'algoritmo gerarchico può essere ulteriormente distinto in due tipi: agglomerativo e divisivo. Il primo parte con ciascun pattern suddiviso in cluster
distinti (singleton) e successivamente li unisce insieme nché non si soddisfa un
criterio di arresto; mentre il secondo parte da un singolo cluster ed eettua la
suddivisione nché non è soddisfatta la condizione di arresto. Gli algoritmi gerarchici sono più versatili di quelli partizionali. È possibile sviluppare algoritmi
ibridi che sfruttino i punti di forza di entrambi.
8
3.4.1 Tecniche di Clustering
Algoritmi di Clustering Gerarchico
Il vantaggio del clustering gerarchico è che produce un dendrogramma che rappresenta, tramite uno schema ad albero, i gradi di anità tra i vari cluster ed
i livelli di similarità con cui sono raggruppati.
Un dendrogramma è facile da
interpretare e può essere spezzato a diversi livelli per fornire diversi insiemi di
cluster dei dati. Gli algoritmi di clustering gerarchico più diusi sono varianti
degli algoritmi di single-link [38], complete-link [39] e di minima varianza [40].
Fondamentalmente, dieriscono nel modo in cui caratterizzano la similarità tra
una coppia di cluster.
Il più comune algoritmo gerarchico è quello di Cluste-
ring Agglomerativo Gerarchico (HAC - Hierarchical Agglomerative Clustering).
Un algoritmo HAC agisce su un insieme di oggetti mediante il calcolo di una
matrice di distanza inter-oggetto e costruisce una gerarchia ad albero binario
in cui ciascun nodo è un cluster ed i cluster corrispondenti ai gli diretti del
nodo formano una partizione completa del cluster [41]. Secondo la letteratura,
l'approccio HAC è più comune per problemi che hanno a che fare con dati testuali, come il clustering di documenti o i risultati di ricerca sul Web [42]. La
gerarchia è costruita eseguendo le seguenti procedure: prima di tutto gli oggetti
vengono sistemati in una lista di cluster singleton
C1 ,C2 ,. . . ,Cn ;
quindi la cop-
pia di cluster più vicina {Ci ,Cj } viene scelta per essere unita; inne
vengono rimossi dalla lista e sostituiti da un nuovo cluster {Ci
gli elementi sono distinti.
∪ Cj }
Ci
e
Cj
dove tutti
Questo processo viene ripetuto nché non rimane
un solo cluster. Ciascun termine viene convertito in una rappresentazione bag
of words e proiettato nello spazio vettoriale corrispondente. Il peso di ciascun
termine, generalmente, viene determinato secondo la funzione tf-idf [43].
La
similitudine tra una coppia di termini è calcolata come coseno dell'angolo tra i
vettori corrispondenti.Il nucleo di un algoritmo di HAC consiste nello scegliere
una funzione di distanza specica per i cluster. Le tre funzioni per determinare
la distanza inter-cluster più conosciute sono:
•
Single-linkage (SL)
•
Average-linkage (AL)
•
Complete-linkage (CL)
Nel metodo SL la distanza tra due cluster è denita come la minor distanza
tra due oggetti in entrambi i cluster, mentre nel metodo Complete-linkage viene
denita come la distanza maggiore. Di solito, i cluster prodotti dai metodi SL
sono isolati ma non coerenti e potrebbero presentare alcuni cluster allungati
indesiderati.
D'altra parte, i metodi CL producono cluster coerenti ma che
potrebbero non essere aatto isolati. Il metodo AL rappresenta un compromesso
tra i due estremi, in cui la distanza è calcolata come la media distanza tra
oggetti dal primo cluster agli oggetti del secondo cluster. Il calcolo della media è
eseguito su tutte le coppie di oggetti, ciascuna contenente un oggetto per cluster.
Generalmente la rappresentazione dei dati in spazi vettoriali rende il problema di
clustering un problema di alta dimensionalità dello spazio delle feature. Inoltre,
attualmente l'adozione di risorse Web nelle operazioni di estrazione di feature
sta aumentando, con la conseguente presenza di rumore nella raccolta di feature.
Per questo motivo si preferiscono metodi in grado di produrre cluster coerenti
come il CL e l'AL.
9
Algoritmi Partizionali
Gli algoritmi partizionali producono una ripartizione in cluster indipendenti dei
dati in un unico livello invece che una struttura gerarchica. Sono avvantaggiati in
applicazioni che coinvolgono grandi insiemi di dati per i quali la costruzione di un
dendrogramma sarebbe computazionalmente proibitiva. Le tecniche partizionali
generalmente producono cluster ottimizzando una funzione criterio denita sia
localmente (su un sottoinsieme dei pattern) che globalmente (denita su tutti i
pattern).
K-means
[44] è l'algoritmo partizionale più semplice ed il più diuso.
Partendo con una partizione iniziale random, continua a riassegnare i pattern ai
cluster basandosi sulla similarità tra il pattern ed i centri del cluster nché non
viene soddisfatto un criterio di convergenza (ad es: non viene riassegnato nessun
pattern da un cluster ad un altro o l'errore quadratico smette di decrescere in
maniera signicativa dopo un certo numero di iterazioni).
Clustering Spettrale
Il clustering spettrale, facile da implementare, in quanto può essere eseguito
ecientemente da software standard di algebra lineare, molto spesso sorpassa
gli algoritmi di clustering tradizionali come ad esempio il k-means. Gli algoritmi di clustering spettrale sono stati impiegati con successo in diversi campi. In
particolare sono stati utilizzati per sviluppare metodi di clustering gerarchico
[45, 46]. Intuitivamente, tali algoritmi possono essere sfruttati per lo sviluppo
di un algoritmo di generazione automatica di tassonomie. In [47] viene impiegato un metodo di clustering gerarchico per sviluppare una tecnica per costruire
automaticamente tassonomie di query. L'approccio si basa sul comportamento
di esplorazione dell'utente. Il clustering spettrale si basa sulla teoria dei gra
ed in particolare sul taglio, e si riferisce ad una classe di tecniche basate su
un'auto-struttura di una matrice di similarità, utilizzata per partizionare i punti in cluster disgiunti.
La matrice è costruita prendendo in considerazione le
similarità tra coppie di datapoint. L'algoritmo di clustering spettrale cerca di
tagliare un grafo pesato non orientato in
k
cluster, in modo che gli archi tra cia-
scuna partizione abbiano un peso più alto o un grado di similitudine maggiore,
mentre gli archi in partizioni dierenti abbiano un peso minore o dissimilarità
tra casi. Lo spazio dei dati è rappresentato sotto forma di grafo di similarità
G = (V, E),
in cui ciascun nodo è un datapoint (es: una frase chiave), e ciascun
arco rappresenta la similarità tra due nodi. L'assunto base è che due nodi sono
connessi se la similarità fra essi è positiva o maggiore di una certa soglia, e
l'arco è pesato in funzione del punteggio di similarità. Da questo punto di vista
l'algoritmo di clustering spettrale è mirato a trovare una partizione del grafo
in modo che gli archi tra gruppi dierenti abbiano pesi molto piccoli (il che
signica che cluster dierenti sono dissimili fra loro) e gli archi all'interno di un
gruppo abbiano pesi alti (che signica che all'interno dello stesso cluster sono
simili fra loro). Ci sono alcuni metodi di costruzione di gra abbastanza diusi,
che dieriscono in base alla scelta degli archi.
I più comuni per il clustering
spettrale sono:
• Grafo -vicinanza :
Due nodi vengono connessi se la distanza tra loro è
più piccola di un certo valore
• Grafo k-primi vicini :
.
Generalmente è un grafo non pesato.
Ciascun nodo è connesso al k-esimo vicino più
prossimo e pesato col valore di ciascuna similarità tra il nodo ed il vicino.
10
• Grafo a connessione completa :
Contiene tutte le connessioni tra i nodi che
presentano un valore di similarità positivo, ed e pesato su questo criterio.
Partendo dalla matrice delle adiacenze pesata
in cui ciascun elemento
wij
W
(ad es: matrice di similarità
è la similarità tra i nodi
i
e
j ),
il passo successivo
dell'algoritmo è quello di calcolare la matrice Laplaciana del grafo (L) [48] da
W
e calcolarne gli autovettori. Gli algoritmi di clustering spettrale si dierenziano
fra loro principalmente in base al Laplaciano considerato. Ad esempio:
•
clustering spettrale non normalizzato [49]
•
clustering spettrale normalizzato di Shi e Malik [50]
•
clustering spettrale normalizzato di Ng, Jordan e Weiss [51]
3.5 Altri Metodi
Alcuni degli approcci descritti in [52, 53, 54, 55, 56, 57] sono usati per generare
automaticamente tassonomie.
Questi approcci sono integrati con tecniche di
clustering. In [52] l'esistente misura di distanza che viene utilizzata per calcolare la similarità viene modicata per migliorare la costruzione della tassonomia.
In [53], la tassonomia può essere costruita in base alla frequenza di occorrenza
dei termini che possono essere utili per la generazione di una gerarchia naturale.
In [54], una misura di similarità composta tra due termini viene utilizzata in
base ad un modello di rete neurale. In [55] partendo da un set iniziale di relazioni di sussunzione e da un set più grande di
possibili
relazioni sussuntive, si
genera la tassonomia estendendo il set di partenza e riducendo il set di possibili
relazioni nché i due set coincidono. In [56] la tassonomia viene generata automaticamente utilizzando l'algoritmo di Heymann che determina la generalità
dei termini e li inserisce nella tassonomia. In [57]viene combinato un approccio
top-down ad uno partizionale per costruire una gerarchia ad albero n-ario senza
limiti di branching factor. La combinazione di manuale e automatico conduce
alla tecnica chiamata ibrida in cui un dibattito è in corso.
Si tratta di avere
vantaggi come grande volume e precisione, set di regole guidate dall'uomo ed
apprendimento incrementale.
11
4 Algoritmi per la generazione di tassonomie
Numerosi studi riguardanti tecniche di generazione di tassonomie, utilizzate per
diversi scopi, sono stati eettuati in passato. Ad esempio il lavoro di Blanche e
Valencia [58] propone un metodo per la classicazione automatica di funzioni di
prodotti genetici utilizzando informazioni bibliometriche, Krishnapuram et al.
[59] descrive i problemi e le possibilità riguardanti la generazione automatica
di tassonomie, Sánchez e Moreno [60] presentano una metodologia per estrarre
informazioni da internet e costruire una tassonomia di termini e risorse web per
un dato dominio, il lavoro di Schwarzkopf et al. [61] in cui, con l'utilizzo di dati
ottenuti da applicazioni di tagging (ad es.
Delicious
11
) come base, vengono
estratte delle tassonomie di tag da un tag space, il lavoro di Chuang et al.
[62] in cui si discute sull'organizzare i termini di query in strutture gerarchiche
tramite il query clustering gerarchico. Prima che il processo di generazione vero
e proprio possa partire occorre che all'algoritmo venga fornito un input in una
forma specica, come ad esempio le informazioni bibliometriche contenute in un
database di pubblicazione.
5 Denizioni Preliminari
5.1 Gra
Per poter elaborare i dati vengono utilizzati i concetti della teoria dei gra. Un
grafo è una struttura matematica usata per modellare le relazioni tra coppie di
oggetti di un dato set. Contiene una serie di nodi ed una serie di archi che
connettono coppie di nodi. Un grafo può essere non orientato, che signica che
non c'è distinzione tra due nodi associati da un arco, o orientato, in questo caso
ciascun arco specica un percorso da un nodo all'altro. Per quanto riguarda la
costruzione di tassonomie, molti algoritmi utilizzano un grafo chiamato grafo
di similitudine, che ha come nodi i singoli termini e e gli archi che li collegano
rappresentano quanto forti sono le relazioni tra i nodi.
Spanning Tree
G = (nodi, archi) connesso e non orientato, si denisce spanning
T ⊆ G tale che T è un albero che contiene tutti i nodi di G.
il peso di un arco, il minimo spanning tree di G è lo spanning tree
Dato un grafo
tree un sottografo
Se
w(arco)
è
di costo (la somma dei costi degli archi) minimo.
5.2 Somiglianza tra i Termini
Quanticare la similarità (o la dissimilarità)tra i termini è un passo importante
nella costruzione automatica delle tassonomie perché necessario per determinare
la distanza tra i termini di un data set.
Di seguito vengono descritti alcuni
metodi per stabilire la similarità tra due termini.
11 https://delicious.com/
12
Cosine similarity
Cosine similarity è la misura della similitudine tra due vettori basata sul coseno
dell'angolo tra essi.
Questo metodo è utilizzato spesso nel text mining per
confrontare i documenti e nel data mining per confrontare le connessioni tra
cluster. Per quanto riguarda la generazione di tassonomie può essere descritto
come:
cossim = √
nx
dove
nx,y
e
ny
nx,y
√
nx ny
rappresentano rispettivamente le occorrenze di
x
e di
y,
mentre
rappresenta le occorrenze contemporanee di entrambi. Il valore di cosine
0
e
1,
mente indipendenti, mentre
1
signica una corrispondenza esatta tra i termini.
similarity è compreso tra
0
dove
signica che i termini sono completa-
Questo criterio di somiglianza è simmetrico (la somiglianza tra
alla somiglianza tra
b
ed
a),
a
e
b
è uguale
per questo motivo non dà nessuna informazione su
quale dei due termini sarà glio dell'altro nella tassonomia nale.
Symmetric Normalized Google Distance Similarity
La Symmetric Normalized Google Distance Similarity (sNGD) è stata sviluppata
da Cilibrasi e Vitanyi [63]. Il metodo usa la frequenza di co-occorrenza tra i termini per indicare quanto siano correlati fra loro. La forma chiusa dell'espressione
di sNGD è la seguente:
sN GD(x, y) =
dove
nx
ed
ny
max{log nx , log ny } − log nx,y
log N − min{log nx , log ny }
rappresentano il numero di risultati ottenuti tramite la ricerca in
un database online (es: Google) per ciascun termine individuale,
il numero totale di possibili risultati, ed
nx,y
N
rappresenta
indica il numero di risultati ottenuti
cercando i due termini insieme.
Asymmetric Normalized Google Distance Similarity
L' Asymmetric Normalized Google Distance Similarity (aNGD) è stata sviluppata da Woon et al. [64] a partire dalla versione simmetrica. Lo scopo è quello
di creare una metrica di similarità tra coppie di termini che ne indichi chiaramente la relazione genitore-glio. Quindi occorre una metrica asimmetrica, che
si può ottenere facilmente da sNGD eliminando gli operatori
max
e
min
dalla
forma chiusa. In questo modo si ottiene:
aN GD(x, y) =
Dove
aN GD(x, y) è
y.
glio del termine
log nx − log nx,y
log N − log nx,y
la distanza associata alla probabilità che il termine
Varia da
0
a
1
x
sia
e più basso è il suo valore maggiore è la
possibilità che la connessione sia corretta. Ad esempio:
aN GD(animale , cane ) > aN GD(cane , animale )
indica che è più probabile che cane sia glio di animale.
Una dierenza
chiave tra aNGD/sNGD ed il coseno di similitudine è che per i primi un collegamento è ottimale quando minimizza il suo valore, mentre nel secondo quando
lo massimizza.
13
5.3 Matrice di Distanza
Una volta ottenute la misure di similitudine tra tutti i nodi di un grafo, esso può
essere rappresentato tramite una matrice detta di distanza. Il generico termine
nella riga
i e colonna j
della matrice ([i, j]) rappresenta il valore della metrica di
similitudine associata al termine
i
in quanto glio del termine
j.
Se si utilizza
una metrica simmetrica allora anche la matrice sarà simmetrica, mentre non
lo sarà se è generata tramite una metrica asimmetrica. Visualizzare la matrice
come un grafo rende possibile elaborare le informazioni contenute in essa tramite
gli algoritmi per la teoria dei gra per generare una tassonomia.
La matrice
di distanza è sempre una matrice quadrata di dimensione ssa che dipende dal
numero di termini nella tassonomia. Nello specico, ciascuna matrice di distanza
è una matrice
nxn
dove
n
rappresenta il numero di termini nella tassonomia.
Ai termini nella diagonale viene assegnato un valore indenito dato che essi
rappresenterebbero il peso dell'arco tra un termine e se stesso che non dovrebbe
esistere nel grafo.
5.4 Centralità
Per inizializzare gli algoritmi che costruiscono una tassonomia a partire da un
grafo è richiesta la scelta di un termine radice.
Questa scelta può essere ef-
fettuata manualmente oppure ricorrendo alla misura di centralità. , le liste di
termini non sono mai abbastanza corte da permettere una scelta manuale del
termine radice; per questo motivo la scelta del termine radice viene eettuata
scegliendo il termine più centrale del grafo. Di seguito sono riportati diversi
metodi.
Degree Centrality
Degree centrality (Cb (u)) è la misura di centralità più semplice, denita come
il numero di nodi che sono direttamente connessi al nodo
u
Betweenness Centrality
La betweenness centrality (Cbw (v)) è il numero di percorsi geodetici (cammini
minimi) che passano per un nodo. I nodi su cui passa un maggior numero di
cammini minimi ha un maggior valore betweenness centrality. La sua formula
è:
X
Cbw (v) =
v6=s6=t∈V
da
dove
V
s
e
per il
t
sono i nodi del grafo,
σs,t(v)
nodo v
a
σs,t (v)
σs,t
σs,t
è il numero di cammini minimi che vanno
è il numero di cammini minimi che vanno da
s
a
t
passando
Closeness Centrality
La centralità closeness di un nodo
v
misura quanto facilmente gli altri nodi del
grafo possono essere raggiunti da esso. La formula è:
Ccl (v) = P
1
t∈V
dv,t
t6=v
14
dove
dv,t
è la lunghezza del cammino minimo tra i nodi
v
e
t
del grafo.
5.5 Proprietà delle Gerarchie
Le denizioni che seguono riguardano alcune proprietà delle gerarchie necessarie
per alcuni algoritmi trattati in seguito.
Gerarchia Ammissibile
L = {L1 , L2 , · · · , Lm } che denota le categoria nelle foglie di una tassonoH , e C = {C1 , C2 , · · · , Cn } che denota le categoria dei dati D; H è una
gerarchia ammissibile per D se m = n ed esiste una mappatura uno a uno tra
LeC
Dato
mia
Gerarchia Ottimale
Hopt = arg max p(D | H)
H
dove
H
è una gerarchia ammissibile per i dati
D
Dierenza Gerarchica
La dierenza gerarchica tra due gerarchie ammissibili
H
ed
minimo di operazioni elementari necessarie per trasformare
minimo numero di operazioni è
k
H 0 è il numero
H in H 0 . Se il
la dierenza gerarchica è data da:
kH 0 − Hk = k
dove le tre operazioni elementari ammissibili sono:
• promozione:
spostare un nodo al livello superiore
• retrocessione:
• unione:
spostare un nodo sotto un nodo fratello
fondere insieme due nodi fratelli per formare un nodo superiore
Gerarchia Ottimale Vincolata
Data una gerarchia
H0 , se esiste una sequenza di gerarchie Q = {H1 , H2 , · · · , Hn }
tale che:
p(D | Hi ) ≥ p(D | Hi−1 )
kHi − Hi−1 k = 1
(1 ≤ i ≤ n)
e
∀H 0 | kH 0 − Hn k = 1
abbiamo
allora
Hn
p(D | H 0 ) ≤ p(D | Hn )
è una gerarchia ottimale vincolata per
H0
e
D
In realtà, la gerarchia ottimale vincolata (COH - Constrained Optimal Hierarchy) è la gerarchia raggiungibile da quella originale seguendo una lista di
gerarchie con verosimiglianza crescente tra quelle consecutive. Quando raggiungiamo un COH, non possiamo trovare una gerarchia vicina con verosimiglianza
15
più alta.
In natura, ogni COH è un ottimo locale.
Se deniamo il problema
come un problema di ricerca, allora una data gerarchia è un punto di partenza
ragionevole nel tentativo di raggiungere la gerarchia ottimale seguendo un percorso breve. Quindi, si può formulare come segue:
una tassonomia H0
Partendo dai dati D e da
6 Algoritmi
Nella tabella 1 sono rappresentate le caratteristiche dei vari algoritmi che verranno riportati nel seguito.
Rappresentazione
dei dati
Vettori
di feature
Bag
of
words
(DOS only)
Tag
(social network)
Strumenti
di supporto
Tecniche
di costruzione
NLP
Tipologia output
Evolutionary
computation
Minimum
Spanning Tree
Clustering
Reti semantiche
Mappe
concettuali
Clustering
Latent
semantic indexing
Albero binario
Albero n-ario
Tabella 1: classicazione algoritmi di generazione tassonomie
6.1 Algoritmo di Oliveira
Questo algoritmo proposto da Oliveira et al. [25] crea una mappa concettuale
costituita tramite un tool NLP, estraendo predicati binari da un testo.
Una
volta preso il testo come base per l'information extraction, esso viene taggato
tramite Wordnet e poi vengono costruiti predicati che mappano le relazioni tra
coppie do concetti provenienti dal parsing delle frasi.
I predicati binari così
ottenuti vengono poi convertiti in un albero di relazioni is-a da un algoritmo
basato sulla logica descrittiva. In particolare, utilizza la ricerca tramite migliore
ipotesi corrente per apprendere le categorie degli argomenti di ciascuna relazione
ed un algoritmo basato sulla programmazione logico induttiva per apprendere
i contesti ricorrenti in ciascuna relazione. Questa seconda operazione necessita
dell'intervento di un utilizzatore.
6.2 Approccio Gerarchico Partizionale
per la Costruzione di una Tassonomia
Il query clustering gerarchico è stato proposto e migliorato con successo in
[12, 65, 66].
È nalizzato al raggruppamento automatico di termini simili in
cluster disgiunti ed alla loro organizzazione in una struttura gerarchica con coesione e robustezza tra cluster. Il query clustering gerarchico, denito in origine
per problemi di clustering di termini di ricerca, è stato adottato in numerosi
task di generazione di tassonomie. L'approccio è composto da due fasi di elaborazione: la generazione di una gerarchia ad albero binario ed il partizionamento
gerarchico del cluster. La prima è nalizzata alla costruzione di una gerarchia
ad albero binario iniziale, ed è eseguita tramite un algoritmo di clustering agglomerativo gerarchico (HAC) [41].
La seconda partiziona la gerarchia in un
16
più naturale albero a più vie a seconda della qualità di ciascuna sotto-gerarchia.
L'obbiettivo è quello di ottenere un'organizzazione gerarchica naturale e globale, in cui ci siano 10-15 categorie principali e ciascuna sotto-categoria contenga
a sua volta un opportuno numero di sotto categorie. Questa rappresentazione
ad albero a più vie è intuitivamente più facile, naturale ed adatta per navigare, interpretare e fare analisi più approfondite da parte degli utenti. Partendo
dall'albero binario ottenuto con l'HAC, si usa un approccio top-down per scomporre la gerarchia prima in un certo numero di sotto gerarchie per poi applicare
ricorsivamente la stessa procedura a ciascuna sotto gerarchia. Per creare una
particolare sotto gerarchia principale, viene scelto un livello adatto della gerarchia su cui eettuare il taglio, dove a ciascun livello dell'albero binario generato
dall'HAC corrisponde ciascuna iterazione dell'algoritmo di HAC (ciascuna iterazione eettua la generazione di un nuovo cluster). Il set di cluster di un livello
di taglio
l−1
l
è denito come il set dei rimanenti cluster non uniti fra loro dopo
iterazioni dell'algoritmo HAC. L'obbiettivo, in questa fase, è determinare
la qualità del set di cluster per ciascun livello di taglio. La qualità è calcolata al
ne di identicare a quale livello di taglio appropriato i corrispondenti cluster
non uniti siano più qualicati. Questo task si basa sul calcolo di una funzione
qualità
QC(C)
per ciascun set
(C)
di cluster, deniti dalla combinazione di tre
contributi principali:
i. la coerenza dei cluster
ii. l'isolamento dei cluster
iii. una funzione che misura se il numero di cluster è appropriato (i cluster
non dovrebbero essere né troppi né troppo pochi)
Il valore di
QC
maggior qualità
è calcolato per ciascun livello di taglio ed è scelto quello con la
QC(cluster(l)).
L'algoritmo è applicato ricorsivamente a cia-
scuna sotto gerarchia. L'approccio di query clustering è composto da due fasi
di elaborazione: la generazione di una gerarchia ad albero binario ed il partizionamento gerarchico del cluster [62]. La prima è nalizzata alla costruzione
di una gerarchia ad albero binario iniziale, ed è eseguita tramite un algoritmo
di clustering agglomerativo gerarchico (HAC) [41].
La seconda partiziona la
gerarchia in un più naturale albero a più vie a seconda della qualità di ciascuna
sotto-gerarchia. L'algoritmo HAC gestisce un set di oggetti tramite una matrice di distanza inter-oggetto e costruisce una gerarchia ad albero binario in cui
ciascun nodo è un cluster, ed i cluster corrispondenti ai gli diretti del nodo formano una partizione completa del cluster padre [41]. Per prima cosa gli oggetti
vengono sistemati una lista di cluster singleton
cluster più vicina
{Ci , Cj }
la fusione ed inne i due cluster di partenza
sostituiti col nuovo cluster
C1 , C2 , · · · , Cn ,
poi la coppia di
presenti nella lista viene selezionata per eettuarne
{Ci ∪ Cj }.
Ci
e
Cj
vengono rimossi dalla lista e
Questo processo viene ripetuto nché non
rimane un solo cluster. Per raggruppare le istanze, occorre misurare le distanze
tra esse. In questo approccio viene utilizzato il modello a spazio vettoriale. Ciascun termine candidato (query) viene convertito in una bag of words attraverso
il contenuto recuperato tramite l'ausilio di motori di ricerca. I pesi dei termini
vengono determinati secondo la funzione di peso
denito come:
vi,j = 0.5 + 0.5
tfi,j
n
log
maxtk ∈T tfi,k
nj
17
tf-idf
[43], in cui il peso
vi,j
è
dove
tfi,j
è il numero di occorrenze del termine
of words del vettore
vi , n
tj
nella corrispondente bag
è il numero totale di termini query,
di termini query che contiene
tj
nj
è il numero
nella corrispondente bag of words e
T
è il
vocabolario di feature term. La somiglianza tra una coppia di termini query è
calcolata come il coseno dell'angolo tra i vettori corrispondenti, ad esempio:
P
sim(va , vb ) = qP
tj ∈T
tj ∈T
2
va,j
va,j vb,j
qP
tj ∈T
2
vb,j
mentre la distanza tra due candidati è denita come:
dist(va − vb ) = 1 − sim(va − vb )
La distanza tra cluster essere determinata secondo tre metodi noti: il single
linkage , il complete linkage e l'average linkage.
Metodo
Single-Linkage (SL)
Average-Linkage (AL)
Distanza
min
dist(va , vb )
va ∈Ci ,vb ∈Cj
P
P
1
dist(va , vb )
|Ci ||Cj |
va ∈Ci vb ∈Cj
max
Complete-Linkage (CL)
va ∈Ci ,vb ∈Cj
dist(va , vb )
Nel metodo Single-Linkage la distanza tra due cluster è denita come la minor distanza tra due oggetti in entrambi i cluster, mentre nel metodo Completelinkage viene denita come la distanza maggiore.
Il metodo Average-linkage
considera la distanza tra due cluster come la media delle distanze tra gli oggetti del primo cluster e quelli del secondo.
Generalmente i cluster prodotti dal
metodo single-linkage sono isolati ma non coerenti, e alcuni cluster possono risultare allungati. Dall'altra parte, i cluster prodotti dal complete linkage sono
coerenti ma potrebbero non essere aatto isolati. Il metodo average-linkage è
un compromesso tra i due. Nel caso in cui nel dataset sia presente rumore (ad
esempio nel caso di contenuti estratti dal Web) è preferibile avere cluster coerenti in quanto il rumore rende meno adabili le misure. Di seguito è riportata
la procedura dell'algoritmo HAC.
HAC(v1 , v2 , · · · , vn ) con vi , 1 ≤ i ≤ n vettori degli oggetti
•
per ogni
vi
si eseguono i seguenti passi:
Ci ← {vi }
f (i) ← true con f (i) true se il cluster i può essere unito ad un altro
Si calcola la matrice di distanza
•
si ripetono
n
volte i seguenti passi:
si sceglie la coppia di cluster più vicina {Ca , Cb } per cui f (a)∧ f (b) ≡ true
Cn+i ← Ca ∪ Cb , lef t(Cn+i ) ← Ca , right(Cn+i ) ← Cb
f (n + i) ← true, f (a) ← f alse, f (b) ← f alse
Si aggiorna la matrice di distanza col nuovo cluster Cn+i
18
•
C1 , C2 , · · · , C2n−1
Viene restituito
Le funzioni
lef t
e
right
insieme alle funzioni
lef t
e
right
rappresentano rispettivamente il glio sinistro e
destro di un certo cluster.
Una volta eseguito l'HAC secondo la procedura descritta sopra, si ottiene
una gerarchia ad albero binario. L'obbiettivo dell'algoritmo è quello di ottenerne
una più facile da leggere, che abbia un numero adeguato di categorie ciascuna
con un numero appropriato di sotto-categorie.
Per ottenere questo risultato,
la gerarchia viene scomposta prima in una serie di sotto-gerarchie principali e
ad esse si applica ricorsivamente la stessa procedura. A tale scopo è necessario
determinare il livello di taglio idoneo per la gerarchia. Per questo motivo viene
calcolata per il set di cluster
C
una funzione di qualità
QC(C)
denita come:
QC(C) = F (C)S(C)M (C)
Dove
F (C)
S(C) misura
M (C) determina se il numero di cluster sia adatto (né
è una funzione che misura la coerenza dei cluster,
l'isolamento dei cluster e
troppi né troppo pochi). Esse sono denite nel seguente modo:
F (C) =
1 X
ni f (Ci )
n
Ci ∈C
f (Ci ) =

2

 ni (ni −1)
ni
sim(va , vb ),
se
ni > 1
se
ni ≤ 1
va ,vb ∈Ci
va 6=v


Dove
P
b
1,
è il numero di oggetti contenuto nel cluster
Ci
ed
n
è il numero
totale di oggetti nel set di cluster. Per quanto riguarda l'isolamento di un set
di cluster
C = {C1 , · · · , Ck }
S(C)
con
si ha:
XX
2
min dist(Ci , Cj )
k(k − 1) i j
1≤i≤k
e
1 ≤ j ≤ k.
Inne per quanto riguarda il numero appropriato di
cluster, viene utilizzata una funzione ellitica:
r
M (C) =
Dove
1−
|C| − en
n2
n è il numero totale di oggetti contenuti nel cluster C
atteso di cluster.
ed
en è il numero
Il taglio migliore è quello corrispondente al valore massimo
della funzione di qualità. Per evitare che venga avviata la procedura di partizione ad un cluster con un numero troppo basso di oggetti, si adotta una costante
che indica la dimensione di un cluster al di sotto del quale non può più essere
partizionato. L'algoritmo nale è il seguente:
Clustering Gerarchico(v1 , v2 , · · · , vn )
con
v1 , v2 , · · · , vn :
vettori degli oggeti
• C1 , C2 , · · · , C2n−1 ← HAC(v1 , v2 , · · · , vn )
19
• return Partizione Gerarchia(C1 , C2 , · · · , Cn , Cn+1 , · · · , C2n−1 )
Partizione Gerarchia(C1 , C2 , · · · , Cn , Cn+1 , · · · , C2n−1 )
Ci , 1 ≤ i ≤ 2n:
•
if
gerarchia ad albero binario
n ≤ :
return C1 , C2 , · · · , Cn
• maxqc ← qc, bestcut ← 0
• for
l
ciascun livello di taglio in
con
1 ≤ l ≤ n:
qc ← QC(clusters(l))
if maxqc < qc:
∗ maxqc ← qc, bestcut ← l
• for
tutti i cluster
Ci
appartenenti al livello
bestcut:
f iglio(Ci ) ← P artizioneGerarchica(f iglio(Ci ))
return clusters(bestcut)
6.3 Bayesian Rose Tree
La costruzione dell'albero avviene tramite un approccio agglomerativo chiamato Bayesian Rose Tree (BRT) [67].
Questo approccio è greedy e procede nel
seguente modo: inizialmente ogni data point
Ti a
e Tj
{xi }
viene considerato un albero
sé stante e successivamente vengono scelti ad ogni passaggio due alberi
che vengono uniti un un nuovo albero
Tm .
Ti
Anché l'albero risultante sia
a più vie è necessario considerare tre possibili operazioni di unione:
• join: Tm = {Ti , Tj },
cioè
Tm
è un albero con gli
• absorb: Tm = {f igli(Ti ) ∪ Tj }, cioè è un albero
gli di Ti . Questa operazione non è simmetrica.
• collapse: Tm = {f igli(Ti ) ∪ f igli(Tj )},
gli i gli di Ti e Tj
cioè
Tm
Ti
e
Tj
i cui gli sono
Tj
ed i
è un albero che ha per
Per determinare quali alberi sono candidati all'unione, si determina il rapporto
di verosimiglianza:
L(Tm ) =
p(Dm | Tm )
p(Di | Ti )p(Dj | Tj )
Dm rispetto all'albero Tm , Dm
Dm = Di ∪ Dj . La probabilità p(Dm | Tm ) è
denita ricorsivamente sui gli di Tm :
Y
p(Dm | Tm ) = πTm f (Dm ) + (1 − πTm )
p(Di | Ti )
(2)
Dove
p(Dm | Tm )
(1)
è la verosimiglianza dei dati
sono i dati delle foglie di
Tm ,
cioè
Ti ∈f iglio(Tm )
20
dove
f (Dm | Tm )
è la probabilità marginale dei dati
a priori che tutti i dati in
Tm
Dm
e
πTm
è la probabilità
vengano racchiusi in un unico cluster invece che
partizionato in sotto-alberi. È denita come:
πTm = 1 − (1 − γ)nTm −1
dove
n Tm
è il numero di gli di
modello. Un valore di
γ
(3)
Tm e 0 ≤ γ ≤ 1 è l'iperparametro per controllare il
maggiore porta ad un partizionamento più grossolano,
mentre un valore più piccolo porta ad un partizionamento più ranato.
Di
seguito è riportato l'algoritmo.
Input:
set di documenti
• Ti ← xi
for
D
i = 1, 2, · · · , n
• c←n
• while c > 1
scegliere Ti e Tj e unirli nel Tm che massimizza L(Tm )
sostituire Ti e Tj con Tm nell'albero
c←c−1
6.4 Multi-Branch Clustering
Questo algoritmo, proposto da Liu et al.
[68], costruisce una tassonomia da
keyword tramite la costruzione di un albero a più vie. La costruzione dell'albero è basato sul Bayesian Rose Tree (BRT) (par. 6.3). Per poter creare una
gerarchia è necessario prima modellizzare i dati, che corrisponde a calcolare
p(D) (distribuzione marginale dei dati D) con l'equazione 2.
Mentre l'approccio
BRT originale assume che i dati possono essere rappresentati tramite un set di
feature binarie che seguono la distribuzione di Bernoulli, in questo approccio
le features consistono in concetti e contesti che rappresentano i dati per cui
è necessario un sistema di ranking che ne determini la rilevanza.
Per questo
motivo verranno incorporati i pesi nella distribuzione marginale. Dato un set
di keyword
{keyword1 , keyword2 , · · · , keywordn }, è possibile determinare una
(termine, peso) per ciascuna keyword, dove termine può essere
serie di coppie
un concetto prodotto dalla base di conoscenza o una context word generata da
una ricerca, mentre
peso
è calcolato nel seguente modo:
pesoj = λ · f req(terminej ) + (1 − λ) ·
n
X
Ci · P (termine | keywordi )
i
dove
λ
è un parametro che tiene conto di quanto il contesto è importante
rispetto ai concetti,
f req(terminej )
tà del termine
frequenza della
vettori feature
j nel contesto
P (terminej | keywordi ) è la probabiliuna keyword phrase keywordi , Ci è la
è la frequenza di un termine
derivante dai risultati di una ricerca,
j come concetto data
keywordi nella base di
xi
conoscenza. Viene impostato un set di
con i pesi dei j-esimi termini per
keywordi .
Una volta che
due keyword o cluster di keyword vengono uniti, il cluster raggruppato può contenere argomenti multipli. Per poterli distinguere in base ai pesi dei concetti
21
viene utilizzata una distribuzione secondo il modello multinomiale composto di
Dirichlet (distribuzione DCM), che è ottenuta sulla base delle omonime distribuzioni multinomiale e di Dirichlet. Prima viene campionata una distribuzione
multinomiale dalla distribuzione di Dirichlet, e quindi viene campionato un documento in base alla distribuzione multinomiale.
distribuzione multinomiale
p(x | θ)
La verosomiglianza di una
è denita come:
V
Y
m!
p(x | θ) = QV
p(x(j) | θ)
(j) !
x
j
j=1
dove V
v (j) , m =
(j)
è la dimensione del vocabolario, x
è la
P
V (i)
(1) (2)
(V ) T
x
,
e
θ
=
(θ
,
θ
,
·
·
·
,
θ
)
∈
RV
j
frequenza del termine
sono i parametri della
distribuzione multinomiale. La distribuzione a priori di Dirichlet è:
PV
V
Γ( j=1 α(j) ) Y
(j)
p(θ | α) = QV
[θ(j) ]α −1
(j)
) j=1
j=1 Γ(α
α = (α(1) , α(2) , · · · , α(V ) ) ∈ RV e la funzione Γ12 ha la proprietà Γ(x + 1) =
xΓ(x). La distribuzione marginale f (D) è data da:
dove
fDCM (D) =
Z Y
n
θ
Tramite
fDCM (D)
p(xi | θ)p(θ | α)dθ
i
è possibile integrare i pesi col vettore dei termini feature
senza soluzione di continuità. L'algoritmo è riportato di seguito.
• Input:
Un set di documenti
• Inizializzazione 1: Ti ← xi
• Inizializzazione 2:
D
per
i = 1, 2, · · · , n;
trova i primi vicini
numero di cluster
Nk (Ti )
c←n
per ciascun cluster, e
calcola i punteggi di verosomiglianza
• while c > 1
trovare
Ti
e
Tj
{N (Ti )}, la cui
m ∈ {join, absorb, collapse}
in tutti i set di vicinanza
massimizza l'equazione 1, dove
unione
Tm ← il risultato dell'unione di Ti e Tj
cancella Ti e Tj
trova il set di primi vicini N (Tm ) per il nuovo cluster
c←c−1
12 per
Γ(x) =
interi la funzione Gamma vale:
Rgli
∞ x−1 −t
e dt
0 t
22
Γ(x) = (x − 1)!.
Per i numeri reali è
6.5 Algoritmo di Punera
Si tratta di un algoritmo automatico per generare tassonomie ad albero n-ario
con radice [69] tramite un algoritmo top-down. Sia
C.
Ciascuna classe
cj
xi
X
un set di data-point tale
da un set di k classi
Xcj usando il quale è
possibile stimare la sua distribuzione di probabilità a priori πc j e le funzioni di
densità di probabilità condizionata dalla classe pc = pX (x | cj ). La tassonomia
T che conterrà le classi C è rappresentato come un albero n-ario con radice e
k foglie. Il set di foglie e la radice sono rappresentate rispettivamente come
f oglia(T ) e radice(T ). Se w è un nodo interno a T e Tw è il sotto-albero che
ha radice in w , ciascun nodo w è associato ad un set di classi Cw = f oglia(Tw ).
I dati ottenuti raccogliendo tutti i dati appartenenti a tutte le classi in Cw
vengono indicati con XCw . Tramite XCw si può associare a ciascun set di classi
Cw ed a ciascun nodo w una distribuzione a priori π(Cw ) ed una funzione di
densità di probabilità pCw . Si parte con T che ha un singolo nodo, poi radice(T )
viene associato ad un set di classi C e ad una variabile tosplit di radice(T ) viene
impostato il valore true. Durante l'esecuzione dell'algoritmo ci sarà un set di
foglie dell'albero T la cui variabile tosplit varrà true. Tra queste foglie se ne
sceglie una su cui avverrà la divisione. Occorre quindi trovare m sottoinsiemi
{Cvi }m
i=1 su cui avverrà il partizionamento, per cui sarà necessario determinare
sia m che i sottoinsiemi. Una volta ottenuti i Cvi , vengono creati m nuovi nodi vi
che vengono assegnati come gli diretti a w . Ciascun Cvi viene quindi associato
alla corrispondente foglia vi . Si assegna true a ciascuna variabile tosplit per
cui la Cvi associata a ciascun vi abbia più di una classe, mentre al tosplit di w
viene assegnato f alse. In pratica, i nodi interni vengono divisi nché le foglie
non hanno solo una classe ciascuna. Per poter partizionare il set di classi Cw in
che ciascun data-point
abbia un'etichetta di classe
li
ha un set di data-point associato
un numero appropriato di sottoinsiemi è necessario calcolare la distanza tra set
di classi. In questo algoritmo si adotta la divergenza di Jensen-Shannon (JS)
[70]. La distanza tra due insiemi di classi
densità di probabilità
pc1
e
pc2
C1
e
C2
è denita in termini della loro
e delle loro distribuzione di probabilità a priori
πi = π(Ci )
JSπ ({C1 , C2 }) = π1 KL(pC1 , π1 pC1 + π2 pC2 ) + π2 KL(pC2 , π1 pC1 + π2 pC2 )
dove
π1 + π2 = 1, πi ≥ 0
e
KL
è la divergenza di Kullback-Leibler.
La
divergenza JS misura quanto sono lontane le classi dalla loro media pesata.
JS si può generalizzare per più classi nel seguente modo:
JS(Ci : 1 ≤ i ≤ k) =
n
X
πi KL(pi , pm )
P
(4)
P
i πi = 1, πi ≥ 0 e pm =
i πi pi è la distribuzione di probabilità
media pesata. Tramite questa denizione di distanza il criterio per partizionare
dove
Cw
in
m
sottoinsiemi è quello che minimizza:
JSπ (Cvi (l), Cvi \ Cvi (l))
m
X
π(Cvi )JSπ0 (cj : cj ∈ Cvi )
i=1
23
(5)
dove
π(Cvi ) =
P
Cvi
πcj
e
πc0 j = πcj /π(Cvi )
col vincolo che
∀i, j 6= i.
JSπ00 ({Cvi , Cvj }) > min{JSπ00 ({Cvi , Cw }), JSπ00 ({Cvj , Cw }}
i vincoli dell'equazione 6 assicurano che nessuno dei
vicini fra loro che al loro genitore
Cw .
(6)
m sottoinsiemi siano più
Gli algoritmi per costruire la tassonomia
e per trovare i sottoinsiemi sono riportati di seguito.
Algoritmo: constructTaxonomy
Input: C set di classi, pcj funzione densità
•
Inizializzare
T
come nodo singolo.
• while (w.tosplit == true)
radice(T ).classi ← C , radice(T ).tosplit ← true
per un qualsiasi nodo
w
C − vi m
i=1 ← f indpartition(w.classi)
crea m nuovi nodi vi , vi .tosplit ← f alse
per ciascun vi
∗ vi ← f iglio(w)
∗ vi .classi ← Cvi
∗ se (|Cvi | > 1) : vi .tosplit ← true
Algoritmo: ndPartition
Input: Cw set di n classi da partizionare
1. ciascuna classe in
Cw
è un cluster
{Cvi }ni=1
2. calcola la divergenza JS tra tutte le coppie
3. trova tutte le coppie
4. sceglie da
P
Pk = (Cvi , Cvj )
la coppia
Cvi
e tra ciascuna
Cvi
e
Cw
che violano i vincoli dell'equazione 6
(Cvi , Cvj ) con il minor valore di (π(Cvi )+π(Cvi ))JSπ ({Cvi , Cvj })
5. while (esiste una coppia
(a) sostituisce
C vi
e
(Cvi , Cvj )):
Cvj
con
Cvk = Cvi ∪ Cvi
(b) ricalcola la divergenza JS delle coppie come nel passo 2
(c) prende la coppia
Cvi
e
Cvj
come nei passi 3 e 4
6.6 Algoritmo di Dijskra-Jarnik-Prim
L'algoritmo di Dijskra-Jarnik-Prim (DJP) trova uno spanning tree ottimale per
un grafo non orientato, pesato e connesso [71, 72, 73]. Dal momento che DJP
necessita di un grafo non orientato, adotta come metrica di distanza il cosine
similarity o la Symmetric Normalized Google Distance Similarity.
DJP è un
esempio di algoritmo greedy, ovvero che risolve un problema eettuando una
serie di decisioni localmente ottime, con lo scopo di convergere verso l'ottimo
globale (o un'approssimazione vicina) in un lasso di tempo ragionevole. Per la
generazione di tassonomie viene utilizzata una versione adattata dell'algoritmo
[74]:
Algoritmo:ndOptSpammingTree
24
•
Si determina il termine radice della tassonomia
•
Si imposta il nodo col termine radice come punto di partenza della tassonomia
•
Si inseriscono iterativamente i termini non ancora presenti nella tassonomia controllando il grafo originale e cercando quale termine ha la relazione
più vicina con uno dei nodi/termini già presenti nella tassonomia. Si ripete
nché tutti i termini non sono nella tassonomia nale.
6.7 Algoritmo di Kruskal
L'algoritmo di Kruskal è un altro algoritmo che trova lo spanning tree ottimale
per un grafo pesato non orientato connesso [75]. L'algoritmo generale funziona
nel seguente modo: prima di tutto, viene istanziato un grafo senza archi che
contiene tutti i vertici del grafo originale; successivamente vengono aggiunti
sequenzialmente gli archi con i valori più alti di somiglianza dal grafo originale
nché non diventa uno spanning tree.
Similmente all'algoritmo DJP, anche
questo è un algoritmo greedy. In [74] viene utilizzata una versione modicata
dell'algoritmo:
Algoritmo:
•
KuskalSpanningTree
Si crea un set di base di nodi individuali non connessi chiamato
S,
in
cui ciascun nodo rappresenta un termine nella matrice di distanza non
orientata generata tramite la cosine similarity o la Symmetric Normalized
Google Distance Similarity.
•
Finchè
S non è connesso 13 :
Si prende l'arco
e con il miglior valore di peso nella matrice di distanza
Si aggiunge l'arco
e
ad
S
se
e
non crea cicli in
S,
altrimenti lo si
scarta
•
Si trasforma
S
in uno spanning tree orientato istanziando un nodo radi-
ce e creando la direzionalità rimanendo coerenti con le connessioni in
S.
Quest'ultimo passo è stato aggiunto per adattare l'algoritmo di Kruskal
in modo da poter generare una tassonomia.
L'algoritmo di Kruskal è deterministico, ovvero produce un solo risultato per
una data matrice di distanza.
6.8 Algoritmo di Edmonds
L'algoritmo di Edmond è basato sull'individuazione del minimo spanning tree [76].
Diversamente dai precedenti due algoritmi, Edmonds usa un grafo pesato e
orientato come input; per cui è necessario utilizzare l'Aymmetric Normalized
Google Distance Similarity (aNGD) come metrica.
L'algoritmo funziona nel
seguente modo:
Algoritmo:
13 Un
EdmondsSpanningTree
Grafo è connesso se, per ogni coppia di vertici (u, v), esiste un cammino che lega u a v
25
•
Si crea un grafo iniziale, chiamato
S,
in cui ogni nodo rappresenta un
termine nella matrice di distanza e ciascun nodo ha un solo arco entrante,
che è l'arco entrante con il minimo (e quindi migliore) valore di somiglianza
aNGD.
•
Si sceglie un nodo radice e si rimuove il suo nodo entrante
•
per ciascun ciclo in
S,
si rimuove un arco esistente e si aggiunge un arco
esterno (eliminando così i cicli in cui nodi ed archi coinvolti sono indicati
rispettivamente con
loopN odes
e
loopEdges)
costo addizionale per ciascun nodo
dove il costo addizionale è dato da:
mo
w∈V
costo_addizionale = min
calcolando il valore di mini-
correntemente presente nel ciclo,
arco[w → v] − arco[u → v]
!(w∈loopN odes)
[u,v]∈loopEdges
arco[u → v] rappresenta il valore di similarità aNGD per la connes(u → v). Dato che ciascun nodo ha solo un arco entrante, (u → v)
l'unico arco entrante nel nodo v all'interno del ciclo.
dove
sione
è
•
S, si rimuove l'arco (u → v) e si aggiunge l'arco
(w → v), dove v è il nodo in S che produce il minimo costo addizionale, e
(w → v) è l'arco entrante al nodo v esterno al ciclo che produce il minor
costo addizionale per il nodo v .
per ciascun ciclo in
Una tassonomia non può avere cicli. L'algoritmo di Edmonds, fondamentalmente, analizza la tassonomia e spezza ciascun ciclo nché non si ottiene una
tassonomia valida.
6.9 Algoritmo di Heymann
Il lavoro di Heymann [77], concentrato sulla generazione di tassonomie era destinato, in origine, ai social network, in cui gli utenti annotavano i documenti o
le immagini tramite keyword, un processo noto come tagging. Questi sistemi
di tagging collaborativo sono diventati popolari in questi ultimi anni in siti co14
me CiteULike
, Del.Icio.Us
15
e Flickr
16
. Tuttavia i tag mostrati in questi siti
sono destrutturati, per cui l'unico modo per aggregare i dati dei tag è quello di
mostrare quali tag si trovano più spesso in un certo punto nel tempo. Heymann
ha proposto un algoritmo semplice ed eciente per convertire un grande set di
tag in un'ontologia gerarchica navigabile. Ciascun termine (o tag) è associato
ad un vettore che contiene la frequenza di annotazione per tutti i documenti, che
possono essere confrontati coi vettori di tutti gli altri termini tramite una serie
di misura di similarità producendo così un ontologia in cui i tag molto simili
tra loro sono connessi. L'algoritmo necessita una lista di tag in ordine decrescente rispetto alla loro genericità. Quindi segue l'ordine partendo dal tag più
generale ed inserendo iterativamente ciascun tag in una tassonomia crescente
attaccandoli al tag più simile o alla radice della tassonomia.Una soglia imposta
per il valore della misura di similitudine, sopra la quale un collegamento può
14 http://www.citeulike.org/
15 https://delicious.com/
16 https://www.ickr.com/
26
essere glio di un tag dierente da quello radice.
Henschel [78] ha adattato
l'algoritmo di Heymann alla generazione di tassonomie generiche trasformando
ciascun termine della tassonomia in un tag, facendo alcune importanti modiche: prima di tutto, la misura di genericità dei termini viene derivata dalla
misura della centralità dei termini (betweenness o closeness). In secondo luogo,
il riposizionamento intermedio dei termini rimasti rispetto alla loro centralità in
seguito all'inserzione di un termine nella tassonomia viene incluso come opzione
nell'algoritmo. Inne, viene introdotto il concetto di entropia, un concetto di
teoria dell'informazione che può essere usato per giusticare quantitativamente
la decisione di creare un arco tra due nodi. L'entropia misura la similitudine
del nodo candidato ad essere inserito in altri nodi già presenti in tassonomia.
Più l'entropia di ciascun nodo è vicina allo zero, più preciso è il collegamento col loro genitore.
Tenendo conto di tali modiche la versione di Henschel
dell'algoritmo di Heymann risulta:
Algoritmo:
•
tagTaxonomy
Si crea un set di tag tale che ciascun tag rappresenti un termine candidato
all'inserimento nella tassonomia
•
Si ordinano i tag rispetto alla centralità. Questo si può fare modellizzando
il problema come un grafo in cui i vertici sono i tag e gli archi sono pesati
tramite la relazione di similarità tra i tag (cosine, aNGD o sNGD), e quindi
applicando ciascuna misura di centralità ai termini in ordine di centralità
nel grafo.
•
Si prende il termine più centrale e lo si inserisce nella tassonomia
•
Si ordinano iterativamente i tag non ancora presenti nella tassonomia in
funzione della centralità; si decide se inserire il tag più centrale fra essi
nella tassonomia o scartarlo del tutto. Si ripete la stessa procedura nché
tutti i tag non sono considerati.
L'algoritmo di Heymann si distingue dagli altri algoritmi di generazione di
tassonomie considerati perché è l'unico che scarta i termini che ritiene irrilevanti.
Ciò viene fatto tramite un valore di soglia sotto il quale un collegamento non può
far parte della tassonomia. Durante ciascuna iterazione dell'algoritmo il valore
di similitudine tra il termine più centrale fra quelli rimasti e il termine più vicino
all'interno della tassonomia deve essere maggiore di tale soglia, altrimenti viene
scartato.
6.10 Algoritmo di Shearer
Questo algoritmo costruisce una tassonomia partendo da un set
di sussunzione conosciute e un set più grande
P
K
di relazioni
di possibili relazioni di sus-
sunzione, determina il preordine di sussunzione estendendo il set conosciuto e
riducendo il set delle relazioni possibili nché i due set non coincidono [79]. L'algoritmo ha il vantaggio di sfruttare le informazioni parziali dei concetti, oltre
che quelle complete. Sia le relazioni conosciute che quelle possibili possono essere ottenute dai dati generati nel corso di una sussunzione hyper tableau-based
[80, 81] e di un test di soddisfacibilità. Finché i due set non coincidono l'algoritmo determina relazioni di sussunzione aggiuntive in maniera incrementale e
27
sfrutta le informazioni aggiuntive per ranare i set.
Dato un set di elementi
U = {a, b, c, . . . }, sia R una relazione binaria su U . Esiste un percorso tra a e b in R se esistono degli elementi c0 , . . . , cn ∈ U tali che c0 = a, cn = b
+
e hci , ci+1 i ∈ R per 0 ≤ i ≤ n. La chiusura relativa di R è la relazione R
+
tale che ha, bi ∈ R
se esiste un percorso da a a b in R. La chiusura riessi∗
va transitiva R di R è la chiusura transitiva dell'estensione riessiva di R, ad
+
esempio R ∪ {ha, ai | a ∈ U }. Una relazione binaria è un preordine se è sia
(universo)
riessiva che transitiva. La relazione di sussunzione di un set di concetti è un
preordine.
Tuttavia non è un insieme parzialmente ordinato in quanto non è
C w D e D w C non implica che C = D. La restrizione
R ad un sottoinsieme D di U è la relazione R[D] = R ∩ (D × D)
Il problema quindi è determinare una restrizione R[D] dato un universo U , un
preordine R su U ed un set nito di elementi D ⊆ U . Se U è un set di concetti arbitrari in una logica descrittiva L, R è la relazione di sussunzione con
U e D è il set di nomi dei concetti che occorrono in una base di conoscenza
L-KB K, quindi determinare R[D] è equivalente a classicare K. Si assume
che si inizi con informazioni parziali su R: un set K = {ha0 , b0 i, . . . ham , bm i}
dove hai , bi i ∈ R per 0 ≤ i ≤ m ed un set Kneg = {hc0 , d0 i, . . . hcn , dn i} dove
hai , bi i ∈
/ R per 0 ≤ i ≤ n. La porzione conosciuta di R è rappresentata da K ,
mentre la porzione possibile di R con il complemento di Kneg : U × U \ Kneg
?
che verrà indicato con P . Viene impiegato un insieme di test ha, bi ∈ R per
ranare ulteriormente il contorno di R aggiungendo ha, bi in K o rimuovendolo
da P nché alla ne K[D] = R[D] = P [D]. È tuttavia possibile ridurre il numero di questi test massimizzando l'informazione acquisita da K e P . Per fare
ciò si può sfruttare la conoscenza del fatto che R è un preordine, ovvero K ⊆ R
∗
∗
implica che K ⊆ R. Quindi si può usare K per ottenere un minorante stretto
su R. È anche possibile ottenere un maggiorante stretti su R identicando le
coppie in P che non sono consistenti con K e la transitività di R. Inne date
le relazioni K e P tali che K ⊆ R ⊆ P per un generico preordine R, una tupla
ha, bi è un elemento di R se ha, bi ∈ R∗ e non è un elemento di R se ha, bi ∈
/ [P ]k .
antisimmetrico ovvero
di una relazione
La procedura è descritta di seguito.
Algoritmo:Computa-ordinamento(K, P, D)
• while K ∗ 6= [P ]k [D]
sceglie a, b ∈ D tale che ha, bi ∈ [P ]k r K ∗
if ha, bi ∈? D aggiunge ha, bi a K
else elimina ha, bi da P
return K[D]
6.11 Algoritmo di Murthy
Questo algoritmo acquisisce in maniera automatica una tassonomia indotta dalla
frequenza dei termini (Term-frequency-induced Taxonomy o TFIT) [53]. L'al-
C di record r. Ciascun record è rappresentato da
T = {t | t ∈ r ∧ r ∈ C} è l'insieme di tutti i termini
C . La frequenza del termine t è indicata con f (t) ed è il numero di record
C che contengono t. La frequenza di un termine t dati un insieme di termini
goritmo parte da un corpus
un set di termini
di
in
t,
mentre
28
T+
che devono occorrere con
occorrere con
t,
t
ed un insieme di termini
viene indicata con
F (t, T + , T − ).
T−
che non devono
Una tassonomia indotta dalla
frequenza dei termini (TFIT) è un albero ordinato sui termini di
n
nell'albero, con
n.t
termine nel nodo
n, A(n)
gli antenati di
T . Per un nodo
n e P (n) i suoi
discendenti. Ciascun termine del nodo ha la maggior frequenza condizionale nel
contesto dei nodi antenati e successori. solo i nodi con un valore di frequenza
condizionale maggiore di zero possono essere aggiunti all'albero.
L'algoritmo
costruisce la tassonomia prendendo ricorsivamente il termine più frequente dati
tutti i termini scelti in precedenza. Quando l'algoritmo viene chiamato la prima
volta
T+
e
T−
sono vuoti e i parametri di livello
l
w valgono 0. A
genT F IT viene creato
ed ampiezza
ciascuna chiamata dell'algoritmo di creazione di TFIT
n nella tassonomia con t che rappresenta il termine più frequente
T − e w ed l che rappresentano la sua posizione nella tassonomia. Il
parametro soglia serve controllare la precisione dell'albero risultante in quanto
un nuovo nodo
dati
T+
e
l'algoritmo, invece di inserire solo i termini con frequenza condizionale maggiore
di zero, inserirà solo i termini con frequenza condizionale maggiore di
soglia.
Di seguito è riportato l'algoritmo.
Algoritmo: genT F IT (T + , T − , C, l, w)
inizializzazione: T + , T − sono vuoti l, w ← 0
•
sceglie il termine più frequente
tra tutti i
tnext = tj
con
F (tnext , T + , T − )
massimo
tj ∈ C
• fn ext = F (tnext , T + , T − )
• if fnext ≥ soglia:
output:
nodo(tj , l, w)
genera nodo glio:
genT F IT (T + ∪ {tnext , T − , C, l + 1, w})
genera nodo fratello:
genT F IT (T + , T − ∪ {tnext }, C, l, w + 1)
6.12 Algoritmo di Clustering Spettrale
Si tratta di un algoritmo di clustering che partendo da una matrice di similarità
crea un grafo di similarità pesato non orientato con uno dei metodi possibili
(/vicinanza, k-primi vicini o completo; vedi 3.4.1), da cui si può calcolare la
matrice Laplaciana.
Tale matrice può venire o meno normalizzata, a secon-
da dell'algoritmo spettrale impiegato.
In particolare, considerando il grafo di
V = {v1 , v2 , . . . , vn } nodi del grafo
A archi che connettono i nodi in modo che l'arco che connette i due vertici vi e vj abbia peso wi,j ≥ 0; la matrice di adiacenza pesata del grafo è
W = (wij )i,j=1,··· ,n , anché il grafo sia non orientato occorre che wij = wji e
wij = 0 signica che i nodi i e j non sono connessi. Il grado di un nodo i è
similarità come un grafo
G = (V, A)
con
ed
calcolato come:
di =
n
X
wi,j
(7)
j=1
e la matrice dei gradi
D
è una matrice diagonale che contiene i gradi di tutti i
nodi. La matrice Laplaciana non normalizzata è denita come
29
L = D − W.
In
letteratura ci sono due matrici chiamate Laplaciane normalizzate:
Lsym = D−1/2 LD−1/2
Lrw = D−1 L
Di seguito sono riportati i tre algoritmi di clustering spettrale: non normalizzato,
normalizzato secondo Shi e Malick [50] e normalizzato secondo Ng, Jordan e
Weiss [51]
Clustering Spettrale non normalizzato
Input: Matrice di similarità S ∈ Rn×n , numero k
di cluster da costruire
•
Costruire il grafo di similarità con matrice di adiacenza pesata
•
Calcolare il Laplaciano non normalizzato
W.
L
• Determinare i primi k autovettori v1 , v2 , . . . , vn di L
•
Sia
V ∈ Rn×k
la matrice contenente gli autovettori
v1 , v2 , . . . , vn
come
colonne.
yi ∈ Rk
•
Per
•
Clusterizzare i punti
i = 1, . . . , n
sia
il vettore corrispondente all'i-esima riga di
(yi )i=1,...,n
in
Rk
V
con l'algoritmo k-means in cluster
C1 , · · · , Cn
Clustering Spettrale normalizzato secondo Shi e Malik
Input: Matrice di similarità S ∈ Rn×n , numero k di cluster da costruire
•
Costruire il grafo di similarità con matrice di adiacenza pesata
•
Calcolare il Laplaciano non normalizzato
W.
L
• Determinare i primi k autovettori v1 , v2 , . . . , vn del l'autoproblema
generalizzato Lv = λDv
•
Sia
V ∈ Rn×k
la matrice contenente gli autovettori
v1 , v2 , . . . , vn
come
colonne.
yi ∈ Rk
•
Per
•
Clusterizzare i punti
i = 1, . . . , n
sia
il vettore corrispondente all'i-esima riga di
(yi )i=1,...,n
in
Rk
con l'algoritmo k-means in cluster
C1 , · · · , Cn
Clustering Spettrale normalizzato secondo Ng, Jordan e Weiss
Input: Matrice di similarità S ∈ Rn×n , numero k di cluster da costruire
•
Costruire il grafo di similarità con matrice di adiacenza pesata
•
Calcolare il Laplaciano normalizzato
Lsym
• Determinare i primi k autovettori v1 , v2 , . . . , vn di Lsym
30
V
W.
•
Sia
V ∈ Rn×k
la matrice contenente gli autovettori
v1 , v2 , . . . , vn
come
colonne.
• Formare la matrice U ∈ Rn×k da V normalizzando le somma
delle
P
righe in modo che abbiano norma 1, ovvero: uij = vij /( k vij2 )1/2
yi ∈ Rk
•
Per
•
Clusterizzare i punti
i = 1, . . . , n
sia
il vettore corrispondente all'i-esima riga di
(yi )i=1,...,n
in
Rk
V
con l'algoritmo k-means in cluster
C1 , · · · , Cn
6.13 Algoritmo Genetico
L'algoritmo genetico è una tecnica di ricerca utilizzata in informatica per trovare
soluzioni a problemi di ottimizzazione/ricerca attraverso iterazioni, mutazioni ed
incroci ripetuti [82]. È implementato tipicamente mediante una simulazione in
cui un gruppo di rappresentazioni astratte vengono ottimizzate ripetutamente,
generando una rappresentazione migliore dei set ad ogni iterazione successiva.
L'algoritmo genetico non è deterministico e non è basato sulla teoria dei gra,
ma è comunque applicabile per la costruzione di tassonomie. Tuttavia, a causa
della sua natura non deterministica, è impossibile testarne la validità come
algoritmo di generazione di tassonomie dato che tutti i suoi output sono generati
casualmente ed è molto probabile che dierenti esecuzioni, anche utilizzando gli
stessi dati di input, conducano a risultati completamente diversi. in [74] viene
utilizzata una versione dell'algoritmo genetico che procede nel seguente modo:
Algoritmo:
•
Algoritmo Genetico
Si sceglie un set iniziale di tassonomie generate casualmente, ciascuna con
lo stesso termine radice
•
Si eseguono numerose iterazioni. In ciascuna di esse:
Si selezionano casualmente un certo numero di tassonomie nel set,
quindi si modicano (`mutate') e si ricombinano (`crossover') per
creare il potenziale nuovo set di tassonomie per l'iterazione
Si valuta il punteggio di ciascuna potenziale tassonomia nel set sulla base dei pesi degli archi contenuti nella tassonomia (che possono
essere presi dalla matrice di distanza).
Si scelgono le tassonomie col punteggio più alto nel set e si scarta il
resto.
Si duplicano le tassonomie col punteggio più alto in modo che il
numero totale di tassonomie nel set sia uguale a quello iniziale.
I processi di modica (`mutation') e ricombinazione (`crossover') nell'implementazione dell'algoritmo genetico conda in trasformazioni casuali di tassonomie.
Una
mutazione
della tassonomia consiste nello spostare un sotto-albero
a caso della tassonomia in un nuovo punto casuale della stessa. Un
crossover
di tassonomie trapianta un sotto-albero di una tassonomia a caso in un punto
casuale di un'altra tassonomia. Facendo questa operazione, si creano dei duplicati dei nodi nella tassonomia trapiantata. Per correggere questo problema, si
31
eettua una fase di riparazione in cui i nodi originali vengono rimossi e i nodi
discendenti vengono promossi a nodi progenitori dei nodi invalidati.
32
Riferimenti bibliograci
[1] L. Tang, J. Zhang, and H. Liu, Acclimatizing taxonomic semantics for hie-
Proceedings of the 12th ACM SIGKDD
International Conference on Knowledge Discovery and Data Mining, KDD
rarchical content classication, in
'06, (New York, NY, USA), pp. 384393, ACM, 2006.
[2] M. Centelles, Taxonomies for categorisation and organisation in web sites,
[3] B. S. Bloom, M. D. Engelhart, and W. H. K. D. R. Furst, E. J.and Hill,
Taxonomy of educational objectives: The classication of educational goals.
Handbook I: Cognitive Domain.
[4] R. W. White, P. N. Bennett, and S. T. Dumais, Predicting short-term inte-
rests using activity-based search context, in Proceedings of the 19th ACM
International Conference on Information and Knowledge Management,
CIKM '10, (New York, NY, USA), pp. 10091018, ACM, 2010.
[5] E. Sadikov, J. Madhavan, L. Wang, and A. Halevy, Clustering query renements by user intent, in
on World Wide Web,
Proceedings of the 19th International Conference
WWW '10, (New York, NY, USA), pp. 841850,
ACM, 2010.
[6] A. Anagnostopoulos, A. Broder, E. Gabrilovich, V. Josifovski, and L. Riedel, Just-in-time contextual advertising techniques, Jan. 22 2009.
US
Patent App. 11/781,184.
[7] A. Broder, M. Fontoura, V. Josifovski, and L. Riedel, A semantic approach
Proceedings of the 30th Annual International ACM SIGIR Conference on Research and Development in Information
Retrieval, SIGIR '07, (New York, NY, USA), pp. 559566, ACM, 2007.
to contextual advertising, in
[8] R. Knox and D. Logan, What taxonomies do for the enterprise.
in Proceedings of CompuTerm 2004: 3rd International Workshop on Computational
Terminology, COLING'2004, 2002.
[9] I. Mani, Automatically inducing ontologies from corpora,
[10] R. Navigli, P. Velardi, and S. Faralli, A graph-based algorithm for indu-
Proceedings of the Twenty-Second
International Joint Conference on Articial Intelligence - Volume Volume
Three, IJCAI'11, pp. 18721877, AAAI Press, 2011.
cing lexical taxonomies from scratch, in
[11] H. Poon and P. Domingos, Unsupervised ontology induction from text,
Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics, ACL '10, (Stroudsburg, PA, USA), pp. 296305,
in
Association for Computational Linguistics, 2010.
[12] S.-L. Chuang and L.-F. Chien, Towards automatic generation of query
Data Mining, 2002.
ICDM 2003. Proceedings. 2002 IEEE International Conference on, pp. 75
taxonomy: a hierarchical query clustering approach, in
82, 2002.
[13] D. Shen, M. Qin, W. Chen, Q. Yang, and Z. Chen, Mining web query
hierarchies from clickthrough data.
33
[14] D. Sanchez and A. Moreno, Automatic generation of taxonomies from the
In: proceedings of the 5th International Conference on Practical Aspects of Knowledge Management PAKM 2004. LNAI, pp. 208219,
www, in
Springer, 2004.
[15] E. Schwarzkopf, D. Heckmann, D. Dengler, and E. Kröner, Learning the
structure of tag spaces for user modeling, in
In [3, 2007.
[16] X. Liu, Y. Song, S. Liu, and H. Wang, Automatic taxonomy construction
Proceedings of the 18th ACM SIGKDD International
Conference on Knowledge Discovery and Data Mining, KDD '12, (New
from keywords, in
York, NY, USA), pp. 14331441, ACM, 2012.
[17] H. C. J. Godfray, B. R. Clark, I. J. Kitching, S. J. Mayo, and M. J. Scoble,
The web and the structure of taxonomy,
Systematic Biology, vol. 56, no. 6,
pp. 943955, 2007.
[18] M. Sanderson and B. Croft, Deriving concept hierarchies from text, in
Proceedings of the 22Nd Annual International ACM SIGIR Conference
on Research and Development in Information Retrieval, SIGIR '99, (New
York, NY, USA), pp. 206213, ACM, 1999.
[19] R. Sujatha and R. K. R. Bandaru, Taxonomy construction techniques issues and challenges.
[20] L. Ramos and D. Rasmus,
Management.
[21] D.
R.
Best Practices in Taxonomy Development and
Giga Information Group, January, 8th 2003.
Report,
Content
classication
and
the
enterprise
taxonomy
practice.
[22] G. A. Miller, R. Beckwith, C. Fellbaum, D. Gross, and K. J. Miller, Introduction to wordnet: An on-line lexical database*,
of Lexicography, vol. 3, no. 4, pp. 235244, 1990.
International Journal
[23] X. Farreres, G. Rigau, and H. Rodriguez, Using wordnet for building
wordnets, 1998.
[24] Z. Kozareva and E. Hovy, A semi-supervised method to learn and construct
Proceedings of the 2010 Conference on Empirical Methods in Natural Language Processing, EMNLP '10, (Stroudsburg,
taxonomies using the web, in
PA, USA), pp. 11101118, Association for Computational Linguistics, 2010.
[25] A. Oliveira, F. C. Pereira, and A. Cardoso, Automatic reading and learning
from text, 2001.
[26] J. Novak and D. B. Godwin,
Learning how to learn.
[27] k. Han-joon and S.-g. Lee, Discovering taxonomic relationship from textual
documents.
[28] R. Feldman, M. Fresko, Y. Kinar, Y. Lindell, O. Liphstat, M. Rajman,
Proc. of the
2nd European Symposium on Principles of Data Mining and Knowledge
Discovery (PKDD'98, pp. 6573, Springer Verlag, 1998.
Y. Schler, and O. Zamir, Text mining at the term level, in
34
[29] M. Gupta, R. Li, Z. Yin, and J. Han, Survey on social tagging techniques,
SIGKDD Explor. Newsl., vol. 12, pp. 5872, Nov. 2010.
[30] M. G. Noll and C. Meinel, Exploring social annotations for web document classication, in
plied Computing,
Proceedings of the 2008 ACM Symposium on Ap-
SAC '08, (New York, NY, USA), pp. 23152320, ACM,
2008.
[31] S. Aliakbary, H. Abolhassani, H. Rahmani, and B. Nobakht, Web page
Computational Science and Engineering,
2009. CSE '09. International Conference on, vol. 4, pp. 588593, Aug 2009.
classication using social tags, in
[32] R. Wetzker, T. Alpcan, C. Bauckhage, W. Umbrath, and S. Albayrak, An
unsupervised hierarchical approach to document categorization, in
Intelligence, IEEE/WIC/ACM International Conference on,
Web
pp. 482486,
Nov 2007.
[33] D. Picca and A. Popescu, Using wikipedia and supersense tagging for
semi-automatic complex taxonomy construction, in
workshop, (Borovets, Bulgaria), 2007.
RANLP 2007, CALP
[34] E. Tsui, W. Wang, C. Cheung, and A. S. Lau, A concept relationship
acquisition and inference approach for hierarchical taxonomy construction
from tags,
Information Processing and Management, vol. 46, no. 1, pp. 44
57, 2010.
[35] S. lung Chuang and L. feng Chien, Automatic query taxonomy generation
for information retrieval applications, in
In OIR 2003.
[36] D. Ienco and R. Meo, Towards the automatic construction of conceptual
Proceedings of the 10th International Conference on Data
Warehousing and Knowledge Discovery, DaWaK '08, (Berlin, Heidelberg),
taxonomies, in
pp. 327336, Springer-Verlag, 2008.
[37] A. K. Jain and R. C. Dubes,
Algorithms for Clustering Data.
Upper Saddle
River, NJ, USA: Prentice-Hall, Inc., 1988.
Numerical Taxonomy. The Principles and Practice
of Numerical Classication. Freeman, 1973.
[38] P. Sneath and R. Sokal,
Step-wise clustering procedures, Journal of the American
Statistical Association, vol. 62, no. 317, pp. pp. 86101, 1967.
[39] B. King,
[40] J. H. Ward, Hierarchical grouping to optimize an objective function,
nal of the American Statistical Association,
Jour-
vol. 58, no. 301, pp. 236244,
1963.
[41] B. Mirkin, Mathematical classication and clustering: From how to what
and why, in
Classication, Data Analysis, and Data Highways
(I. Bal-
derjahn, R. Mathar, and M. Schader, eds.), Studies in Classication, Data Analysis, and Knowledge Organization, pp. 172181, Springer Berlin
Heidelberg, 1998.
[42] P. Willett, Recent trends in hierarchic document clustering:
review,
Inf. Process. Manage., vol. 24, pp. 577597, Aug. 1988.
35
A critical
[43] R. Baeza-Yates and B. Ribeiro-Neto, Modern information retrieval, 1999.
[44] J. MacQueen, Some methods for classication and analysis of multivariate
observations, 1967.
[45] D. Cheng, R. Kannan, S. Vempala, and G. Wang, On a recursive spectral
algorithm for clustering from pairwise similarities, tech. rep., 2003.
[46] A. Patrikainen and M. Meil , Spectral clustering for microsoft netscan
data 1, 2005.
[47] X. Geng, X. Fan, J. Bian, X. Li, and Z. Zheng, Optimizing user explo-
Proceedings of the
21st International Conference Companion on World Wide Web, WWW '12
ring experience in emerging e-commerce products, in
Companion, (New York, NY, USA), pp. 2332, ACM, 2012.
[48] F. R. K. Chung,
[49] U.
v.
Spectral Graph Theory.
Luxburg,
A
tutorial
on
spectral
Computing, vol. 17, pp. 395416, Dec. 2007.
clustering,
Statistics and
Pattern
Analysis and Machine Intelligence, IEEE Transactions on, vol. 22, pp. 888
[50] J. Shi and J. Malik, Normalized cuts and image segmentation,
905, Aug 2000.
[51] A. Y. Ng, M. I. Jordan, and Y. Weiss, On spectral clustering:
lysis and an algorithm, in
Ana-
ADVANCES IN NEURAL INFORMATION
PROCESSING SYSTEMS, pp. 849856, MIT Press, 2001.
[52] W. Woon and S. Madnick, Asymmetric information distances for automated taxonomy construction,
Knowledge and Information Systems, vol. 21,
no. 1, pp. 91111, 2009.
[53] K. Murthy, T. A. Faruquie, L. V. Subramaniam, K. H. Prasad, and
M. Mohania, Automatically generating term-frequency-induced taxonomies, in
Proceedings of the ACL 2010 Conference Short Papers, ACLShort
'10, (Stroudsburg, PA, USA), pp. 126131, Association for Computational
Linguistics, 2010.
[54] M. Neshati and L. S. Hassanabadi, Taxonomy construction using com-
On the Move to Meaningful Internet Systems
2007: CoopIS, DOA, ODBASE, GADA, and IS (R. Meersman and Z. Tari, eds.), vol. 4803 of Lecture Notes in Computer Science, pp. 915932,
pound similarity measure, in
Springer Berlin Heidelberg, 2007.
[55] R. Shearer and I. Horrocks, Exploiting partial information in taxonomy
construction, in
The Semantic Web - ISWC 2009
(A. Bernstein, D. Kar-
ger, T. Heath, L. Feigenbaum, D. Maynard, E. Motta, and K. Thirunarayan, eds.), vol. 5823 of
Lecture Notes in Computer Science,
pp. 569584,
Springer Berlin Heidelberg, 2009.
[56] A. Henschel, W.-L. Woon, T. Wachter, and S. Madnick, Comparison of
generality based algorithm variants for automatic taxonomy generation,
Innovations in Information Technology, 2009. IIT '09. International
Conference on, pp. 160164, Dec 2009.
in
36
[57] K. Punera, S. Rajan, and J. Ghosh, Automatic construction of n-ary tree
Data Mining Workshops, 2006. ICDM Workshops
2006. Sixth IEEE International Conference on, pp. 7579, Dec 2006.
based taxonomies, in
[58] C. Blaschke and A. Valencia, Automatic ontology construction from the
literature. genome informatics, 2002.
[59] R. Krishnapuram and K. Kummamuru, Automatic taxonomy generation:
Proceedings of the 10th International Fuzzy Systems Association World Congress Conference on Fuzzy Sets and Systems,
Issues and possibilities, in
IFSA'03, (Berlin, Heidelberg), pp. 5263, Springer-Verlag, 2003.
[60] D. Sánchez and A. Moreno, Automatic generation of taxonomies from the
In: proceedings of the 5 th International Conference on Practical
Aspects of Knowledge Management (PAKM 2004). LNAI, pp. 208219,
www, in
Springer, 2004.
[61] E. Schwarzkopf, D. Heckmann, D. Dengler, and A. Kröner, Mining the
structure of tag spaces for user modeling, in Proceedings of the UM 2007
workshop on Data Mining for User Modeling (DMUM07) (R. S. Baker,
J. E. Beck, B. Berendt, A. Kröner, E. Menasalvas, and S. Weibelzahl,
eds.), (Corfu, Greece), pp. 3031, June 2007. Extended abstract.
[62] S.-L. Chuang and L.-F. Chien, Towards automatic generation of query
Data Mining, 2002.
ICDM 2003. Proceedings. 2002 IEEE International Conference on, pp. 75
taxonomy: a hierarchical query clustering approach, in
82, 2002.
Knowledge
and Data Engineering, IEEE Transactions on, vol. 19, pp. 370383, March
[63] R. Cilibrasi and P. Vitanyi, The google similarity distance,
2007.
[64] W. L. Woon, A. Henschel, and S. Madnick, A framework for technology
Innovations in Information Technology,
2009. IIT'09. International Conference on, pp. 155159, IEEE, 2009.
forecasting and visualization, in
[65] S.-L. Chuang and L.-F. Chien, Enriching web taxonomies through subject
categorization of query terms from search engine logs,
Decis. Support Syst.,
vol. 35, pp. 113127, Apr. 2003.
[66] S.-L. Chuang and L.-F. Chien, A practical web-based approach to ge-
Proceedings of the Thirteenth ACM International Conference on Information and Knowledge
Management, CIKM '04, (New York, NY, USA), pp. 127136, ACM, 2004.
nerating topic hierarchy for text segments, in
[67] C. Blundell, Y. W. Teh, and K. A. Heller, Bayesian rose trees,
CoRR,
vol. abs/1203.3468, 2012.
[68] X. Liu, Y. Song, S. Liu, and H. Wang, Automatic taxonomy construction
from keywords, in
SIGKDD, ACM, August 2012.
[69] K. Punera, S. Rajan, and J. Ghosh, Automatic construction of n-ary tree
Data Mining Workshops, 2006. ICDM Workshops
2006. Sixth IEEE International Conference on, pp. 7579, Dec 2006.
based taxonomies, in
37
[70] C. E. Shannon, A mathematical theory of communication,
Technical Journal, vol. 27, no. 3, pp. 379423, 1948.
Bell System
[71] E. W. Dijkstra, A note on two problems in connexion with graphs,
NUMERISCHE MATHEMATIK, vol. 1, no. 1, pp. 269271, 1959.
[72] V. Jarnik, O jistém problému minimálním,
ké Spolecnosti, pp. 5763, 1930.
Práce Moravské Prírodovedec-
[73] R. C. Prim, Shortest connection networks and some generalizations,
System Technical Journal, vol. 36, no. 6, pp. 13891401, 1957.
Bell
[74] S. L. Camina, A comparison of taxonomy generation techniques using
bibliometrics methods: Applied to research strategy formulation.
[75] J. B. Kruskal, On the Shortest Spanning Subtree of a Graph and the
Traveling Salesman Problem, in
Society, 7, 1956.
Proceedings of the American Mathematical
[76] J. Edmonds, Optimum branchings, vol. 71B, pp. 233240.
[77] P. Heymann and H. Garcia-Molina, Collaborative creation of communal
hierarchical taxonomies in social tagging systems, tech. rep., Computer
Science Department, Standford University, April 2006.
[78] A. Henschel, W. L. Woon, T. Wächter, and S. Madnick, Comparison of
generality based algorithm variants for automatic taxonomy generation, in
IIT'09: Proceedings of the 6th international conference on Innovations in
information technology, (Piscataway, NJ, USA), pp. 206210, IEEE Press,
2009.
[79] R. Shearer, I. Horrocks, and B. Motik, Exploiting partial information in
taxonomy construction, 2009.
Logics
in Articial Intelligence (J. Alferes, L. Pereira, and E. Orlowska, eds.),
vol. 1126 of Lecture Notes in Computer Science, pp. 117, Springer Berlin
[80] P. Baumgartner, U. Furbach, and I. Niemelä, Hyper tableaux, in
Heidelberg, 1996.
Computer Science Logic
Lecture Notes in Computer Science, pp. 232
[81] J. van Eijck, Constrained hyper tableaux, in
(L. Fribourg, ed.), vol. 2142 of
246, Springer Berlin Heidelberg, 2001.
[82] A. S. Fraser, Simulation of genetic systems by automatic digital computers.
I. Introduction,
Australian Journal of Biological Science, vol. 10, pp. 484
491, 1957.
38