Modello
Del modello fanno parte le classi che si occupano di gestire i dati di interesse dell'applicazione:
- StopList: astrazione software per conservare in memoria l'elenco di
termini non rilevanti per la categorizzazione e per verificare se un dato termine
è rilevante oppure no
- AddressList: astrazione software per gestire un elenco di indirizzi: usata per la lista
di indirizzi fidati (la white list) o per gestire l'insieme di indirizzi non fidati
(la la black list)
- MyParser: oggetto che essenzialmente si occupa del parsing e della
tokenizzazione di un testo, restituendo il set dei termini rilevanti
trovati in esso. Nel fare ciò si avvale di un oggetto StopList per scartare i
termini non rilevanti nella categorizzazione testi
- EmailDocument: oggetto che encapsula un messaggio di posta elettronica e mantiene
informazioni su di esso, come il set di termini rilevanti che quest' ultimo contiene
- EmailCategory: oggetto che mantiene una lista di EmailDocument dello stesso
tipo (ham o spam) e informazioni su di essi (cfr. Sezione 3.3)
- PersistentCategory: oggetto che rappresenta un subset minimale delle informazioni
contenute in un oggetto EmailCategory, tale da rendere meno gravosa (dal punto di vista
dello spazio occupato su Hard Disk) la sua serializzazione su file (se viene usato pickle
per tale compito)
- PersistencyHandler: oggetto che si occupa della serializzazione e
deserializzazione di un oggetto EmailCategory.
Come discusso, può serializzare in formato pickle o
utilizzando l' embedded db Berkeley DB
- TrainerModule: oggetto che addestra il sistema con un insieme di messaggi email di un
determinato tipo (ham o spam) e serializza il risultato avvalendosi della classe esaminata
precedentemente
- GWEmailCategorizer: oggetto che, contenendo una categoria di messaggi spam e una
categoria di messaggi ham, si occupa di classificare un nuovo EmailDocument come ham
o spam in base all' algoritmo GAME
- FilterModule: oggetto che ricevendo un messaggio email come ingresso, lo classifica
come ham o spam e lo restituisce in uscita aggiungendo l'header X-Spam con valore
yes o no a seconda del risultato della categorizzazione ottenuta sfruttando
tutti i tipi di filtraggio a disposizione dell' applicazione (fra i quali GAME)
- BenchmarModule: oggetto software che effettua una classificazione su tutti i messaggi
contenuti in un file in formato mbox e riporta quanti di essi sono stati classificati
come ham e quanti come spam. Viene utilizzato per effettuare dei benchmark sulle prestazioni
di classificazione
Viene riportato nella Figura 4.5 una diagramma UML delle classi di Persistenza e Modello.
Figura 4.5:
diagramma UML delle classi del Modello e Persistenza
|
Alessio Pace
2004-03-26