• Non ci sono risultati.

Bag of words (IR)

1.8 La scelta delle features

1.8.1 Bag of words (IR)

Si tratta di un modello che adotta le singole parole di una frase come caratteristiche, assumendo la loro indipendenza condizionale. Il testo viene rappresentato come un insieme ordinato di parole. Ogni caratteristica del vettore rappresenta l'esistenza di una parola. Si tratta effettivamente di un modello unigram, dove ogni parola è condizionalmente indipendente dalle altri. Tutte le parole (funzioni) nel vettore caratteristica costituiscono il dizionario. La sfida di questo approccio è la scelta di parole che siano appropriate per diventare caratteristiche.

Utilizzando questo modello la frase

This is a great event

può essere rappresentata dal seguente vettore:

̅̅̅̇ {’ ’ ’ ’ ’ ’ ’ ’ ’ ’ }

116 Dave, K.; Lawrence, S.; and Pennock, D. M. 2003. Mining the peanut gallery:

Opinion extraction and semantic classification of product reviews. World Wide

(E’ presentata vettore funzione come un dizionario Python; NLTK, ad esempio, utilizza questa rappresentazione di un vettore di feature). Questo sarebbe una rappresentazione soddisfacente se vi fosse una sola frase in tutto il corpus. Se, al contrario, vogliamo essere in grado di rappresentare altre frasi, ad esempio,

It is a great Startrek movie

il precedente vettore non potrebbe essere idoneo ad una efficace rappresentazione.

E’ quindi necessario estendere il set di parole, e integrare il vettore caratteristica. L'insieme delle funzionalità descritte in questo caso sarebbe

{’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’}

Il vettore di feature, rappresentativo di entrambe le frasi, sarebbe: ̅̅̅̇ {’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’

’ ’ ’ ’ }

Solo alcune delle parole appaiono in entrambe le frasi, e sono utilizzate per esprimere la somiglianza tra le frasi. Ovviamente, per qualsiasi uso reale, il vettore di caratteristica dovrebbe contenere un numero maggiore di parole.

E possibile registrare o la presenza della comparsa parola in un testo, o la sua frequenza (il numero di volte che la parola è apparsa). La frequenza del vettore caratteristica per la frase

I really really enjoyed the movie

per la parola "really" avrebbe valore “2” (numero di occorrenze della parola.) Ciò consente di indicare con un maggior livello di approfondimento la polarità della frase. Tuttavia, dato che si confronta singole frasi, non è molto comune avere una parola che appare più volte. Inoltre, abbiamo già visto come Pang abbia dimostrato che per l’analisi del sentiment, il considerare la semplice presenza o assenza di una parola in una frase determina le stesse prestazioni di

un’informazione più dettagliata contenente anche il numero di occorrenze.

L’ideale vettore delle feature per un Bag-of-Words dovrebbe contenere tutte le parole esistenti in un linguaggio e rappresenta, di fatto, un dizionario della lingua. Tuttavia, questo modello non sarebbe pratico per almeno tre ragioni. Uno dei motivi è la complessità del modello, dal momento che il modello avrebbe catturato più informazioni di quanto effettivamente richiesto. Ciò rappresenterebbe un corpus ideale per il training del testo, ma sarebbe sovradimensionato e porterebbe a pessime prestazione ogni volta che si ha a che fare con nuovi esempi.

Inoltre, la complessità computazionale di apprendimento successivo (per esempio un vettore di lunghezza di un milione di elementi) è enorme. Infine, se pure i due ostacoli precedenti sono stati superati, gestire nuove parole non è ancora possibile.

Le lingue sono molto dinamiche, e le parole nuove sono spesso inventate, soprattutto nella comunità di Internet. Il sentiment dell'autore è spesso espresso attraverso sia parole sia frasi. Per esempio, nella frase

This is a great event

la parola "great" è il migliore indicatore del parere dell'autore. Un approccio che può essere immaginato è quello di selezionare manualmente le più importanti parole chiave (come “grande”, “eccellente”, “terribile” quando vogliamo esprimere la polarità di una frase) e usarle come caratteristiche.

Tuttavia, Pang et al. dimostrano che la scelta manuale delle parole chiave è superato da modelli statistici, dove un buon set di parole che rappresentano caratteristiche sono selezionati per la loro presenza nel corpus di formazione esistente. La qualità della selezione dipende delle dimensioni del corpus e la somiglianza di domini di formazione e dati di test.

L’utilizzo di tendenze statistiche da domini differenti, che non hanno le stesse proprietà desiderate come il dominio originale, può portare a risultati imprecisi, ad esempio, se l'analisi di soggettività viene

eseguita su una serie di frasi prelevate da un giornale, in cui la maggior parte delle frasi sono state scritte in stile oggettivo.

E 'importante creare un dizionario completo (vettore di feature) che catturi caratteristiche più importanti sia in set di training sia in esempio inedito.

E’ possibile valutare due diversi approcci per la selezione delle funzioni nel modello Bag-of-Words. Entrambi sono basati sulla selezione delle parole più frequenti in un corpus testuale. Un approccio è quello di utilizzare gli elementi provenienti dallo stesso dominio. Si dividere ogni testo in due pezzi. Un pezzo verrà utilizzato come insieme noto, uno per gli scopi di addestramento. Si noti, tuttavia, che la varianza può essere grande a causa del piccolo corpus considerato. Un altro approccio presuppone l’utilizzo di un set di feature basato sulle frequenze di parole nel corpus esistente, che è simile per argomento e per sentiment. Il vantaggio di tale scelta di caratteristiche è la capacità di una migliore comparazione di nuovi messaggi. I messaggi possono appartenere ad altri articoli di un determinato sito web.

La selezione di tutte le parole che appaiono nei corpora può portare a un sovradimensionamento, analogo al caso di selezione di tutte le parole in una lingua, precedentemente descritto. Vi sono anche altri rischi. Devono essere impostati alcuni limiti per vincolare la dimensione del vettore caratteristica.

Ad esempio, è possibile rimuovere alcune delle parole esistenti frequenti tramite una lista nera. Pratica comune per i motori di ricerca è quella di rimuovere le parole come una, la, do,. . . che portano poche informazioni utili.

Questo modello è semplice, ed ha diversi limiti.

Ad esempio è impossibile catturare le relazioni soggettività/polarità tra le parole, distinguendo tra le parti del discorso, di gestire le negazioni, e i diversi significati di una parola. Una estensione del modello che può apparire naturale e semplice sarebbe quella di considerare anche le coppie di parole (bigrammi) come funzioni invece degli unigrammi. Tuttavia la letteratura non mostra il vantaggio di bigrammi rispetto agli unigrammi nell’analisi del sentiment.