marina.bavasso ha scritto:
Di seguito vi descrivo il progetto:
Obiettivo del progetto è il confronto tra le diverse tecniche per il Text Mining su due dataset: Reuters 21578 e Cade12.
Di seguito vengono descritte brevemente le caratteristiche dei due dataset.
REUTERS-21578
Il dataset contiene 21578 documenti collezionati dall’agenzia omonima a partire dal 1987 e classificati manualmente dal personale. Le etichette appartengono a 5 diverse categorie (ad es.'people', 'places' 'topics'). Il numero totale di categorie è 672, ma molte sono estremamente rare.
Il dataset nel formato originario è racchiuso in 22 files di 1000 documenti delimitati da tag SGML e può essere scaricato dalla pagina http://kdd.ics.uci.edu/databases/reuters21578/reuters21578.html
CADE 12
I documenti appartenenti al dataset Cade12 rappresentano un sottoinsieme di pagine web estratte dalla directory Cade WEB, classificate manualmente da esperti di dominio. Una versione (parzialmente) pre-processata del dataset vi sarà consegnata insieme alla traccia del progetto.
Il Processo di KDD
Nella realizzazione del progetto devono essere coperti tutti gli step per processo di KDD. Di seguito vengono riportate indicazioni e suggerimenti per lo svolgimento di ogni task.
I TASK(Analisi dei dati)
Il task di analisi dei dati dipende dal particolare dataset e mira a comprendere meglio le informazioni
disponibili e a individuarne le parti di maggiore e minore interesse.
REUTERS:
• Comprensione del formato originario. Le informazioni dettagliate sulla struttura del dataset Reuters possono essere trovate nel file README.
• Selezione dei documenti di interesse. Alcuni documenti appartengono a molte categorie, altri ad una sola e alcuni non hanno nessuna categoria associata. E’ di interesse mantenere solo i documenti associati ad almeno una categoria.
• Tra tutte le categorie presenti nel dataset originiario, si vogliono mantenere solo le 10 più grandi. I documenti appartenenti alle altre categorie devono essere raggruppati sotto un’unica categoria.
Qualcuno sa dirmi come faccio a selezionare i documenti di interesse e a mantenere le 10 categorie più grandi?
Vi ringrazio in anticipo
Direi che la cosa e' abbastanza semplice.
1) innanzi tutto si puo' dire che come questi documenti sono stati generati ( Text Mining ) non e' un problema.
2) per Cade12, vabbe, ci sara' un po' di elaborazione da fare, con librerie o software adeguati (appunto con Weka), ma anche questa e' una cosa che puo' essere lasciata al momento in sospeso
L'analisi del database REUTERS e' abbastanza banale:
il formato usato e' SGML, la versione generale dell'XML.
Ogni file contiene una concatenazione di documenti XML.
Ora, questo e' un documento SGML valido, ma non e' valido dal punto di vista XML, poiche' un documento XML prevede l'esistenza di
un'unica root.
Da una prima analisi, comunque, non ho visto la presenza di tag
strani o una struttura che non puo' essere convertita in un formato XML in modo diretto.
Puoi processare il file SGML in due modi:
1) spezzarlo nei singoli documenti, compresi tra i tag <REUTERS> e </REUTERS> (forse la scelta migliore, ma implementativamente un po' piu' complicata)
2) aggiungere una stringa in testa ed in coda all'intero documento (ad esempio <REUTERSROOT> e </REUTERSROOT>) in modo da trasformarlo in un documento XML valido.
3) a questo punto, con una normale libreria che supporta il parsing XML e la sintassi XPath puoi fare tutte le selezioni che ti servono.
Diciamo che, essendo tanti documenti (20.000+), potrebbe valere la pena utilizzare un database, ma database
convenzionali (cioe' che usano l'SQL) che supportano colonne di tipo XML e query mediante XPath o XQuery non ce ne sono molti: Oracle, SQLServer, DB2. Tutti bestioni che richiedono un pc ragionevolmente carrozzato per poter funzionare (vabbe, si puo' fare anche in una virtual machine, ma serve un PC con almeno 8GB di ram)
Una soluzione migliore e' sicuramente l'utilizzo di un database
NonSQL, ma mi sa che sei alle prime armi e quindi potrebbe essere complicato.
Forse la soluzione piu' semplice, anche se inefficiente, ma potrebbe non essere un problema, e' salvare i singoli documenti su filesystem (quelli tra <REUTERS> e </REUTERS>), e poi leggerli uno alla volta per estrarre le informazioni del caso.
E le informazioni sono abbastanza banali da estrarre: basta accedere al tag XML o all'attributo XML corretto.
Per le categorie e' <TOPIC>!
1) parsi il file con il parser XML
2) estrai le informazioni che ti servono mediante XPath
3) fai le tue statistiche
Finito!
Ora, se non sai che cosa e' l'XML, l'XPath, il DOM e un parser XML/DOM, sei nei guai
Nulla di complicato, ovviamente: dovrai fare un po' di pratica prima, con qualche programmino di prova, per prenderci la mano
Poiche' sei nella sezione
Database non so che linguaggi di programmazione conosci, ma parlando di Weka, e' plausibile sia Java.
Se e' Java:
e dulcis in fundo: