0
An´alisis de Sentimientos sobre un
Corpus en Espa˜nol
Experimentaci´on con un Caso de Estudio
Luciana Dubiau
ldubiau@fi.uba...
Introducci´on
An´alisis de Sentimientos
• Tambi´en llamado Extracci´on de Opiniones, Miner´ıa de
Opiniones, Miner´ıa de Se...
Introducci´on
Ejemplo: Cr´ıtica sobre Restaurante
“Me gusta mucho este restaurante. La comida es fresca y se nota que hay
...
Introducci´on
¿Qu´e tipo de informaci´on puede
obtenerse?
• Polaridad de sentimientos en cr´ıticas sobre
arte, productos, ...
Introducci´on
Tareas de An´alisis de Sentimientos
• Clasificaci´on Binaria: polaridad general del documento
positiva o nega...
Resumen
¿En qu´e consiste este trabajo?
• Investigaci´on, evaluaci´on y comparaci´on experimental de
t´ecnicas de PLN para...
T´ecnicas de Clasificaci´on
T´ecnicas de Machine Learning - Aprendizaje Supervisado
• Na¨ıve Bayes
Se basa en el teorema d...
T´ecnicas de Clasificaci´on
T´ecnicas de Machine Learning - Aprendizaje Supervisado
• Support Vector Machines (SVM)
El ent...
T´ecnicas de Clasificaci´on
Clasificaci´on No Supervisada o Semi-Supervisada
• Algoritmo de Turney
1 Se extraen los bigrama...
T´ecnicas de Preprocesamiento de Texto
Preprocesamientos con los que experimentamos en este trabajo:
• Tokenizaci´on
Separ...
Implementaci´on y Herramientas
Se desarroll´o una herramienta en lenguaje Python para
clasificaci´on autom´atica de textos ...
Implementaci´on y Herramientas
Herramientas Externas
Seleccionadas en base a la precisi´on de los resultados y velocidad d...
Implementaci´on y Herramientas
Adaptaci´on del Algoritmo de Turney al Idioma Espa˜nol
• El operador NEAR se defini´o como l...
Caso de Estudio
Gu´ıa ´Oleo
http://guiaoleo.com
• Sitio de cr´ıtica
gastron´omica
• Los usuarios
emiten opiniones
sobre re...
Caso de Estudio
Construcci´on del Corpus
1 Se extrajeron los comentarios del sitio en estudio junto
con el puntaje asignad...
Experimentaci´on
Experiencias Realizadas
• Mejora de performance aplicando preprocesamientos de texto.
• Performance de cl...
Experimentaci´on
Efectividad de Preprocesadores: Tama˜no m´aximo de Corpus,
Unigramas como Features y Algoritmo Na¨ıve Bay...
Experimentaci´on
Efectividad de PreprocesadoresSW
NEG
WL
DC
STEM
LC
PUNCT
SC
LEMMA
COMB1COMB2COMB3COMB4COMB5COMB6COMB7COMB...
Experimentaci´on
Efectividad de Clasificadores Supervisados por Algoritmo
0 5000 10000 15000 20000
0.75
0.8
0.85
0.9
0.95
T...
Experimentaci´on
Efectividad de Clasificadores Supervisados por Atributo
0 5000 10000 15000 20000
0.7
0.8
0.9
Tama˜no del C...
Experimentaci´on
Comparaci´on de Clasificadores Supervisados y No Supervisados
para M´aximo Tama˜no de Corpus
Na¨ıve Bayes ...
Experimentaci´on
Efectividad de Clasificadores - An´alisis de Resultados
• Na¨ıve Bayes arroja los mejores resultados para ...
Conclusiones y Trabajo Futuro
Conclusiones
• Analizamos el impacto en la performance de los clasificadores
ante la variaci´...
¿Preguntas?
“There’s no right,
there’s no wrong,
there’s only popular opinion.”
(Twelve Monkeys, 2005)
Upcoming SlideShare
Loading in...5
×

Presentación ASAI 2013 - Análisis de Sentimientos sobre un Corpus en Español - 42 JAIIO

578

Published on

Published in: Technology
2 Comments
2 Likes
Statistics
Notes
  • Hola! sí, el código está en https://github.com/ldubiau/sentiment_classifier
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • se pude tener un ejemplo del software?? donde puedo descargar ejemplos con el idioma español??
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
578
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
25
Comments
2
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Presentación ASAI 2013 - Análisis de Sentimientos sobre un Corpus en Español - 42 JAIIO"

  1. 1. An´alisis de Sentimientos sobre un Corpus en Espa˜nol Experimentaci´on con un Caso de Estudio Luciana Dubiau ldubiau@fi.uba.ar Juan M Ale ale@acm.org Facultad de Ingenier´ıa Universidad de Buenos Aires ASAI 2013 - 42 JAIIO
  2. 2. Introducci´on An´alisis de Sentimientos • Tambi´en llamado Extracci´on de Opiniones, Miner´ıa de Opiniones, Miner´ıa de Sentimientos o An´alisis Subjetivo. • Definici´on Estudio computacional de opiniones, sentimientos y emociones expresadas en textos (Pang and Lee, 2008). • Objetivo Determinar la actitud de un escritor ante determinados productos, situaciones, personas u organizaciones. • Componentes de Opini´on (Liu, 2010) • Target: objeto de opini´on. • Features: aspectos o atributos que generan opini´on. • Holder: quien expresa la opini´on. • Orientaci´on Sem´antica: positiva, negativa, neutra. • Tiempo: momento en que se expresa la opini´on.
  3. 3. Introducci´on Ejemplo: Cr´ıtica sobre Restaurante “Me gusta mucho este restaurante. La comida es fresca y se nota que hay rotaci´on continua. El ambiente es bastante ruidoso pero los mozos son muy amables y los precios muy accesibles.” • Target: restaurante • Features: comida, ambiente, mozos, precios • Polaridad de la opini´on: • me gusta mucho este restaurante • comida fresca • ambiente bastante ruidoso • mozos muy amables • precios muy accesibles • Polaridad general del documento: positiva • Holder: autor del comentario • Tiempo: fecha del comentario
  4. 4. Introducci´on ¿Qu´e tipo de informaci´on puede obtenerse? • Polaridad de sentimientos en cr´ıticas sobre arte, productos, servicios o personas • Nivel de fidelizaci´on de clientes • Opini´on p´ublica sobre situaciones de inter´es social • Popularidad de representantes pol´ıticos y predicci´on sobre resultados de elecciones • Tendencias de mercado Ejemplos de Aplicaciones • http://sentione.pl/ • http://www.sentiment140.com/ • http://socialmention.com/ • http://www.tweetfeel.com/ • http://7puentes.com/en/products/ventura/
  5. 5. Introducci´on Tareas de An´alisis de Sentimientos • Clasificaci´on Binaria: polaridad general del documento positiva o negativa • Clasificaci´on en M´ultiples Categor´ıas: grado de polaridad del documento en una escala. • Clasificaci´on de Aspectos: identificaci´on de aspectos mencionados en el texto y emociones asociadas. Ejemplo: • Comida: positiva • Ambiente: negativa • Servicio: positiva En este trabajo nos enfocaremos en clasificaci´on binaria a nivel de documento.
  6. 6. Resumen ¿En qu´e consiste este trabajo? • Investigaci´on, evaluaci´on y comparaci´on experimental de t´ecnicas de PLN para an´alisis de informaci´on subjetiva en idioma espa˜nol. • Se implement´o una herramienta de an´alisis de sentimientos que provee m´etricas sobre performance de modelos de clasificaci´on en funci´on distintos par´ametros de entrada. • Como corpus de datos se utiliz´o un sitio de cr´ıtica gastron´omica. Principales contribuciones • Proveer un an´alisis de performance de t´ecnicas de clasificaci´on subjetiva de textos en funci´on de distintos par´ametros para el idioma espa˜nol. • Aportar el corpus construido como un recurso ling¨u´ıstico.
  7. 7. T´ecnicas de Clasificaci´on T´ecnicas de Machine Learning - Aprendizaje Supervisado • Na¨ıve Bayes Se basa en el teorema de Bayes y en la premisa de independencia de los atributos para obtener la probabilidad de que un documento pertenezca a una clase. P(Ci|D) ∝ P(Ci) n k=1 P(fk|Ci) • Modelos de M´axima Entrop´ıa (MaxEnt) Los documentos son descriptos a partir de una lista de atributos, siendo cada uno una restricci´on del modelo. El m´etodo se basa en seleccionar la distribuci´on de probabilidad que satisfaga todas las restricciones del modelo y maximice la entrop´ıa. P(c|x) = exp( N i=0 wcifi) c ∈C exp( N i=0 wc ifi)
  8. 8. T´ecnicas de Clasificaci´on T´ecnicas de Machine Learning - Aprendizaje Supervisado • Support Vector Machines (SVM) El entrenamiento consiste en encontrar un hiperplano que separe los vectores de atributos que representan los documentos siendo esta separaci´on la m´as grande posible. Support Vectors: definen los m´argenes de la m´axima separaci´on entre las clases. f(x) = sign( i αixi · x + b) • ´Arboles de Decisi´on El entrenamiento consiste en la construcci´on de un ´arbol de decisi´on de m´ultiples caminos en el que para cada nodo se busca el atributo que provee mayor ganancia de informaci´on para la clase → Reglas de Decisi´on contiene(‘excelente’) contiene(‘comida’) contiene(‘malo’) POS 0.6 NEG 0.8 si no contiene(‘fria’) POS 0.6 NEG 0.7 si no si no POS 0.9 si no
  9. 9. T´ecnicas de Clasificaci´on Clasificaci´on No Supervisada o Semi-Supervisada • Algoritmo de Turney 1 Se extraen los bigramas del documento que cumplen con determinados patrones de opini´on. 2 Se calcula la distancia sem´antica de estos bigramas a los t´erminos “poor” y “excellent”: SO(phrase) = log2[hits(phrase NEAR “excellent”)hits(“poor”) hits(phrase NEAR “poor”)hits(“excellent”) ] 3 Si SO > 0 → positivo , sino → negativo
  10. 10. T´ecnicas de Preprocesamiento de Texto Preprocesamientos con los que experimentamos en este trabajo: • Tokenizaci´on Separaci´on de oraciones, palabras y signos de puntuaci´on. • Stemming Se reemplazan los t´erminos por su ra´ız o stem eliminando terminaciones. Ejemplo: stem(“recomendable”) = stem(“recomendamos”) = stem(“recomendar”) = “recomend” • Lematizaci´on Se reemplazan los t´erminos por su lema que es la representaci´on de todas las formas flexionadas de la palabra. Ejemplo: lema(“p´esimo”) = malo, lema(“buen´ısimo”) = bueno, lema(“empieza”) = empezar. • Eliminaci´on de stopwords “de”, “la”, “el”, “que”, etc. • Eliminaci´on de signos de puntuaci´on, caracteres especiales y caracteres repetidos m´as de N veces. • Filtrado de Palabras por m´ınimo de longitud. • Transformaci´on a min´uscula. • Tratamiento de Negaciones Se agrega el prefijo “NOT ” a los t´erminos que siguen a una negaci´on hasta el siguiente signo de puntuaci´on.
  11. 11. Implementaci´on y Herramientas Se desarroll´o una herramienta en lenguaje Python para clasificaci´on autom´atica de textos seg´un polaridad de sentimientos que se ejecuta en funci´on de los siguientes par´ametros: • Algoritmos de clasificaci´on: Na¨ıve Bayes, MaxEnt, SVM, Decision Trees y adaptaci´on del algoritmo de Turney. • Tama˜no de Corpus • Tipos de atributos extra´ıdos: • Presencia de Unigramas • Frecuencia de Unigramas • Presencia de Bigramas • Presencia de Unigramas + Bigramas • Presencia de Adjetivos • Preprocesamientos de Texto
  12. 12. Implementaci´on y Herramientas Herramientas Externas Seleccionadas en base a la precisi´on de los resultados y velocidad de convergencia. • Na¨ıve Bayes → NLTK http://nltk.org • C´alculo de pesos en modelos de M´axima Entrop´ıa → megam http://www.umiacs.umd.edu/~hal/megam/ • SVM y Decision Trees (CART) → sci-kit learn http://scikit-learn.org/ • Lematizaci´on, Stemming y POS Tagging → Freeling http://nlp.lsi.upc.edu/freeling/
  13. 13. Implementaci´on y Herramientas Adaptaci´on del Algoritmo de Turney al Idioma Espa˜nol • El operador NEAR se defini´o como la ocurrencia conjunta de los t´erminos en la misma oraci´on. • Patrones de opini´on: Primera Palabra Segunda Palabra Tercera Palabra (No Extra´ıda) Adjetivo Nombre Cualquiera Nombre Adjetivo No Nombre Adverbio Adjetivo No Nombre Adverbio Verbo Cualquiera Verbo Adverbio Cualquiera • T´erminos utilizados para representar polaridad: • Positivos: excelente, excelentes, bueno/a, buenos/as, buenisimo/a, buenisimos/as, rico/a, ricos/as, espectacular, genial. • Negativos: mal, malo/a, malos/as, feo/a, feos/as, horrible, horribles, pesimo/a, pesimos/as, desastre, mediocre.
  14. 14. Caso de Estudio Gu´ıa ´Oleo http://guiaoleo.com • Sitio de cr´ıtica gastron´omica • Los usuarios emiten opiniones sobre restaurantes en las categor´ıas: comida, ambiente y servicio asignando puntajes: 1 → malo / regular 2 → bueno 3 → muy bueno 4 → excelente
  15. 15. Caso de Estudio Construcci´on del Corpus 1 Se extrajeron los comentarios del sitio en estudio junto con el puntaje asignado por el usuario. 2 Se etiquet´o el set de datos a partir del siguiente criterio: • Suma de puntos ≥ 10 → POSITIVO • 1 punto en la categor´ıa “comida” (la m´as relevante) o 2 puntos en esta categor´ıa y 1 punto en el resto → NEGATIVO • El resto de los comentarios se descartaron 3 El dataset final incluye un total de 34808 comentarios positivos y 16912 negativos.
  16. 16. Experimentaci´on Experiencias Realizadas • Mejora de performance aplicando preprocesamientos de texto. • Performance de clasificadores en funci´on de distintos par´ametros. Par´ametros Generales • Tama˜no de Corpus entre 500 y 22000 documentos • Corpus Balanceado • 5-fold cross validation para m´etodos supervisados. • Criterio para la extracci´on de features: • Unigramas → frecuencia mayor a 10. • Adjetivos y Bigramas → frecuencia mayor a 4. • M´aximo de 3000 atributos. M´etricas Accuracy = tp+tn tp+fp+tn+fn ; Precision = tp tp+fp ; Recall = tp tp+fn ; F1 = 2P R P +R Por ser un corpus balanceado analizamos la performance en base a la accuracy sin perder informaci´on de alguna de las clases.
  17. 17. Experimentaci´on Efectividad de Preprocesadores: Tama˜no m´aximo de Corpus, Unigramas como Features y Algoritmo Na¨ıve Bayes Preproceso Accuracy Mejora (%) NP (Sin Preproceso) 0.868 SW (Eliminaci´on de stopwords) 0.895 3.11% NEG (Tratamiento de negaciones) 0.875 0.81% WL (Filtrado de palabras de menos de 3 caracteres) 0.883 1.73% DC (Eliminaci´on de caracteres repetidos m´as de 2 veces) 0.867 -0.12% STEM (Stemming) 0.861 -0.81% LC (Transformaci´on de capitalizaciones) 0.868 0.00% PUNCT (Eliminaci´on de signos de puntuaci´on) 0.871 0.35% SC (Transformaci´on de caracteres especiales) 0.869 0.12% LEMMA (Lematizaci´on) 0.867 -0.12% Combinaci´on 1: SW + NEG 0.905 4.26% Combinaci´on 2: SW + NEG + WL 0.911 4.95% Combinaci´on 3: SW + NEG + WL + PUNCT 0.914 5.3% Combinaci´on 4: SW + NEG + WL + PUNCT + SC 0.918 5.76% Combinaci´on 5: SW + NEG + WL + PUNCT + SC + LC 0.924 6.45% Combinaci´on 6: SW + NEG + WL + PUNCT + SC + LC + LEMMA 0.92 5.99% Combinaci´on 7: SW + NEG + WL + PUNCT + SC + LC + DC 0.924 6.45% Combinaci´on 8: SW + NEG + WL + PUNCT + SC + LC + STEM 0.918 5.76%
  18. 18. Experimentaci´on Efectividad de PreprocesadoresSW NEG WL DC STEM LC PUNCT SC LEMMA COMB1COMB2COMB3COMB4COMB5COMB6COMB7COMB8 −2 0 2 4 6 8 3.11% 0.81% 1.73% −0.12% −0.81% 0% 0.35% 0.12% −0.12% 4.26% 4.95% 5.3% 5.76% 6.45% 5.99% 6.45% 5.76% MejoradeAccuracy(%) An´alisis de Resultados • Hay preprocesamientos que aplicados en forma aislada no representan una mejora pero s´ı lo hacen en combinaci´on con otros (transformaci´on a min´uscula). • Contrario a lo que ocurre en tareas de IR, realizar stemming o lematizaci´on sobre el texto empeora los resultados. • La mejora que representa la combinaci´on de preprocesos resulta mayor que la suma de las mejoras individuales.
  19. 19. Experimentaci´on Efectividad de Clasificadores Supervisados por Algoritmo 0 5000 10000 15000 20000 0.75 0.8 0.85 0.9 0.95 Tama˜no del Corpus Accuracy (a) Presencia de Unigramas 0 5000 10000 15000 20000 0.75 0.8 0.85 0.9 0.95 Tama˜no del Corpus (b) Frecuencia de Unigramas 0 5000 10000 15000 20000 0.6 0.7 0.8 0.9 Tama˜no del Corpus (c) Bigramas 0 5000 10000 15000 20000 0.75 0.8 0.85 0.9 0.95 Tama˜no del Corpus Accuracy (d) Unigramas + Bigramas 0 5000 10000 15000 20000 0.8 0.85 0.9 Tama˜no del Corpus (d) Adjetivos Na¨ıve Bayes MaxEnt SVM Decision Trees
  20. 20. Experimentaci´on Efectividad de Clasificadores Supervisados por Atributo 0 5000 10000 15000 20000 0.7 0.8 0.9 Tama˜no del Corpus Accuracy (a) Na¨ıve Bayes (NLTK) 0 5000 10000 15000 20000 0.7 0.8 0.9 Tama˜no del Corpus (b) MaxEnt (megam) 0 5000 10000 15000 20000 0.7 0.8 0.9 Tama˜no del Corpus Accuracy (c) SVM (sci-kit learn) 0 5000 10000 15000 20000 0.6 0.7 0.8 0.9 Tama˜no del Corpus (d) Decision Trees (sci-kit learn) Presencia de Unigramas Frecuencia de Unigramas Presencia de Bigramas Presencia de Unigramas y Bigramas Presencia de Adjetivos
  21. 21. Experimentaci´on Comparaci´on de Clasificadores Supervisados y No Supervisados para M´aximo Tama˜no de Corpus Na¨ıve Bayes MaxEnt SVM DecisionTrees Turney 0.6 0.7 0.8 0.9 1 0.92 0.94 0.94 0.88 0.92 0.94 0.95 0.88 0.88 0.84 0.86 0.8 0.94 0.95 0.95 0.88 0.91 0.88 0.9 0.85 0.84 Accuracy Presencia de Unigramas Frecuencia de Unigramas Presencia de Bigramas Presencia de Unigramas y Bigramas Presencia de Adjetivos Patrones de Opini´on
  22. 22. Experimentaci´on Efectividad de Clasificadores - An´alisis de Resultados • Na¨ıve Bayes arroja los mejores resultados para corpus peque˜nos pero su performance decrece levemente para los tama˜nos de corpus m´as grandes. • MaxEnt y SVM mejoran su performance a medida que crece el tama˜no de corpus y alcanzan la m´axima performance de la experiencia. • Como ya se conoce la performance de Decision Trees es notablemente peor que la obtenida con los otros modelos. • Para todos los clasificadores supervisados los mejores resultados se obtienen utilizando como atributos la combinaci´on de presencia de unigramas y bigramas. • Utilizar adjetivos como atributos arroja resultados considerablemente peores que utilizando todos los unigramas. • Al igual que para el idioma ingl´es (Pang and Lee, 2002) considerar frecuencia de unigramas como atributos no representa una mejora notable con respecto a presencia. • El algoritmo de Turney arroja muy buenos resultados comparables a los obtenidos para m´etodos supervisados usando bigramas como atributos considerando que no requiere un corpus etiquetado para el entrenamiento.
  23. 23. Conclusiones y Trabajo Futuro Conclusiones • Analizamos el impacto en la performance de los clasificadores ante la variaci´on de par´ametros de entrada para un corpus en espa˜nol. • Hallamos que aplicar preprocesamientos influye considerablemente en los resultados. • Alcanzamos la m´axima precisi´on utilizando MaxEnt y SVM para corpus grandes y Na¨ıve Bayes para corpus m´as peque˜nos. • Mostramos que Turney tambi´en resulta una opci´on adecuada para el idioma espa˜nol cuando no se tiene un corpus etiquetado y puede refinarse para un dominio espec´ıfico. Pr´oximos Pasos • Evaluar la performance de los modelos en estudio cuando se entrena con el corpus propuesto y se clasifica otro dominio. • Realizar experiencias para corpus desbalanceados. • Proponer otros preprocesamientos y tipos de atributos que permitan mejorar los resultados y generalizar los clasificadores.
  24. 24. ¿Preguntas? “There’s no right, there’s no wrong, there’s only popular opinion.” (Twelve Monkeys, 2005)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×