Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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

990 views

Published on

Published in: Technology
  • 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

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)

×