Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Presentación ASAI 2013 - Análisis de Sentimientos sobre un Corpus en Español - 42 JAIIO
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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%
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. 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. 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. 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. 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.