2012-06-11 13 views
5

Ho provato il classificatore naive bayes e funziona molto male. SVM funziona un po 'meglio ma è ancora orribile. La maggior parte dei documenti che ho letto su SVM e su naive bayes con alcune varianti (n-gram, POS ecc.) Ma tutti danno risultati vicini al 50% (gli autori di articoli parlano dell'80% e alti ma non posso ottenere lo stesso risultato su dati reali).Buon algoritmo per l'analisi del sentimento

Esistono metodi più potenti, ad eccezione dell'analisi lexixal? SVM e Bayes suppongono che le parole siano indipendenti. Questo approccio chiamato "sacco di parole". Cosa succede se supponiamo che le parole siano associate?

Ad esempio: utilizzare un algoritmo apriory per rilevare che se le frasi contengono "cattivo e orribile", allora il 70% di probabilità che la frase è negativa. Inoltre possiamo usare la distanza tra le parole e così via.

È una buona idea o sto inventando la bicicletta?

risposta

2

Stai confondendo un paio di concetti qui. Né Naive Bayes né SVM sono legati al sacco di parole. Né i SVM né l'approccio BOW hanno un'ipotesi di indipendenza tra i termini.

Ecco alcune cose che potete provare:

  • includono segni di punteggiatura in vostre borse di parole; esp. ! e ? può essere utile per l'analisi del sentimento, mentre molti estrattori orientati verso la classificazione dei documenti li buttano via
  • uguale per le parole di arresto: parole come "I" e "mio" possono essere indicative del testo soggettivo
  • creare un classificatore a due stadi ; per prima cosa determinare se è stata espressa un'opinione, quindi se è positiva o negativa
  • provare un kernel quadratico SVM invece di uno lineare per catturare le interazioni tra le funzionalità.
+0

Cosa ne pensi dell'algoritmo iniziale e dell'associazione tra le parole? – Neir0

+0

@ Neir0: Non vedo immediatamente come vorresti applicarlo. Non ho mai visto tentativi di fare analisi del sentimento con esso. So che alcune persone lo usano per costruire approssimazioni al kernel quadratico (più o meno come si chiamano "associazioni di parole"), ma poi proverei prima un SVM di kernel alla vaniglia. –

+0

Il modo semplice è di introdurre token con badge neg o pos. Ad esempio: "pos I love my mom". In uscita ricevo qualcosa del tipo "se abbiamo amore e mamma nelle nostre sentinelle, allora il 70% che abbiamo il badge pos". Ovviamente possiamo modificare questo approccio per ottenere risultati migliori. – Neir0

4

Algoritmi come SVM, Naive Bayes e quelli di massima entropia sono algoritmi di apprendimento automatico supervisionati e l'output del programma dipende dal set di allenamento fornito. Per l'analisi del sentimento su larga scala preferisco usare un metodo di apprendimento senza supervisione in cui è possibile determinare i sentimenti degli aggettivi raggruppando i documenti in parti orientate allo stesso e etichettando i cluster positivi o negativi. Maggiori informazioni possono essere trovate da questo articolo. http://icwsm.org/papers/3--Godbole-Srinivasaiah-Skiena.pdf

Spero che questo ti aiuta nel tuo lavoro :)

0

Potete trovare qualche materiale utile su Sentimnetal analysis using python. Questa presentazione riassume Sentiment Analysis come 3 semplici passi

  • dati etichettatura
  • Preprocessing &
  • Learning Modello
0

Sentiment Analysis è un'area di ricerca in corso. E ci sono molte ricerche in corso adesso. Per una panoramica degli approcci più recenti e di maggior successo, ti consiglio generalmente di dare un'occhiata alle attività condivise di SemEval. Di solito, ogni anno eseguono una competizione su Sentiment Analysis su Twitter.È possibile trovare il documento che descrive il compito, ed i risultati per il 2016 qui (potrebbe essere un po 'tecnico però): http://alt.qcri.org/semeval2016/task4/data/uploads/semeval2016_task4_report.pdf

Partendo da lì, si può avere uno sguardo sui giornali che descrivono i singoli sistemi (in quanto vi si fa riferimento) .

Problemi correlati