BayesFor.eu

beta

Bayesian web spidering

Traduzioni di questa pagina?:

Menu

Associazione

Progetti

Pagine personali

Traccia: » mm
::

Manuale Mean-Machine

Le informazioni che possono essere analizzate con Mean-Machine sono testi che sono contenuti in 'documenti', ciascun documento è un testo in formato raw (txt semplice) eventualmente ottenuto dalla conversione di una pagina web, documento word o altra fonte.

pagina di sviluppo della Mean-Machine con figure

Affinchè le informazioni possano essere fruite 'on-the-fly' dall'utente, i documenti sono pre-elaborati in modo che le dimensioni rilevanti (numero di parole, distanza tra parole, etc) sono calcolate prima della analisi dell'utente e salvate in un database in un formato apposito.

Ciascun documento può contenere attributi, ad esempio: titolo, data, fonte, etc. Gli attributi possono essere utilizzati per filtrare i contenuti durante l'analisi (ad esempio, considerare solo di documenti relativi ad un intervallo di date, oppure solo quelli appartenenti ad una certa fonte).

Componenti

Esistono diversi approcci che possono essere utilizzati per analizzare un database, per questo motivo la Mean-Machine è sviluppata in componenti che consentono di visualizzare le informazioni presenti in un database in modalità diverse.

Dal punto di vista grafico la MM è organizzata in tabs, ad ogni tab corrisponde una analisi. E' possibile aprire un nuovo tab cliccando su un componente. In questo modo è possibile confrontare i risultati ottenuti con diverse analisi (relative allo stesso oppure diversi componenti), navigando tra i tab.

Indipendemente dal componente, la Mean-Machine analizza il database in base a query di ricerca. Una query di ricerca filtra i contenuti del database in base ai parametri di ricerca inseriti, secondo i seguenti step:

  1. matching set, individuazione dei documenti che corrispondono alla query
  2. expansion set, individuazione delle parole più rilevanti all'interno del matching set (escluse le stopwords)
  3. presentazione dei risultati (dipende dal componente)

La query di ricerca contiene diversi parametri:

  • testo della query, contiene i termini oggetto della analisi (es. “Centrale”, “biomasse”, “energia”), operatori logici (AND, OR, NEAR, NOT, es. “energia NOT nucleare”, “fonti NEAR rinnovabili”), filtri (es. “20120101..20120201”). Nel caso dei termini, la lettera iniziale maiuscola indica che si vuole cercare i documenti in cui si trova esattamente la parola (ad esempio utilizzo “Centrale” per cercare il termine “centrale”) mentre la minuscola indica che l'oggetto della ricerca è la radice della parola (es. “centrale” indica la radice “central” che può corrispondere a “centrale”, “centrali”)
  • language, in caso di db multilingua serve per selezionare la porzione di db che si intende analizzare
  • max matching documents, indica il numero massimo di documenti per la individuazione del matching set
  • expansion set max terms, indica il numero massimo di termini da analizzare
  • white list, consente di specificare un file txt da utilizzare per il filtrare i termini da mostrare (il file deve contenere un elenco di termini, uno per ogni riga del file)
  • db, specifica il percorso del db da analizzare (es. in windows “c:\mm\150italia”, in osx ”/Users/pippo/mm/150italia”, in linux ”/home/pippo/mm/150italia”)

Search

Questo componente visualizza il matching set e una nuvola delle parole più rilevanti. Le parole più frequenti sono visualizzate con un font di dimensioni maggiori. La frequenza della parola aggiustata per la lunghezza del documento in cui si trova la parola (cioè, a parità di numero di occorrenze per documento, viene attribuito un peso maggiore nel caso in cui la parola sia presente in un documento corto).

Graph

Questo componente visualizza in una rete i termini appartenenti all'expansion set in base alla loro rilevanza (vertez size) e alla distanza tra loro (edges weight):

  • Vertex size, la parola più rilevante, non necessariamente l'oggetto della ricerca, ha rilevanza massima (r_max), tutte le altre parole hanno rilevanza r_i (con r_max > r_i) fino alla parola che ha rilevanza minima (r_min). Nella visualizzazione grafica, la grandezza del nodo (vertex size) è ottenuto attraverso una normalizzazione della rilevanza: r_i = (r_i - r_{min}) / (r_{max} - r_{min}). Dalla rete possono essere escluse parole alzando il livello minimo di vertex size (che varia da 0 a 1) ma mano che si innalza il livello minimo le parole meno rilevanti dai testi vengono escluse. Abbassare il vertex size implica includere parole progressivamente meno frequenti nei documenti. Se vertex size = 0 allora le parole incluse nella rete sono N. Nel caso in cui il nodo coincida con uno dei termini ricercati è indicato con il colore blu anzichè rosso.
  • Edges weight è un indice di prossimità, i legami tra i vertici sono la distanza in in parole fra i termini in un testo. Questo fa si che tutte le parole abbiano legami tra di loro se sono presenti almeno una volta entrambe nello stesso documento, tutto dipende dalla soglia di distanza che definiamo come minima per la visualizzazione. Il peso del legame è ottenuto come media aritmetica della distanza minima tra ciascuna coppia di termini in ogni documento.

Per consentire di avere maggiore sensibilità, gli slider filtrano la dimensione del vertice e la distanza tra gli edge in ragione del logaritmo del valore.

Graphnew

Come graph, questo componente visualizza i termini in una rete ma con criteri diversi per la determinazione della soglia minima di rilevanza e distanza:

  • Vertex size, numero medio di frequenza del termine per documento (rapporto tra numero di frequenze del termine per ciascun documento e numero di documenti del mset)
  • Edges weight, è un indice di prossimità, i legami tra i vertici sono determinati con la seguente formula eweight_{i,j} = \sum_{n \in N}{\sum_{c \in C}{1/(x_i - x_j)}/f_{max}}.

Cioè partendo da tutte le possibili coppie tra i e j con i < j, consideriamo solo le coppie che hanno distanza minima. In questo modo il legame tra le due parole è compreso tra 0 e 1, è pari a 1 se i e j sono le due parole più frequenti e sono sempre a distanza 1 l'una dall'altra.

esempio

Tecnologie utilizzate

L'estrazione del Matching Set, Expansion Set e l'attribuzione dei pesi ai termini è fatta tramite Xapian, la descrizione di questi processi in questa pagina è al momento fatta in maniera intuitiva (vedi overview di Xapian e theoretical background per maggiori informazioni). Il calcolo della distanza tra termini è fatto tramite codice python scritto da BayesFor, sulla base di convenience functions di Xapian che forniscono il vettore di posizioni di un termine in un testo. La costituzione del grafo e le modifiche è fatta utilizzando la libreria igraph.

Torna su :: bayes-swarm/mm.txt · Ultima modifica: 2012/04/02 22:01 da matteo.zandi
Mostra sorgente Revisioni precedenti Ultime modifiche Indice