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