2010-10-13 4 views
37

Ho letto molti articoli che spiegano la necessità di una serie iniziale di testi classificati come "positivi" o "negativi" prima che un sistema di analisi del sentimento funzioni davvero.Analisi sentimentalizzata senza supervisione

La mia domanda è: qualcuno ha tentato solo di eseguire un controllo rudimentale degli aggettivi "positivi" rispetto agli aggettivi "negativi", tenendo conto di eventuali semplici negatori per evitare di classificare "non felice" come positivo? Se è così, ci sono articoli che discutono solo perché questa strategia non è realistica?

risposta

55

A classic paper by Peter Turney (2002) spiega un metodo per fare sentiment analysis senza supervisione (positivo/classificazione negativa) utilizzando solo le parole eccellente e povero come set di semi. Turney usa lo mutual information di altre parole con questi due aggettivi per ottenere una precisione del 74%.

+0

Questo riceve il tag di risposta. È un articolo molto interessante – Trindaz

15

Non ho provato a fare analisi di valutazione non addestrate come quelle che stai descrivendo, ma in cima alla mia testa direi che stai semplificando eccessivamente il problema. Analizzare semplicemente gli aggettivi non è sufficiente per avere una buona conoscenza del sentimento di un testo; per esempio, considera la parola "stupido". Da solo, lo classificheresti come negativo, ma se una recensione di un prodotto dovesse avere '... [x] il prodotto fa apparire stupidi i concorrenti per non pensare prima a questa caratteristica ...' quindi il sentimento in quel caso sarebbe sicuramente positivo . Il contesto più ampio in cui appaiono le parole è decisamente importante in qualcosa di simile. Questo è il motivo per cui un bagaglio di parole non addestrato si avvicina da solo (per non parlare di un sacchetto di aggettivi ancora più limitato) non è sufficiente per affrontare adeguatamente questo problema.

I dati pre-classificati ("dati di addestramento") aiutano a risolvere il problema dal tentativo di determinare se un testo è di positività positiva o negativa da zero, per cercare di determinare se il testo è più simile ai testi positivi o testi negativi e lo classificano in questo modo. L'altro punto importante è che le analisi testuali come l'analisi dei sentimenti sono spesso influenzate in modo significativo dalle differenze delle caratteristiche dei testi a seconda del dominio. Questo è il motivo per cui avere una buona serie di dati su cui formarsi (cioè dati accurati all'interno del dominio in cui si sta lavorando, e si spera che sia rappresentativo dei testi che si dovranno classificare) sia importante quanto costruire un buon sistema per classificare con.

Non proprio un articolo, ma spero che sia d'aiuto.

+0

Grazie per la vostra risposta waffle! Apprezzo tutto l'input che posso dare su questo argomento. – Trindaz

2

Ho provato a individuare le parole chiave utilizzando un dizionario di affetto per prevedere l'etichetta di sentimento a livello di frase. Data la generalità del vocabolario (non dipendente dal dominio), i risultati erano solo del 61% circa. La carta è disponibile nella mia homepage.

In una versione leggermente migliorata, sono stati considerati gli avverbi di negazione. L'intero sistema, denominato EmoLib, è disponibile per demo:

http://dtminredis.housing.salle.url.edu:8080/EmoLib/

saluti,

+0

Grazie per questo atrilla. Ha funzionato abbastanza bene per i test che ho fatto. – Trindaz

2

David,

non sono sicuro se questo aiuta, ma si consiglia di guardare in Jacob Perkin di blog post sull'uso NLTK per l'analisi sentimento.

+2

Sta facendo una classificazione supervisionata. – theharshest

0

Non ci sono "scorciatoie" magiche nell'analisi del sentimento, come con qualsiasi altro tipo di analisi del testo che cerchi di scoprire la "verità" di fondo di una porzione di testo. Tentare di sperimentare metodi di analisi testuale semplificati attraverso il semplicistico controllo "aggettivo" o approcci similari porta ad ambiguità, classificazione errata, ecc., Che alla fine della giornata ti danno una scarsa accuratezza sul sentiment. Più la fonte è concisa (ad es. Twitter), più è difficile il problema.

3

La carta di Turney (2002) citato da larsmans è una buona base. In una ricerca più recente, Li and He [2009] introduce un approccio utilizzando Latent Dirichlet Allocation (LDA) per addestrare un modello in grado di classificare contemporaneamente il sentimento e l'argomento di un articolo in modo totalmente non supervisionato. L'accuratezza raggiunta è dell'84,6%.

+0

sembra promettente, lo leggerò e commenterò –

+1

Hai finito per provarlo? Sto lavorando su un problema simile cercando di fare analisi del sentiment sugli archivi di posta elettronica di enron. – user1943079

+0

@TrungHuynh Sto postando questo quasi 4 anni dopo che la risposta è stata pubblicata, ma il link al documento è stato cambiato ora. Puoi dirmi il nome del giornale, così posso cercarlo online? – Krishh

2

Ho provato diversi metodi di Sentiment Analysis per opinion mining in recensioni. Ciò che ha funzionato meglio per me è il metodo descritto nel libro Liu: http://www.cs.uic.edu/~liub/WebMiningBook.html In questo libro Liu e altri, confrontate molte strategie e discusso diversi articoli su Sentiment Analysis e Opinion Mining.

Anche se il mio obiettivo principale era quello di estrarre le caratteristiche nei pareri, ho implementato un classificatore sentimento per rilevare la classificazione positivo e negativo di questa funzionalità.

ho usato NLTK per la pre-elaborazione (tokenizzazione Word, POS tagging) e la creazione trigrammi. Poi ho anche usato i Classificatori Bayesiani all'interno di questo assunto per confrontarlo con altre strategie che Liu stava individuando.

Uno dei metodi si basa su tagging pos/neg ogni trigrram esprimere queste informazioni, e l'utilizzo di alcuni classificatore su questi dati. Altro metodo che ho provato e ha funzionato meglio (circa l'85% di precisione nel mio set di dati), è stato calcolando la somma dei punteggi di PMI (puntuale informazione reciproca) per ogni parola nella frase e le parole eccellente/poveri come semi di pos/classe neg.

+0

Ciao Luchux, sto lavorando su un dominio simile, puoi condividere il tuo set di dati, sarà molto utile. – turing