Академический Документы
Профессиональный Документы
Культура Документы
Facultad de Ingeniera
Universidad de Buenos Aires
Octubre 2013
Theres no right,
theres no wrong,
theres only popular opinion.
Twelve Monkeys, 1995
Resumen
La tarea conocida como An
alisis de Sentimientos, dentro del area de estudio del
Procesamiento de Lenguaje Natural, consiste en la identificacion y extraccion
de opiniones emitidas en textos con el objetivo de clasificarlos, mediante
procesamiento computacional, seg
un la polaridad de las emociones que expresan
sobre determinados objetos, situaciones o personas.
La explotaci
on de informaci
on subjetiva es una tarea que ha adquirido gran
interes en el u
ltimo tiempo por su potencialidad de aplicacion y por la gran
cantidad de opiniones no estructuradas que se encuentran disponibles en los
distintos medios sociales y que no son analizadas automaticamente. Por ejemplo,
resulta interesante para las empresas conocer la opinion de sus clientes sobre sus
productos; para los clientes conocer la opinion de otros compradores sobre un
producto que desean adquirir; para la sociedad conocer la opinion p
ublica sobre
situaciones de actualidad; etc. Esta informacion puede obtenerse aplicando
tecnicas de An
alisis de Sentimientos y sin necesidad de analizar manualmente
las grandes cantidades de resultados que retornan los motores de b
usqueda.
En esta tesis se presenta la investigacion, analisis, evaluacion y comparacion
experimental de tecnicas de Procesamiento de Lenguaje Natural para analisis
de informaci
on subjetiva como opiniones, sentimientos y emociones en textos
no estructurados.
Para validar la investigaci
on presentada hemos desarrollado una herramienta de
An
alisis de Sentimientos para textos en idioma espa
nol que tiene como objetivo
clasificar documentos autom
aticamente seg
un polaridad de emociones (positivos
o negativos) y provee las metricas necesarias para evaluar la performance de los
distintos modelos de clasificacion.
En la etapa de experimentacion utilizamos la herramienta desarrollada y
dos sitios de crtica online como casos de estudio y los clasificamos en
funci
on de par
ametros de entrada como tama
no de corpus, tipos de atributos
extrados, preprocesamientos aplicados, algoritmo de clasificacion, proporcion
de documentos de cada clase y conjunto de datos de entrenamiento. Luego,
definimos un criterio de evaluacion y analizamos los resultados obtenidos
utilizando cada tecnica estudiada en los distintos escenarios.
Palabras Clave: procesamiento de lenguaje natural, analisis de sentimientos,
minera de opiniones, extraccion de opiniones, analisis subjetivo, minera de
sentimientos.
Abstract
The task known as Sentiment Analysis, as part of the study area of Natural
Language Processing, consists of the identification and extraction of opinions
issued in texts in order to classify them using computational processing by means
of the polarity of emotions expressed about objects, situations or persons.
II
Subjective information mining is a task that has acquired much interest in recent
times because of its application potential and the vast number of unstructured
opinions available in social media which are not automatically analyzed. For
example, companies find interesting to know their customers opinions, as well
as customers seek for other customers experiences before buying a product,
and even the society expects to know the public opinion on emerging issues.
This information can be obtained using Sentiment Analysis techniques, avoiding
manual analysis of large number of results from search engines.
This work presents the research, analysis, evaluation and experimental
comparison of Natural Language Processing techniques applied to the analysis
of subjective information such as opinions, sentiments and emotions expressed
in unstructured texts.
In order to validate our research we have developed a Sentiment Analysis tool for
Spanish language texts that aims to classify documents automatically, according
to sentiment polarity (positive or negative). The tool also provides metrics to
evaluate the performance of the classification models.
In the experimentation phase we used the mentioned Sentiment Analysis tool
and two review sites as study cases and we classified them based on parameters
such as corpus size, type of extracted features, preprocessing techniques,
classification algorithms, proportions of documents of each class and training
data set. Then we defined an evaluation criterion and we compared the results
using each studied technique in different scenarios.
Keywords: natural language processing, sentiment analysis, opinion mining,
opinion extraction, subjectivity analysis, sentiment mining.
III
Agradecimientos
Gracias infinitas a mis padres, Alicia y Federico y a mis hermanas Sil y Vero por
confiar en m siempre y por hacer esto posible. Gracias a mi amor, Alejandro,
por su invaluable ayuda emocional y tecnica. Gracias a toda mi familia y a mis
amigas por estar siempre presentes. Gracias al director de esta Tesis, Dr. Juan
M. Ale y a todos los profesores y gente maravillosa que conoc en mi paso por
esta casa de estudios.
IV
Indice General
Resumen
II
Agradecimientos
IV
Indice General
Indice de Figuras
VIII
Indice de Tablas
XII
1 Introducci
on
1.1 Objetivo . . . . . . . . . . .
1.2 Definici
on del Problema . .
1.3 Interes del Problema . . . .
1.4 Contribuciones de esta Tesis
1.5 Organizaci
on de esta Tesis .
1.6 Antecedentes del Autor . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
5
5
6
6
8
8
9
10
10
11
12
14
15
15
16
16
17
19
20
26
31
32
34
36
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
41
42
47
47
3 Desarrollo de la Herramienta de An
alisis de Sentimientos
3.1 An
alisis del Problema . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Proceso de Clasificacion Supervisado . . . . . . . . . .
3.1.2 Proceso de Clasificacion No Supervisado . . . . . . . .
3.1.3 Par
ametros de Clasificacion . . . . . . . . . . . . . . .
3.1.4 Evaluaci
on de Otros Modelos . . . . . . . . . . . . . .
3.2 Implementaci
on . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Proceso de Clasificacion . . . . . . . . . . . . . . . . .
3.2.2 Frameworks y Herramientas Externas . . . . . . . . .
3.2.3 Adaptaci
on del Algoritmo de Turney . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
52
53
55
56
56
59
61
62
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
64
64
66
68
68
69
71
77
79
83
85
2.4
2.3.12 Clasificaci
on de M
ultiples Aspectos
2.3.13 Combinaci
on de Clasificadores . .
2.3.14 Evaluaci
on de Clasificadores . . . .
Preparaci
on de los datos . . . . . . . . . .
2.4.1 Preprocesamiento . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
88
Referencias
92
Anexos
A C
odigo Fuente, Instalaci
on
Desarrollado
A.1 C
odigo Fuente . . . . . . . .
A.2 Instalaci
on de Software . . . .
A.3 Ejecuci
on de la Aplicacion . .
A.4 Formato de Resultados . . . .
y
.
.
.
.
.
.
.
.
Ejecuci
on
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
del
.
.
.
.
.
.
.
.
.
.
.
.
Software
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
B.1 Clasificaci
on Supervisada para Corpus Balanceado y un Unico
Dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.1.1 Nave Bayes . . . . . . . . . . . . . . . . . . . . . . . . . .
B.1.2 MaxEnt . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.1.3 SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.1.4 Decision Trees . . . . . . . . . . . . . . . . . . . . . . . .
B.2 Clasificaci
on No Supervisada para Corpus Balanceado . . . . . .
VI
93
93
93
94
96
98
98
98
101
103
106
108
B.3 Clasificaci
on
de Dominio
B.4 Clasificaci
on
B.5 Clasificaci
on
Indice Alfab
etico
116
VII
Indice de Figuras
1.1
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
Source-Channel Model . . . . . . . . . . . . . . . . .
Google Ngram Viewer . . . . . . . . . . . . . . . . .
Ejemplo Linear Regression . . . . . . . . . . . . . . .
Support Vector Machines . . . . . . . . . . . . . . .
Ejemplo Arbol
de Decision . . . . . . . . . . . . . .
Predicci
on de la Orientacion Semantica de Adjetivos:
Ejemplo Parsing . . . . . . . . . . . . . . . . . . . .
Combinaci
on de Clasificadores utilizando SVM . . .
10-Fold Cross-Validation . . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
Proceso de An
alisis de Sentimientos . . . . . . . . . . . . . .
Proceso de Clasificacion Supervisado . . . . . . . . . . . . . .
Proceso de Clasificacion No Supervisado o Semi-Supervisado
Jerarqua de Clasificadores . . . . . . . . . . . . . . . . . . . .
Jerarqua de Preprocesadores . . . . . . . . . . . . . . . . . .
Jerarqua de Feature Extractors . . . . . . . . . . . . . . . . .
Clasificaci
on Supervisada - Diagrama de Secuencia . . . . . .
Clasificaci
on No Supervisada - Diagrama de Secuencia . . . .
.
.
.
.
.
.
.
.
52
53
54
57
58
59
60
61
4.1
4.2
4.3
65
66
4.4
4.5
4.6
4.7
4.8
4.9
VIII
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
Clustering
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
2
9
15
28
31
33
38
40
41
47
71
73
74
75
77
78
79
IX
80
81
83
96
Indice de Tablas
1.1
1.2
3
3
2.1
25
27
35
42
43
44
44
3.1
62
22
23
24
4.1
69
70
72
75
76
76
78
80
82
86
XI
95
96
97
98
99
99
100
100
101
101
102
102
103
103
104
104
105
105
106
106
107
107
108
108
109
XII
109
110
110
111
111
112
112
113
113
114
114
115
115
Captulo 1
Introducci
on
En este captulo describimos el objetivo de esta tesis, definimos y presentamos
una introducci
on te
orica sobre el problema de Analisis de Sentimientos y por
u
ltimo explicamos las motivaciones y contribuciones de este trabajo.
1.1
Objetivo
1.2
Definici
on del Problema
CAPITULO 1. INTRODUCCION
Si bien el an
alisis computacional de sentimientos esta a
un lejos de poder utilizar
las teoras cognitivas de la emocion o el afecto para tomar decisiones, estas s
pueden ser muy u
tiles, por ejemplo, para identificar similitudes y contrastes
entre sentimientos o entender etiquetas naturales de los textos (Christopher
Potts, 2011), por lo que comenzaremos haciendo una breve introduccion al
concepto de estados afectivos y actitudes.
Los estados afectivos se dividen en: emocion, humor, posturas interpersonales,
actitudes y rasgos de la personalidad.
Los sentimientos son un subtipo de actitudes definidas como: relativamente
duraderas, creencias afectivas, preferencias y predisposiciones hacia objetos o
personas (Klaus R. Scherer, 1984).
A continuaci
on mostraremos el grafico de relacion de emociones de Plutchik que
define ocho emociones b
asicas y ocho emociones complejas con su composicion
y contraste.
Esta definici
on de emociones resulta de gran utilidad en la identificacion de
opiniones similares y opuestas en sistemas de analisis de sentimientos (ver
secci
on 2.3.10).
CAPITULO 1. INTRODUCCION
Emoci
on B
asica
Emoci
on Opuesta
Alegra
Tristeza
Confianza
Disgusto
Miedo
Ira
Sorpresa
Anticipacion
Emociones B
asicas
Sentimiento
Sentimiento Opuesto
Anticipaci
on + Alegra
Optimismo
Desaprobacion
Alegra + Confianza
Amor
Remordimiento
Confianza + Miedo
Sumision
Desprecio
Miedo + Sorpresa
Temor
Agresividad
Sorpresa + Tristeza
Desaprobacion
Optimismo
Tristeza + Disgusto
Remordimiento
Amor
Disgusto + Ira
Desprecio
Sumision
Ira + Anticipaci
on
Agresividad
Temor
En su enfoque m
as general, el analisis computacional de sentimientos consiste en
detectar estas emociones, quien las posee (holder); cual es el aspecto que genera
la emoci
on (target); cu
al es el tipo de emocion (me gusta, me encanta, lo valoro,
lo odio) o su polaridad (positiva, negativa, neutra); y cuales son las sentencias
que las contienen (Daniel Jurafsky and Christopher D. Manning, 2012).
El tipo de informaci
on que puede obtenerse utilizando sistemas de AS incluye:
Polaridad de sentimientos en crticas sobre arte, productos o servicios
Nivel de fidelizaci
on de clientes
Opini
on p
ublica sobre representantes polticos o situaciones de interes
social
Predicciones sobre resultados de elecciones
Tendencias de mercado
Existen distintas tareas que pueden realizarse en sistemas de AS: la tarea
m
as simple es la clasificaci
on binaria de la actitud de un texto, en positiva
o negativa (tambien puede existir el neutro); una tarea un poco mas compleja
3
CAPITULO 1. INTRODUCCION
es la clasificaci
on de un texto en m
ultiples categoras seg
un el grado de polaridad
de la actitud dentro de una escala; y la tarea mas avanzada es la identificacion
de los aspectos mencionados en un texto y sus sentimientos asociados.
Por ejemplo, consideremos la siguiente crtica de un restaurante extrada de
una gua gastron
omica online (www.guiaoleo.com):
Ejemplo 1.1. Enfoques en Tareas de An
alisis de Sentimientos
Me gusta mucho este restaurante para comer comida
arabe. 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.
El resultado de realizar an
alisis de sentimientos sobre el texto anterior, puede
ser alguno de los siguientes seg
un los enfoques antes mencionados:
1. Clasificaci
on Binaria: Positivo
2. Clasificaci
on en M
ultiples Categoras: Rating 4/5
3. Clasificaci
on de Aspectos: {Comida: Positivo, Ambiente: Negativo,
Servicio: Positivo, Precio: Positivo}
Algunas de las dificultades m
as importantes que se encuentran en sistemas de
AS (resueltas o en vas de investigacion) son:
Detecci
on de sarcasmo
Este restaurante es genial! si queres terminar hospitalizado...
Neologismos
Encontramos este lugar googleando
Lunfardo
La cuenta un poco salada, gastamos dos gambas por cabeza
Errores gramaticales y ortograficos
La c
omida muy cara para lo que es! Un salteado de lomo mas pareca un
salteado de papas.. Poca carne y un exagero de papas por 150 pesos!!!
Informalidad en textos
Maliiiiisimo este lugar no volvemos ni locossssss!
Procesamiento de hashtags y nombres en textos extrados de Twitter
Comiendo #ceviche en @sipanrestaurante, buensimo!
Procesamiento de emoticones
Todo perfecto hasta que lleg
o la cuenta :(
Capitalizaciones
Comimos en El Buen Gusto, el servicio es muy malo y la comida
regular.
CAPITULO 1. INTRODUCCION
1.3
Inter
es del Problema
El an
alisis de sentimientos es un area donde se han logrado grandes avances
pero que a
un no se encuentra completamente resuelta ni se utiliza con gran
efectividad en aplicaciones comerciales (Daniel Jurafsky and Christopher D.
Manning, 2012).
En la actualidad los motores de b
usqueda son absolutamente efectivos cuando se
trata de informaci
on objetiva, pero en cuanto a la informacion subjetiva a
un es
un tema pendiente la posibilidad de extraer la opinion p
ublica cuando se busca
un determinado tema.
La motivaci
on principal para la realizacion de esta tesis es la de poder investigar
los avances y las dificultades en el area de analisis y extraccion de opiniones
desestructuradas, por ser este uno de los grandes temas a resolver en materia
de recuperaci
on de informaci
on.
Para comprender la potencialidad y el interes en la investigacion de sistemas de
AS mencionaremos algunos datos estadsticos sobre como las opiniones online
de los consumidores impactan en el comportamiento de compra:
81% de los usuarios de Internet han hecho una investigacion sobre un
producto al menos una vez
20% lo hacen en un da tpico
sobre los lectores de crticas online de restaurantes, hoteles y servicios
varios (agencias de viaje o doctores), entre el 73% y el 87% reportan que
esas crticas han tenido una influencia significativa en sus compras
consumidores reportan estar dispuestos a pagar desde un 20% a un 99%
m
as por un producto clasificado como 5-estrellas que por uno clasificado
como 4-estrellas (La variacion se debe al tipo de artculo o servicio)
32% han clasificado un producto, servicio o persona a traves de un sistema
online de clasificaciones y un 30% han posteado un comentario online o
crtica sobre un producto o servicio.
Extrado de comScore/the Kelsey group. Online consumer-generated reviews
have significant impact on offline purchase behavior, Press Release, 2007 (Bo
Pang and Lilian Lee, 2008)
1.4
Las contribuciones m
as relevantes de esta tesis son:
1. Proveer un estudio sobre tecnicas, tendencias y dificultades actuales en
materia de clasificaci
on subjetiva de textos y tratamiento de opiniones y
sentimientos.
2. Elaborar una propuesta de metodo para analisis de opiniones en castellano.
5
CAPITULO 1. INTRODUCCION
3. Aportar resultados concretos basados en experiencias sobre la efectividad
de los algoritmos de clasificacion de textos.
4. Aportar metricas y comparaciones de los algoritmos implementados
usando como entrada textos en ingles y castellano y aplicando distintas
tecnicas de preprocesamiento.
5. Construir una herramienta de analisis de sentimientos que provee distintos
algoritmos de clasificaci
on, seleccion de atributos y preprocesamientos de
texto.
6. Aportar el corpus construido para este trabajo como recurso ling
ustico
en idioma espa
nol para otras experiencias.
1.5
Organizaci
on de esta Tesis
1.6
CAPITULO 1. INTRODUCCION
Inteligencia Artificial (ASAI) de las 42 Jornadas Argentinas de Informatica
(JAIIO) organizadas por la S.A.D.I.O.
Captulo 2
2.1
Definiciones
Documento
Llamamos documento a cada unidad de texto que conforma la coleccion de
datos. En sistemas de AS, un documento es un texto no estructurado compuesto
por un conjunto de sentencias o secuencia de palabras que expresan opiniones
y emociones.
Corpus
El corpus de datos est
a compuesto por el conjunto de documentos que se
utilizan como entrada para entrenar el sistema de AS (conjunto de datos
de entrenamiento) y por el conjunto de documentos que seran clasificados
utilizando el sistema de AS (conjunto de datos de prueba)1 .
L
exico de Opini
on
Es el conjunto de palabras, o vocabulario, que se utiliza para expresar opinion
en un idioma dado.
Feature
En este trabajo utilizaremos el termino feature para referirnos a caractersticas o
atributos de los documentos que nos permitan encontrar patrones para predecir
la positividad o negatividad de las opiniones expresadas en un texto.
1 Como se ver
a en pr
oximas secciones, esta distinci
on existir
a si el m
etodo de clasificaci
on
es supervisado, de otra forma existir
a exclusivamente el conjunto de datos a clasificar.
2.2
P (w1 w2 ..wi ) =
(2.1)
Por ejemplo,
2 Canal
2.2.1
Premisa de Markov
2.2.2
Modelos de N-Grama
Modelo de Unigrama
El modelo de Unigrama es el caso trivial de la premisa de Markov, es decir,
aproxima la probabilidad de una palabra con la probabilidad de ocurrencia de
esa palabra en el corpus de datos y sin tener en cuenta las palabras que la
preceden, es decir, considerando N = 0.
P (ojos | lo esencial es invisible a los) = P (ojos)
(2.2)
Modelo de Bigrama
El modelo de Bigrama utiliza la premisa de Markov para aproximar la
probabilidad de una palabra con la probabilidad de ocurrencia de esa palabra
dada la palabra anterior, es decir, considerando N = 1. Este modelo se conoce
tambien como Modelo de Markov de primer orden.
P (ojos | lo esencial es invisible a los) = P (ojos | los)
(2.3)
Modelo de Trigrama
El mismo modelo descripto para unigramas y bigramas puede utilizarse teniendo
en cuenta las dos palabras anteriores, es decir, considerando N = 2. Este modelo
se conoce tambien como Modelo de Trigrama o Modelo de Markov de segundo
orden.
P (ojos | lo esencial es invisible a los) = P (ojos | a los)
10
(2.4)
(2.5)
En la ecuaci
on 2.5, w1i1 representa la historia y wi la prediccion del modelo de
lenguaje.
2.2.3
PM LE (w1 ..wi ) =
C(w1 ..wi )
N
C(w1 ..wi )
C(w1 ..wi1 )
(2.6)
(2.7)
espa
nol es conocido como Estimador de M
axima Verosimilitud
11
2.2.4
Smoothing
P (wi |wi1 ) = P
(2.8)
Donde |V | es el n
umero de terminos del vocabulario del conjunto de datos.
Este mismo metodo puede generalizarse asumiendo que cada n-grama ocurre
veces m
as de las que ocurre realmente 6 y se conoce como Additive Smoothing.
i1
P (wi |wiN
+1 ) =
i
+ C(wiN
+1 )
P
i
|V | + wi C(wiN
+1 )
(2.9)
espa
nol, suavizar, alisar, unificar.
0<<1
6 Siendo
12
k
X
i (h)Pi (w|h)
(2.11)
i=1
Donde h, 0 i 1 y
i = 1.
i1
Pbo (wi |wiN
+1 ) =
i
C(wiN
+1 )
i
if C(wiN
+1 ) > 0
i1
C(wiN
+1 )
(2.12)
i1
Pbo (wi |wiN
+2 )
Pbo (wi ) =
C(wi )
N
otherwise
(2.13)
nr+1
nr
(2.14)
Siendo nr el n
umero de N-gramas que ocurren exactamente r veces en el corpus
de entrenamiento.
13
(2.15)
2.2.5
14
2.2.6
En las secciones que siguen veremos como se aplican los conceptos de modelado
de lenguaje estudiados en este captulo en algunos de los metodos probabilsticos
de clasificaci
on de textos que se utilizan actualmente en tareas de analisis de
sentimientos. Adem
as, las tecnicas de smoothing presentadas en este captulo
son utilizadas en los distintos metodos de clasificacion para el tratamiento de
casos que no ocurren en el conjunto de datos de entrenamiento.
2.3
Clasificaci
on de Textos
La utilizaci
on de tecnicas de procesamiento de lenguaje natural para clasificacion
de textos consiste principalmente en encontrar patrones y caractersticas del
lenguaje que permitan asignar una categora, etiqueta o clase a un documento.
La tarea m
as com
un es la clasificacion de documentos por topico a partir
de la extracci
on de informacion objetiva, como se realiza en sistemas de
Information Retrieval7 y Question Answering8 . Otras tareas que pueden
resolverse utilizando tecnicas de clasificacion de textos incluyen deteccion de
spam, identificaci
on del autor de un texto, identificacion de idioma, etc. En las
tareas mencionadas el objetivo consiste en predecir la clase de un documento,
por ejemplo, spam o no spam; autor A o autor B; documento relevante o
irrelevante para la b
usqueda por topico, etc.
7 En
8 En
espa
nol, Recuperaci
on de Informaci
on.
espa
nol, B
usqueda de Respuestas
15
2.3.1
Clasificaci
on basada en Reglas Ad-Hoc
El metodo de clasificaci
on mas simple consiste en escribir manualmente un
conjunto de reglas seg
un las cuales se predice la clase de un texto.
Por ejemplo, en sistemas de AS, el caso trivial sera seleccionar un conjunto
de palabras, sentencias o patrones9 ad-hoc que sugieran opiniones positivas o
negativas y realizar la clasificacion basada en la presencia o ausencia de estas
caractersticas en los documentos a analizar.
Si se refinan las reglas apropiadamente puede obtenerse buena precision en
la predicci
on, sin embargo, esta forma de clasificacion requiere de un gran
conocimiento del dominio, las reglas son muy difciles de mantener y poco
escalables (Daniel Jurafsky and Christopher D. Manning, 2012).
2.3.2
Clasificaci
on
Learning
utilizando
t
ecnicas
de
Machine
En esta secci
on presentaremos una breve introduccion al tema de Machine
Learning que nos permita comprender como esta tecnica es aplicada en
algoritmos de clasificaci
on de textos a partir de informacion subjetiva.
Se define Machine Learning, o Aprendizaje Autom
atico en espa
nol, como el
campo de estudio que le da a las computadoras la habilidad de aprender sin
haber sido explcitamente programadas10 (Arthur Samuel, 1959). Esto significa
que el programa debe aprender de la experiencia de realizar una determinada
tarea repetidas veces midiendo los resultados.
En el trabajo de Samuel se estudia el entrenamiento de un programa para jugar
ajedrez y se muestra como utilizando tecnicas de Machine Learning el sistema
aprende a jugar este juego mejor que su programador. A grandes rasgos,
el programa ejecuta un gran n
umero de partidas y registra que movimientos
producen mejores resultados, de esta forma, se dice que su comportamiento
depende del aprendizaje obtenido de la experiencia y no de la programacion
explcita.
Este mismo concepto es utilizado en sistemas de AS, donde el entrenamiento se
9 Estos
16
2.3.3
Selecci
on de Features
18
2.3.4
2.3.5
P (Ci )P (D|Ci )
P (D)
(2.17)
n
Y
P (fk |Ci )
(2.18)
k=1
n
Y
P (fk |Ci )
(2.19)
k=1
20
P (wi |Ci ) =
count(wi , Ci ) + 1
P
|V | + w count(w, Ci )
(2.20)
Donde, count(w
a la cantidad de veces que el termino wi aparece en
P i , Ci ) ser
la clase Ci y w count(w, Ci ) sera la sumatoria de frecuencias de aparicion de
cada termino en la clase Ci .
A continuaci
on veremos la implementacion de este algoritmo en lenguaje
Python.
Una consideraci
on importante a tener en cuenta en la implementacion de
algoritmos que calculan probabilidades es que conviene realizar los calculos en
forma logartmica porque las probabilidades suelen ser valores muy peque
nos y
al multiplicarlos podemos encontrarnos con un problema de precision. Por otro
lado, esta forma de c
alculo tiene la ventaja de que computacionalmente la suma
es menos costosa que la multiplicacion.
Algoritmo 2.1: Multinomial Nave Bayes
"""
* Entrenamos el clasificador agregando informacion de
* cada experiencia ( documento ) ,
* con sus atributos ( frecuencia de aparicion de unigramas )
* y el resultado conocido ( clase ).
"""
def add example ( s e l f , k l a s s , words ) :
s e l f . t o t a l d o c s += 1
if k l a s s not in s e l f . c l a s s e s :
s e l f . classes [ klass ] = dict ()
s e l f . c l a s s e s [ k l a s s ] [ words ] = c o l l e c t i o n s . d e f a u l t d i c t ( lambda : 0 )
s e l f . c l a s s e s [ k l a s s ] [ n_docs ] = 0
s e l f . c l a s s e s [ k l a s s ] [ n_words ] = 0
s e l f . c l a s s e s [ k l a s s ] [ n_docs ] += 1
for w in words :
s e l f . words . add (w)
s e l f . c l a s s e s [ k l a s s ] [ words ] [ w ] += 1
s e l f . c l a s s e s [ k l a s s ] [ n_words ] += 1
"""
* Clasificamos un documento desconocido a partir
* de sus atributos y
* retornamos la clase que maximice la probabilidad P(C|D)
"""
21
Texto
Clase
D1
POS
D2
POS
NEG
D4
NEG
22
Documento
Texto
Clase
D5
recomendable.
Tabla 2.2: Ejemplo Multinomial Nave Bayes - Conjunto de Datos de Prueba
P (CP OS |D5 )
P (CN EG |D5 )
P (CP OS ) = 0.5
P (CN EG ) = 0.5
Vocabulario = {la, comida, es, excelente, un, muy, buen, lugar, restaurante,
servicio, todo, recomendable, horrible, mala, el, regular}
|V | = 16
P
Pw count(w, CP OS ) = 17
w count(w, CN EG ) = 14
3+1
= 0.121
P (es|CP OS ) = 16+17
3+1
P (es|CN EG ) = 16+14
= 0.133
3+1
P (excelente|CP OS ) = 16+17
= 0.121
0+1
P (recomendable|CP OS ) =
1+1
16+17
= 0.06
23
0+1
16+14
= 0.033
1.4e9
1.05e10
Dado que P (CP OS |D5 ) > P (CN EG |D5 ), entonces asignaremos la clase P OS
al comentario D5 .
Como podemos observar, Nave Bayes resulta muy simple de implementar y
como mostraremos luego en nuestro caso de estudio, se pueden obtener muy
buenos resultados. Otra ventaja de este metodo es que el entrenamiento no
resulta tan costoso computacionalmente como ocurre con los metodos que
veremos en las secciones que siguen.
Binarized Multinomial Nave Bayes
En el modelo multinomial visto en la seccion anterior, considerabamos la
frecuencia de aparici
on de cada feature para la estimacion de P (fk |Ci). A
diferencia de este metodo, Nave Bayes puede ser implementado considerando
exclusivamente presencia o ausencia de features, es decir, asociandolos con un
valor booleano cuando se eval
ua un documento y descartando informacion de
frecuencia y posici
on (Daniel Jurafsky and Christopher D. Manning, 2012).
La implementaci
on de este metodo se realiza del mismo modo que en el caso de
Nave Bayes Multinomial pero se considera que cada termino aparece una u
nica
vez en cada documento.
Ejemplo 2.4. Clasificaci
on utilizando Binarized Multinomial Nave Bayes
En el siguiente ejemplo aplicaremos Binarized Multinomial Nave Bayes para
clasificar el conjunto de datos del ejemplo 2.3. Para esto, eliminaremos los
terminos duplicados de cada documento.
Documento
Texto
Clase
D1
La comida es excelente,
es un muy buen lugar.
((( servicio,
(
Excelente restaurante, excelente
POS
D2
POS
NEG
D4
NEG
24
Documento
Texto
Clase
D5
((( todo,
Es excelente la comida,
es (
excelente
recomendable.
La estimaci
on de probabilidades sera como se indica a continuacion:
P (CP OS |D5 )
P (CN EG |D5 )
P (CP OS ) = 0.5
P (CN EG ) = 0.5
Vocabulario = {la, comida, es, excelente, un, muy, buen, lugar, restaurante,
servicio, todo, recomendable, horrible, mala, el, regular}
|V | = 16
P
Pw count(w, CP OS ) = 15
w count(w, CN EG ) = 13
2+1
P (es|CP OS ) = 16+15
= 0.097
2+1
25
P (CP OS |D5 )
P (CN EG |D5 )
8.4e8
2.1e8
En este caso tambien se cumple que P (CP OS |D5 ) > P (CN EG |D5 ) por lo que
asignaremos la clase P OS al comentario D5 .
M
as adelante en este trabajo veremos como mejorar los resultados del
clasificador eliminando algunos features que no aportan informacion relevante
en tareas de AS.
Como ya se ha mostrado en trabajos previos (Bo Pang, Lillian Lee and
Shivakumar Vaithyanathan, 2002) y como comprobaremos luego en nuestro caso
de estudio, en tareas de AS, considerar presencia de terminos arroja mejores
resultados que considerar frecuencia, a diferencia de lo que ocurre en tareas de
clasificaci
on por t
opico.
Otra forma de aplicar Nave Bayes consiste en utilizar el modelo Multivariate
Bernoulli, pero ya se ha visto que no funciona bien en tareas de AS (Daniel
Jurafsky and Christopher D. Manning, 2012), por lo que no analizaremos este
modelo.
2.3.6
Modelo de M
axima Entropa (MaxEnt Model)
El modelo de M
axima Entropa, conocido tambien como Multinomial Logistic
Regression, es un metodo de clasificacion discriminativo y de aprendizaje
supervisado donde los documentos del conjunto de datos son descriptos a partir
de una lista de features, siendo cada uno de estos features una restriccion del
modelo. Este metodo se basa en seleccionar la distribucion de probabilidad que
satisfaga todas las restricciones del modelo y maximice la entropa. Esto apunta
a preservar la incertidumbre tanto como sea posible (Christopher D. Manning
and Hinrich Sch
utze, 1999).
Cada feature fi es una funci
on binaria que puede ser utilizada para caracterizar
una propiedad del par (~x, c) donde ~x es un vector que representa un documento
y c, la clase:
j pertenece a la clase c
fi (x~j , c) =
(2.21)
0 en otro caso
26
X
1
exp(
wi fi )
Z
i
(2.22)
cylinders
horsepower
weight
acceleration
car name
18
307
3504
12
15
350
3693
11.5
16
304
3433
12
17
302
3449
10.5
ford torino
15
429
4341
10
14
455
3086
10
21
200
2587
16
ford maverick
25
104
2375
17.5
saab 99e
26
121
2234
12.5
bmw 2002
21
199
2648
15
amc gremlin
A continuaci
on graficaremos el consumo de combustible en funcion del atributo
weight y la lnea de regresion que se ajusta mejor a las observaciones del
conjunto de datos:
12 En
espa
nol, Regresi
on Lineal.
estadstica, el t
ermino regression indica que el resultado es un valor perteneciente a
los n
umeros reales.
14 Muestra extra
da de http://archive.ics.uci.edu/ml/datasets/Auto+MPG
13 En
27
mpg
25
20
15
2500
3000
3500
4000
4500
weight
= w0 + w1 valorcylinders + w2 valorhorsepower +
w3 valorweight + w4 valoracc
M
as adelante en este captulo mencionaremos algunos algoritmos que pueden
utilizarse para el c
alculo de los pesos que ponderan los features en modelos de
m
axima entropa.
Generalizando lo anterior, la ecuacion del metodo de linear regression sera:
y=
N
X
wi fi
(2.23)
i=0
Logistic Regression
Hasta ahora vimos el metodo de regresion lineal donde el valor a predecir
perteneca a los n
umeros reales. Sin embargo, en las tareas de clasificacion
de textos que estamos estudiando, la prediccion toma un valor discreto, por
15 Cuando
usamos m
as de un feature el m
etodo se conoce como Multiple Linear Regression,
o en espa
nol, Regresi
on Lineal M
ultiple.
28
N
X
wi fi
(2.24)
i=0
p(x)
)
1 p(x)
(2.25)
Aplicando la funci
on logit al modelo lineal anterior, obtendremos:
ln(
p(y = true|x)
) = w fi
1 p(y = true|x)
(2.26)
(2.27)
El modelo que utiliza una funcion lineal para estimar la probabilidad utilizando
la funci
on logit se conoce como logistic regression (Daniel Jurafsky and James
H. Martin, 2009).
Clasificador utilizando un Modelo de M
axima Entropa
Generalizando el modelo de logistic regression obtenemos la siguiente ecuacion
para modelos de m
axima entropa:
P (c|x) = P
PN
exp( i=0 wci fi )
PN
0
c0 C exp(
i=0 wc i fi )
(2.28)
EN T
PN
wci fi )
PN
c0 C exp(
i=0 wci fi )
= arg max P
cC
29
exp(
i=0
(2.29)
e1
P (LOCALIDAD|en Argentina) =
P (V ERBO|en Argentina) =
30
e1
+ e2 e3 + e0 + e0
e1
e1
e2 e3
+ e2 e3 + e0 + e0
e0
+ e2 e3 + e0 + e0
e0
e1
e2 e3
+ e0 + e0
2.3.7
(2.30)
Siendo, w
~ el vector normal de pesos perpendicular al hiperplano; ~x el vector de
features; y b el termino independiente que nos permitira elegir entre todos los
16 En geometr
a un hiperplano es una divisi
on del espacio en dos partes. En R1 , ser
a un
punto que divide una recta; en R2 ser
a una recta que divide un plano; en R3 ser
a un plano
que divide el espacio. Esto mismo puede ser generalizado para espacios de m
as dimensiones.
31
(2.32)
support vectors
(2.33)
(2.34)
Siendo w,
~
w
~=
i x~i
Por lo tanto,
X
f (~x) = sign(
i x~i ~x + b)
(2.35)
En la ecuaci
on anterior, un valor de 1 indicara que el documento pertenece a
una clase y un valor de +1 a la otra, lo que representa de que lado del hiperplano
se encuentra el vector de features ~x que se quiere clasificar.
Una de las herramientas m
as utilizadas para la clasificacion de textos en
base a modelos de SVM es SV M light (Joachims, 1999). En nuestra seccion
de experimentaci
on utilizaremos la implementacion provista por el framework
Scikit-learn (Pedregosa et al., 2011) por los buenos resultados obtenidos y la
mejora en tiempos de procesamiento.
2.3.8
Decision Trees
32
si
0.9
contiene(comida)
POS
si
contiene(fria)
si
no
no
contiene(malo)
si
no
0.7
0.6
0.8
0.6
NEG
POS
NEG
POS
Dichotomiser 3
33
el Indice
de Gini como medida de la impureza que existe en los subconjuntos
de entrenamiento generados al dividir el arbol a partir de un atributo.
El framework Scikit-learn (Pedregosa et al., 2011) implementa una version
optimizada de este algoritmo que utilizaremos en nuestra seccion de
experimentaci
on.
2.3.9
Polaridad de Turney
34
Segunda Palabra
JJ
NN, NNS
cualquier palabra
JJ
JJ
JJ
NN, NNS
JJ
cualquier palabra
(2.36)
Siendo p(word1 & word2) la probabilidad de que las palabras ocurran juntas.
Luego, la orientaci
on sem
antica se calculara de la siguiente manera:
SO(phrase) = P M I(phrase, excellent) P M I(phrase, poor)
(2.37)
35
(2.38)
Por u
ltimo la clasificaci
on de un documento como recomendable o no
recomendable se realizar
a a partir del calculo de la orientacion semantica
promedio de todas las frases extradas del documento.
Ejemplo 2.7. Algoritmo de Turney
En este ejemplo aplicaremos el algoritmo de Turney con algunas adaptaciones
para un corpus en espa
nol. Consideraremos los terminos excelente como
referencia de polaridad positiva y los terminos mal, malo, mala como
referencia negativa y estimaremos el operador NEAR a partir de la ocurrencia
conjunta de palabras en la misma sentencia:
Consideremos las frases buena comida y comida fria para el calculo de
orientaci
on sem
antica:
count(buena comida) = 809
count(excelente) = 14749
count(mal/o/a) = 5847
count(buena comida N EAR excelente) = 264
count(buena comida N EAR mal/o/a) = 29
SO(buena comida)
= log2 [ hits(buena
hits(buena
=
2645847
2914749
1.85
count(comida f ria) = 69
count(excelente) = 14749
count(mal/o/a) = 5847
count(comida f ria N EAR excelente) = 4
count(comida f ria N EAR mal/o/a) = 26
SO(comida f ria)
= log2 [ hits(comida
hits(comida
45847
= log2 [ 2614749
]
= 4.03
2.3.10
Clasificaci
on basada en L
exico de Opini
on
37
pesimo
excelente
perfecto
bueno
malo
feo
justo
2.3.11
Clasificaci
on basada en Puntaje
2.3.12
Clasificaci
on de M
ultiples Aspectos
39
func: subj
func: modnomatch
func: att
func: att
synt: sn
synt: sn
synt: s-adj
synt: coor-n
form: comida
form: ambiente
form: ruidoso
form: pero
lemma: comida
lemma: ambiente
lemma: ruidoso
lemma: pero
tag: NCFS000
tag: NCMS000
tag: AQ0MS0
tag: CC
func: adj-mod
func: term
func: espec
func: espec
func: co-n
synt: s-a-fs
synt: Fc
synt: espec-ms
synt: sadv
synt: sn
form: excelente
form: ,
form: el
form: bastante
form: precios
lemma: excelente
lemma: ,
lemma: el
lemma: bastante
lemma: precio
tag: Fc
tag: DA0MS0
tag: RG
tag: NCMP000
tag: AQ0CS0
func: espec
func: adj-mod
synt: espec-mp
synt: s-a-mp
form: los
form: accesibles
lemma: el
lemma: accesible
tag: DA0MP0
tag: AQ0CP0
40
semilla y t
opicos fijos para el dominio en cuestion. Este
enfoque gua el
aprendizaje hacia t
opicos especficos de los aspectos seleccionados por lo que se
obtienen mejores resultados.
2.3.13
Combinaci
on de Clasificadores
Clasificadores
Simples:
Nave Bayes
SVM
MaxEnt
Otros
classify
train
Training Data
SVM
Features: votos
de clasificadores
simples.
votos
Test Data
Resultados
classify
2.3.14
Evaluaci
on de Clasificadores
En esta secci
on analizaremos las distintas metricas que se utilizan para evaluar
los resultados del clasificador y obtener una medida de su eficiencia. Ademas,
presentaremos las distintas tecnicas que se utilizan en metodos supervisados
para evaluar los clasificadores de manera confiable en funcion de los datos que
se utilizan para el entrenamiento y las metricas presentadas.
M
etricas
Dependiendo de la tarea de procesamiento de lenguaje que se este desarrollando
podr
a variar el significado o el sentido que se le da a cada medicion pero siempre
se considerar
an los siguientes casos:
Verdaderos Positivos, llamados True Positives (tp ): elementos a los que el
clasificador asign
o la clase relevante y esta era correcta.
Falsos Positivos, llamados False Positives (fp ): elementos a los que el
clasificador asign
o la clase relevante y esta no era correcta.
Falsos Negativos, llamados False Negatives (fn ): elementos a los que el
clasificador asign
o la clase no-relevante y esta no era correcta.
Verdaderos Negativos, llamados True Negatives(tn ): elementos a los que
el clasificador asign
o la clase no-relevante y esta era correcta.
Por ejemplo, en tareas de recuperacion de textos, las medidas anteriores tendran
el siguiente significado: documentos que fueron seleccionados por el clasificador
y eran relevantes a la b
usqueda (tp ); documentos que fueron seleccionados y no
eran relevantes a la b
usqueda (fp ); documentos que no fueron seleccionados y s
eran relevantes a la b
usqueda (fn ); y documentos que no fueron seleccionados
y no eran relevantes a la b
usqueda (tn ).
Esto es,
Relevantes
No Relevantes
Seleccionados
tp
fp
No Seleccionados
fn
tn
Positivo
Negativo
tp
fp
fn
tn
tp + tn
tp + tn + fp + fn
(2.39)
tp
tp + fp
(2.40)
tp
tp + fn
43
(2.41)
Documento
Clase
Predicci
on del Clasificador
D1
POS
POS
D2
POS
POS
D3
POS
POS
D4
POS
POS
D5
POS
POS
D6
NEG
POS
D7
NEG
NEG
D8
POS
POS
D9
POS
NEG
D10
POS
POS
D11
NEG
POS
D12
NEG
POS
D13
NEG
POS
D14
NEG
POS
D15
NEG
NEG
D16
POS
POS
D17
POS
POS
D18
POS
POS
D19
POS
POS
D20
POS
POS
Positivo
Negativo
tp = 12
fp = 5
fn = 1
tn = 2
P1
( 2 + 1)P R
1
=
2P + R
+ (1 ) R1
(2.42)
2P R
P +R
(2.43)
En el ejemplo anterior,
F1P OS = 20.7060.923
0.706+0.923 0.8
20.660.286
F1N EG = 0.66+0.286 0.4
Accuracy vs. F-Measure
En el siguiente ejemplo analizaremos cuando conviene usar cada una de estas
metricas:
Ejemplo 2.9. Accuracy vs. F-Measure
Consideremos la tarea de clasificar textos como spam o no-spam y un
conjunto de datos donde el 99% de los textos no son spam. Supongamos
adem
as, que se utiliza un clasificador que siempre clasifica como no-spam
cualquiera sea el dato de entrada. En este caso la accuracy sera del 99% por lo
que podramos incurrir en el error de considerar que el clasificador tiene un 99%
de efectividad y quedarnos u
nicamente con esa informacion cuando es claro que
23 La
media arm
onica es un tipo de promedio muy conservativo.
45
TEST
TRAIN
TRAIN
TEST
TRAIN
TRAIN
TEST
TRAIN
TRAIN
TEST
TRAIN
TRAIN
TEST
TRAIN
TRAIN
TEST
TRAIN
TRAIN
TRAIN
TEST
TRAIN
TEST
TRAIN
10
TRAIN
TEST
TRAIN
TRAIN
TEST
2.4
2.4.1
Preparaci
on de los datos
Preprocesamiento
48
conocida en ingl
es como Word Sense Desambiguation (WSD).
49
50
Captulo 3
Desarrollo de la
Herramienta de An
alisis de
Sentimientos
En este captulo presentamos la aplicacion de todos los conceptos estudiados
en este trabajo para el desarrollo de una herramienta de analisis binario de
sentimientos que luego, en la etapa de experimentacion, nos permitira validar la
investigaci
on y comparar la efectividad de las distintas tecnicas de clasificacion
y preprocesamiento de textos estudiadas.
En la primera secci
on de este captulo definiremos el alcance de la aplicacion
desarrollada, analizaremos el comportamiento de la herramienta y los distintos
procesos y flujos que ocurren en la clasificacion.
En la seccion de
implementaci
on, describiremos como se construyo la aplicacion, especificaremos
el dise
no, los criterios adoptados, las interfaces desarrolladas y los frameworks
y herramientas externas que se utilizaron en la implementacion.
3.1
An
alisis del Problema
51
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
Transformaciones
de Textos
CORPUS
Identificaci
on
y Extracci
on
de Atributos
de Opini
on
Modelo de
Clasificaci
on
Binaria
POS
NEG
3.1.1
Proceso de Clasificaci
on Supervisado
52
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
DOCUMENTOS
ETIQUETADOS
POS
NEG
([Documento], Clase)
([Features], Clase)
Training Set
Training Set
1
preprocesar
PREPROCESADOR
3
extraer
features
entrenar
FEATURE
EXTRACTOR
CLASIFICADOR
clasificar
4
[Documento]
[Features]
5
evaluar
Test Set
Test Set
Clases
Conocidas
Clases
EVALUACION
6
METRICAS
3.1.2
Proceso de Clasificaci
on No Supervisado
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
El proceso de clasificaci
on se ejecuta seg
un los siguientes pasos:
1. Se toma como entrada un corpus no etiquetado y se aplican las
transformaciones correspondientes.
2. Se seleccionan los elementos del conjunto de datos que seran clasificados.
3. Se clasifican los elementos del conjunto de prueba a partir del calculo de
orientaci
on sem
antica.
4. Se eval
uan los resultados obtenidos comparandolos con las clases esperadas
del conjunto de datos de prueba.
5. Se informan las metricas de la clasificacion.
DOCUMENTOS
NO
ETIQUETADOS
[Documento]
preprocesar
1
3
Data Set
PREPROCESADOR
CLASIFICADOR
2
clasificar
calcular
orientaci
on
sem
antica
4
evaluar
Clases
Clases
Conocidas
EVALUACION
5
METRICAS
54
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
3.1.3
Par
ametros de Clasificaci
on
A continuaci
on describiremos los distintos parametros con los que puede
ejecutarse la clasificaci
on para analizar la performance y sensibilidad de los
modelos de clasificaci
on ante distintos escenarios.
La herramienta provee los siguientes preprocesadores de textos y puede
ejecutarse con cualquier combinacion de ellos que se especifique por parametro:
Eliminaci
on de stopwords
Filtrado de palabras con un mnimo de longitud parametrizable
Eliminaci
on de caracteres repetidos mas de dos veces
Procesamiento de negaciones
Stemming
Lematizaci
on
Transformaci
on a min
uscula
Eliminaci
on de signos de puntuacion
Eliminaci
on de caracteres especiales
Los modelos binarios de clasificacion provistos por la herramienta desarrollada
incluyen:
Clasificadores Supervisados
Nave Bayes
Modelo de M
axima Entropa
Support Vector Machines (SVM)
Decision Trees
Clasificadores No Supervisados
Algoritmo de Turney adaptado al idioma espa
nol
En cuanto a la extracci
on de caractersticas, los siguientes feature extractors
fueron implementados y la aplicacion puede ejecutarse con cualquier
combinaci
on de ellos:
Presencia de unigramas
Frecuencia de unigramas
Presencia de bigramas
Presencia de adjetivos
55
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
El metodo de evaluaci
on del modelo tambien es configurable y se implementaron
los siguientes algoritmos en funcion de lo explicado en la seccion 2.3.14:
k-fold cross validation: La cantidad de folds y el tama
no de cada fold
es configurable y se utilizo macro-averaging para el calculo de metricas
generales a partir de los resultados obtenidos para cada fold.
hold-out
Adem
as de los par
ametros anteriores, la aplicacion provee la posibilidad de
ejecutar la clasificaci
on en los siguientes escenarios:
Out-of-domain testing: Para clasificacion supervisada, en la etapa de
construcci
on de los conjuntos de datos de entrenamiento y prueba se utiliza
un corpus de datos para entrenamiento y otro, perteneciente a un dominio
distinto, para test. Como veremos en el captulo de experimentacion, este
tipo de pruebas es fundamental para evaluar la performance de un modelo.
Desbalanceo de corpus: La aplicacion puede ser ejecutada con un
par
ametro que indique la proporcion de documentos pertenecientes a cada
clase (positivos o negativos) que seran utilizados en la clasificacion con el
objetivo de analizar la performance de los modelos para corpus de datos
fuertemente desbalanceados.
3.1.4
Evaluaci
on de Otros Modelos
3.2
Implementaci
on
En esta secci
on explicaremos los detalles tecnicos de implementacion del
sistema de an
alisis de sentimientos as como las decisiones de dise
no adoptadas,
algoritmos e interfaces desarrolladas.
La soluci
on fue desarrollada en lenguaje Python y los principales componentes
del proceso de an
alisis de sentimientos se modelaron como se indica en los
diagramas de clases de las figuras 3.4, 3.6 y 3.5 donde se indican las principales
jerarquas de clasificadores, preprocesadores, extractores de features e interfaces
con frameworks y herramientas externas de cada componente.
56
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
Como hemos mencionado en secciones anteriores, uno de los objetivos
principales de esta aplicaci
on es proveer un marco para la evaluacion de la
performance de modelos de clasificacion subjetiva de textos en funcion de
distintos escenarios, por lo que el dise
no de la arquitectura se baso en la
extensibilidad y simplicidad de la herramienta para la implementacion de nuevos
modelos de clasificaci
on, extraccion de features, preprocesamiento de textos y
tecnicas de validaci
on y as abstraerse de la implementacion del proceso de
clasificaci
on y c
alculos de performance que son provistos por el marco de trabajo.
Como se observa en la figura 3.4 si se desea implementar un nuevo modelo
de clasificaci
on bastar
a con heredar la clase SupervisedClassifier y redefinir
los metodos train() y classify(comment) para modelos supervisados o heredar
de la clase Classifier y redefinir el metodo classify(corpus) para modelos
no-supervisados. Luego, ser
a necesario agregar un parametro de ejecucion de
la herramienta para el nuevo modelo y esto sera suficiente para ejecutar la
clasificaci
on y obtener todas las metricas necesarias para la evaluacion de la
performance del nuevo clasificador en todos los escenarios en estudio.
classifiers
<<abstract>>
Classifier
classify(corpus): evaluation
TurneyClassifier
patterns
pos words
neg words
classify(corpus):
evaluation
<<abstract>>
SupervisedClassifier
train()
classify(corpus):
evaluation
NaiveBayes
MaxEnt
SVM
DecisionTrees
train()
classify(comment):
label
train()
classify(comment):
label
train()
classify(comment):
label
train()
classify(comment):
label
NLTK
MEGAM
SCIKIT-LEARN
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
features o preprocesador de textos consiste en incluir el nuevo modelo en la
jerarqua, redefinir los metodos extract() y process() respectivamente y agregar
el par
ametro de ejecuci
on a la herramienta.
processors
1..*
<<abstract>>
CorpusProcessor
FreelingWord
process(corpus):
preprocessed corpus
word
lemma
tag
prob
CompositeCorpusProcessor
FreelingProcessor
process(corpus):
preprocessed corpus
process(corpus):
preprocessed corpus
FREELING
<<abstract>>
DocumentAtATimeProcessor
LemmaProcessor
process(corpus):
preprocessed corpus
process document(document):
preprocessed document
WordTypeFilter
TokenizerProcessor
LowerCaseProcessor
TransformCharsProcessor
TransformNegationsProcessor
StemmerProcessor
FilterProcessor
FilterPunctuation
FilterStopWords
FilterWordLength
58
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
extractors
<<abstract>>
FeatureExtractor
1..*
CompositeFeatureExtractor
<<abstract>>
VocabularyExtractor
WordPresenceExtractor
BigramsExtractor
extract(data set):
features
WordFrequencyExtractor
La extracci
on de adjetivos como features se implemento aplicando un preproceso
de filtro por tipo de palabra a partir de realizar POS tagging sobre el corpus de
datos y luego se utiliz
o presencia de unigramas como feature extractor.
3.2.1
Proceso de Clasificaci
on
El proceso de clasificaci
on se implemento como se indica en los diagramas
de secuencia de las figuras 3.7 y 3.8. En estos diagramas se observan las
interacciones de los distintos componentes de la aplicacion y las transformaciones
y tareas de procesamiento que se realizan sobre los documentos del corpus de
datos.
59
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
SentimentAnalyzer
Preprocessor
SupervisedClassifier
FeatureExtractor
classify(corpus)
preprocess(corpus)
preprocessed corpus
classify(preprocessed corpus)
Loop
Loop
fold evaluation
evaluation average
metrics
60
Evaluation
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
SentimentAnalyzer
Preprocessor
Classifier
Evaluation
classify(corpus)
preprocess(corpus)
preprocessed corpus
classify(preprocessed corpus)
Loop
expected class
add result(expected class, predicted class)
evaluation
metrics
3.2.2
A continuaci
on describiremos las principales herramientas y frameworks
utilizados en el desarrollo del software de clasificacion subjetiva de textos para
resolver distintas funcionalidades de la aplicacion. Basamos la eleccion de estas
herramientas en la precisi
on de los resultados, la simplicidad de implementacion,
la buena documentaci
on y los tiempos de procesamiento.
NLTK (Steven Bird, Edward Loper and Ewan Klein, 2009) es la plataforma
m
as utilizada para trabajar con lenguaje natural en Python por su simplicidad
y excelente documentaci
on. En este trabajo se utilizo la version 2.0 para
la implementaci
on del algoritmo de Nave Bayes, tareas de tokenizaci
on de
sentencias y filtrado de stopwords1 .
Megam (Hal Daume III, 2004) es una herramienta para el calculo de pesos
de features en modelos de m
axima entropa. En este trabajo se desarrollo una
interfaz con esta herramienta para la implementacion del algoritmo de Max Ent
resultando de gran utilidad por su efectividad y velocidad de convergencia.
1 NLTK
61
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
3.2.3
Adaptaci
on del Algoritmo de Turney
Segunda Palabra
Tercera Palabra
(No Extrada)
Adjetivo
Nombre
Cualquiera
Nombre
Adjetivo
No Nombre
Adverbio
Adjetivo
No Nombre
Adverbio
Verbo
Cualquiera
Verbo
Adverbio
Cualquiera
CAPITULO 3. DESARROLLO DE LA HERRAMIENTA DE ANALISIS
DE
SENTIMIENTOS
NOT buenos, NOT buena, NOT buenas, NOT rico, NOT ricos,
NOT rica, NOT ricas.
Como tecnica de smoothing para el tratamiento de aquellos terminos que
no aparecen en forma conjunta con los terminos que indican polaridad se
sum
o 0.01 al resultado de la operacion NEAR.
63
Captulo 4
Casos de Estudio y
Experimentaci
on
En este captulo presentaremos los casos de estudio elegidos y explicaremos
las tecnicas y criterios adoptados para la construccion de los corpus de datos
con los que trabajaremos en la etapa de experimentacion de este trabajo.
Luego, describiremos las experiencias realizadas y presentaremos los resultados
obtenidos a partir de la clasificacion subjetiva, binaria y a nivel de documento
de los conjuntos de datos construidos y analizaremos el impacto de la variacion
de par
ametros de entrada en la efectividad de los clasificadores implementados.
4.1
Casos de Estudio
Para la evaluaci
on de los distintos modelos en estudio construimos un conjunto
de datos principal con el que realizaremos la mayora de las experiencias de
an
alisis de sentimientos y otro conjunto de datos que nos servira para realizar
pruebas conocidas como out-of-domain testing, es decir, entrenando con un
conjunto de datos y clasificando otro de un dominio distinto. Esta experiencia
es muy importante en modelos supervisados para analizar la efectividad de los
clasificadores de forma objetiva como luego veremos en detalle.
El caso de estudio principal sera el sitio de crtica gastronomica online www.
guiaoleo.com. En este sitio los usuarios emiten opiniones sobre restaurantes
de la ciudad de Buenos Aires y proveen una calificacion en las categoras:
comida, ambiente y servicio. Cada una de estas categoras puede ser calificada
como mala/regular, buena, muy buena o excelente asignado un puntaje como
se observa en la figura 4.1.
64
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
peor calificaci
on y 5 la mejor.
4.1.1
Construcci
on de los Corpus de Datos
Como hemos visto en la seccion anterior, los sitios que utilizaremos para
construir los corpus de datos utilizan un sistema de calificacion basado en
puntajes. Este sistema resulta de mucha utilidad en algoritmos de aprendizaje
supervisado ya que permite definir un criterio para la asignacion de una etiqueta
a cada comentario del conjunto de datos (positivo, negativo o neutro) y en
base a esta informaci
on entrenar el clasificador evitando la clasificacion manual.
66
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Adem
as, utilizaremos esta categorizacion para comparar los resultados de los
clasificadores con las clases esperadas y evaluar la performance de cada modelo.
Para la construcci
on de los corpus de datos correspondientes a los casos de
estudio presentados se desarrollo un script en lenguaje Python que recorre
autom
aticamente1 todas las paginas de crticas de ambos sitios y extrae los
comentarios y puntajes asignados por los usuarios. Luego, se implemento un
segundo procesamiento para la asignacion de etiquetas a los comentarios a partir
de la calificaci
on de los usuarios siguiendo los criterios definidos a continuacion
para cada caso.
t
ecnica de extraer informaci
on de sitios web autom
aticamente es conocida como Web
Crawling.
2 http://www.json.org/
67
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
la etiqueta POSITIVO a aquellos comentarios calificados
5 estrellas (excelente) y la etiqueta NEGATIVO a los
calificaci
on fue de 1 estrella (mala). Ademas, se tuvieron
segundo procesamiento s
olo aquellos comentarios de mas de
Gua Oleo.
4.2
Experimentaci
on
En esta secci
on presentamos los resultados obtenidos a partir de la clasificacion
de los corpus de datos descriptos en la seccion 4.1 en funcion de los preprocesos
aplicados, el modelo de clasificacion, los distintos tama
nos de corpus y los
atributos extrados.
Para medir la efectividad de los clasificadores en las experiencias con corpus
balanceados nos basamos en la medida de accuracy que se obtiene a partir de la
relaci
on entre la cantidad de casos clasificados correctamente y el total de casos
mientras que en experiencias con corpus desbalanceados utilizamos la medida
F1 como se explica en la secci
on 2.3.14.
Todas las experiencias presentadas en esta seccion fueron ejecutadas para
tama
nos de corpus entre 500 y 22000 documentos del conjunto de datos. Este
tama
no m
aximo fue seleccionado en base al costo de entrenamiento de los
metodos supervisados y teniendo en cuenta que la mejora obtenida para corpus
mayores no se consider
o representativa.
Las tablas completas de resultados obtenidos en las experiencias de este captulo
pueden consultarse en el Anexo B.
4.2.1
Selecci
on de Atributos
Como hemos mencionado, los atributos o features con los que experimentaremos
en este captulo para metodos supervisados incluyen: presencia y frecuencia de
unigramas, presencia de bigramas, presencia de adjetivos y combinaciones de
ellos.
Teniendo en cuenta el costo de entrenamiento de los metodos supervisados y
con el objetivo de evitar el overfitting se adopto el siguiente criterio para la
selecci
on de atributos: para unigramas se extrajeron aquellos cuya frecuencia de
aparici
on es mayor a 10; en el caso de adjetivos y bigramas la frecuencia mnima
requerida fue de 4 y en todos los casos se utilizo un maximo de 3000 atributos.
Esta decisi
on est
a basada en experiencias que se realizaron sobre los datos y
utilizando el metodo cut-off que se menciona en el trabajo de (Christopher
Potts, 2011).
68
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
4.2.2
Efectividad de Preprocesadores
Valor
Corpus
Gua Oleo
Algoritmo de Clasificacion
Nave Bayes
Algoritmo de Validacion
Tama
no de Corpus
22000 documentos
Corpus Balanceado
Si
Features
Presencia de Unigramas
Preprocesamientos
Variable
69
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Mejora
(%)
Preproceso
Accuracy
NP (Sin Preproceso)
0.868
SW (Eliminaci
on de stopwords)
0.895
3.11%
0.875
0.81%
0.883
1.73%
DC (Eliminaci
on de caracteres repetidos mas 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 puntuacion)
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%
70
5.76%
6.45%
5.99%
0.12%
0.35%
0%
1.73%
0.81%
3.11%
0.1
2%
MA
MB
1
CO
MB
2
CO
MB
3
CO
MB
4
CO
MB
5
CO
MB
6
CO
MB
7
CO
MB
8
CO
CT
SC
PUN
LEM
1%
M
LC
0.8
STE
WL
NEG
DC
0.1
2%
SW
5.3%
5.76%
4.26%
4.95%
6.45%
4.2.3
Efectividad de Clasificadores
En esta secci
on presentaremos todos los resultados de performance obtenidos en
la clasificaci
on del corpus de datos principal, utilizando los preprocesamientos
seleccionados y los distintos modelos de clasificacion, en funcion de las variantes
de features, tama
no de corpus, balanceo del conjunto de datos y utilizando
distintas tecnicas de validaci
on.
71
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Clasificadores Supervisados
En las figuras 4.4 y 4.5 observamos los valores de accuracy obtenidos para cada
clasificador supervisado, en funcion del tama
no de corpus y atributos extrados,
presentados en gr
aficas por atributo y por algoritmo respectivamente. Los
par
ametros con los que se ejecuto esta experiencia son los indicados en la tabla
4.3.
Par
ametro
Valor
Corpus
Gua Oleo
Algoritmo de Clasificacion
Variable
Algoritmo de Validacion
Tama
no de Corpus
Variable
Corpus Balanceado
Si
Features
Variable
Preprocesamientos
Tabla 4.3:
Experiencia
72
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Accuracy
0.95
0.95
0.9
0.9
0.85
0.85
0.8
0.8
0.75
0.75
0
5000
Tama
no del Corpus
(c) Bigramas
0.9
5000
Tama
no del Corpus
(d) Unigramas + Bigramas
0.95
Accuracy
0.9
0.8
0.85
0.7
0.6
0.8
0.75
0
5000
Nave Bayes
MaxEnt
SVM
Decision Trees
0.9
Accuracy
5000
Tama
no del Corpus
Tama
no del Corpus
(d) Adjetivos
0.85
0.8
0
5000
Tama
no del Corpus
Figura 4.4: Efectividad de Clasificadores Supervisados por Atributo: Accuracy
vs Tama
no de Corpus
73
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Accuracy
0.95
0.95
0.9
0.9
0.85
0.85
0.8
0.8
0.75
0.75
0.7
0.7
0.65
0.65
0
5000
Tama
no del Corpus
Tama
no del Corpus
0.95
Accuracy
5000
0.9
0.85
0.85
0.8
0.8
0.75
0.75
0.7
0.7
0.65
0.65
0
5000
0.6
5000
Tama
no del Corpus
Tama
no del Corpus
Presencia de Unigramas
Presencia de Bigramas
Presencia de Adjetivos
Frecuencia de Unigramas
Presencia de Unigramas y Bigramas
74
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Clasificadores No Supervisados
En la figura 4.6 presentamos los valores de accuracy obtenidos para el algoritmo
no supervisado de Turney en funcion del tama
no de corpus. En cuanto
a los preprocesamientos de texto luego de una variedad de pruebas hemos
comprobado que eliminar stopwords y filtrar palabras por tama
no mnimo de
longitud no produca mejoras en los resultados de ese tipo de clasificadores. En
el caso de las negaciones, como hemos mencionado en la seccion 3.2.3, en la
implementaci
on del algoritmo se agregaron las palabras negadas mas relevantes
al conjunto de terminos con polaridad negativa y se utilizo el preprocesamiento
de tratamiento de negaciones obteniendo una mejora considerable en los
resultados.
Los par
ametros con los que ejecutamos esta experiencia se presentan en la tabla
4.4.
Par
ametro
Valor
Corpus
Gua Oleo
Algoritmo de Clasificacion
Turney
Algoritmo de Validacion
Hold-out
Tama
no de Corpus
Variable
Corpus Balanceado
Si
Preprocesamientos
Turney
0.85
Accuracy
0.84
0.83
0.82
0
5000
10000
15000
20000
Tama
no del Corpus
Figura 4.6: Efectividad de Clasificadores No Supervisados: Accuracy vs
Tama
no de Corpus
75
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Clasificadores Supervisados vs No Supervisados
En esta secci
on realizaremos la comparacion de efectividad de todos los modelos
en estudio para m
aximo tama
no de corpus y en el caso de los metodos
supervisados presentaremos los resultados en funcion de los features extrados.
En la tabla 4.6 pueden observarse los valores maximos de accuracy obtenidos
en esta experiencia y luego en la figura 4.7 se observa la comparacion grafica de
los resultados. Los par
ametros con los que se ejecuto esta experiencia son los
indicados en la tabla 4.5.
Par
ametro
Valor
Corpus
Gua Oleo
Algoritmo de Clasificacion
Variable
Algoritmo de Validaci
on
Tama
no de Corpus
22000 documentos
Corpus Balanceado
Si
Features
Variable
Preprocesamientos
Feature
NB
MaxEnt
SVM
DT
Presencia de Unigramas
0.924
0.944
0.944
0.882
Frecuencia de Bigramas
0.924
0.943
0.945
0.882
Presencia de Bigramas
0.88
0.829
0.855
0.802
0.939
0.950
0.946
0.884
Presencia de Adjetivos
0.905
0.882
0.900
0.853
Turney
Patrones de Opini
on
0.839
76
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
0.84
0.88
0.85
0.8
0.88
0.88
0.9
0.95
0.86
0.88
0.94
0.95
0.95
0.94
0.94
0.91
0.94
0.88
0.9
0.83
Accuracy
0.92
0.92
1.1
0.8
0.7
0.6
Nave Bayes
MaxEnt
Presencia de Unigramas
Presencia de Unigramas y Bigramas
SVM
DecisionTrees
Frecuencia de Unigramas
Presencia de Adjetivos
Turney
Presencia de Bigramas
Patrones de Opinion
4.2.4
Cambio de Dominio
77
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Par
ametro
Valor
Training Corpus
Gua Oleo
Test Corpus
Google Play
Algoritmo de Clasificacion
Variable
Algoritmo de Validacion
Tama
no de Corpus
Variable
Corpus Balanceado
Si
Features
Presencia de Unigramas
Preprocesamientos
Accuracy
0.8
0.75
0.7
0.65
0.6
0
5000
10000
15000
20000
Tama
no del Corpus
Nave Bayes
SVM
MaxEnt
DecisionTrees
0.9
0.51
0.64
0.59
0.5
0.28
Accuracy
0.92
0.94
0.99
0
Nave Bayes MaxEnt
Positivos
SVM
DecisionTrees
Negativos
4.2.5
79
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Par
ametro
Valor
Corpus
Gua Oleo
Algoritmo de Clasificacion
Variable
Algoritmo de Validaci
on
Tama
no de Corpus
Variable
Corpus Balanceado
Variable
Features
Presencia de Unigramas
Preprocesamientos
Tabla 4.8:
Efectividad de Clasificadores para Corpus Balanceados y
Desbalanceados: Par
ametros de la Experiencia
Algoritmo de Turney
F1
0.8
0.7
0.6
0
5000
10000
15000
20000
Tama
no del Corpus
Desbalanceado: 80% positivos - 20% negativos
Balanceado
Desbalanceado: 20% positivos - 80% negativos
80
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
(b) MaxEnt (megam)
0.94
0.92
0.9
0.9
F1
0.88
0.86
0.85
0.84
0.82
0.8
0.8
0
5000
5000
Tama
no del Corpus
Tama
no del Corpus
0.95
0.85
F1
0.9
0.8
0.85
0.75
0.8
0.7
0
5000
Tama
no del Corpus
5000
Tama
no del Corpus
81
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Clasificadores Supervisados
Desbalanceados
vs
No
Supervisados
para
Corpus
En esta secci
on realizaremos una comparacion de todos los algoritmos en estudio
en funci
on de la proporci
on de desbalanceo de clases para el tama
no maximo
de corpus de datos. En la tabla 4.9 se presentan los valores de accuracy y F1
obtenidos y luego estos valores se comparan graficamente en la figura 4.12.
Balanceo de
Corpus
NB
Acc F1
MaxEnt
Acc F1
SVM
Acc F1
DT
Acc F1
Turney
Acc F1
Desbalanceado
80% POS - 20% 0.915 0.921 0.925 0.936 0.930 0.934 0.874 0.871 0.850 0.789
NEG
Balanceado
0.924 0.924 0.944 0.944 0.944 0.944 0.882 0.882 0.839 0.839
Desbalanceado
20% POS - 80% 0.932 0.902 0.907 0.918 0.928 0.926 0.832 0.817 0.793 0.681
NEG
82
0.84
0.68
0.8
0.79
0.82
0.88
0.87
0.9
F1
0.93
0.94
0.93
0.92
0.94
0.94
0.9
0.92
0.92
0.7
0.6
Nave Bayes
MaxEnt
SVM
DecisionTrees
Turney
4.2.6
An
alisis de Resultados
83
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Nave Bayes arroja los mejores resultados para corpus peque
nos pero su
performance decrece levemente para los tama
nos de corpus mas grandes.
MaxEnt y SVM mejoran su performance a medida que crece el tama
no de
corpus y se obtiene la m
axima performance alcanzada por la experiencia.
Si se utilizan adjetivos o bigramas como atributos Nave Bayes presenta
los mejores resultados.
La performance del clasificador basado en arboles de decision es
notablemente peor que la obtenida con los otro modelos supervisados
analizados, por lo que podemos concluir que este clasificador no resulta
adecuado para este tipo de tarea.
Para todos los modelos se observa que a partir de un tama
no de corpus de
8000 documentos, el valor de performance se vuelve relativamente estable.
En la figura 4.5 realizamos las siguientes observaciones respecto de la
performance de los distintos modelos supervisados en funcion de los tipos de
features extrados:
Para todos los clasificadores supervisados los mejores resultados se
obtienen utilizando como atributos la combinacion de presencia de
unigramas y bigramas a
un cuando para todos los clasificadores la
performance al utilizar solo bigramas no resulta favorable.
Como ya se ha mostrado para el ingles en trabajos anteriores (Bo Pang,
Lillian Lee and Shivakumar Vaithyanathan, 2002), comprobamos que en
terminos de informaci
on subjetiva considerar frecuencia de unigramas
como atributos no representa una mejora notable con respecto a presencia.
Utilizar adjetivos como atributos arroja resultados considerablemente
peores que utilizando todos los unigramas, contrario a lo que podamos
esperar considerando que la mayor ganancia de informacion en cuanto a
opiniones es provista por los adjetivos.
En la figura 4.6 se observa que la performance del algoritmo de Turney mejora
levemente a medida que crece el tama
no de corpus pero este crecimiento resulta
inestable. Luego, en la figura 4.7 podemos observar la comparacion con metodos
supervisados, si bien el algoritmo de Turney no alcanza la efectividad maxima
de estos para presencia de unigramas, se obtienen muy buenos resultados
comparables con los obtenidos utilizando bigramas como atributos en metodos
supervisados, con la ventaja de que no requiere un corpus de entrenamiento.
En cuanto a las experiencias realizadas utilizando un corpus para entrenamiento
y otro de un dominio distinto para clasificacion supervisada, observamos en
la figura 4.8 que la performance decrece considerablemente en comparacion
con la clasificaci
on del mismo dominio pero sin embargo MaxEnt y SVM son
los modelos que responden mejor al cambio. A partir de estos resultados y
comparando con los obtenidos con el algoritmo de Turney, podemos concluir
que en casos donde no se tenga un conjunto de datos de entrenamiento propio
del dominio conviene utilizar un algoritmo no supervisado o semi-supervisado
(por ejemplo, basado en lexico de opinion) en lugar de un metodo supervisado
84
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
con un conjunto de entrenamiento de otro dominio.
Adem
as, en la figura 4.9 observamos que la clase de comentarios negativos es la
que se predice peor cuando se realiza un cambio de dominio, esto puede estar
relacionado con que los terminos utilizados para expresar polaridad negativa son
m
as especficos de dominio en los casos de estudio analizados que los terminos
de polaridad positiva donde la performance de la experiencia resulta mayor al
90% para todos los modelos.
En las figuras 4.10, 4.11 y 4.12 observamos el comportamiento de los distintos
modelos ante la variaci
on de la proporcion de comentarios positivos y negativos
en el conjunto de datos, es decir, realizando el entrenamiento con corpus
desbalanceados. En el caso del algoritmo de Turney se observa que la
performance decrece en gran medida cuando la clase de comentarios positivos es
poco representativa mientras que la performance alcanzada cuando la clase de
comentarios negativos es poco representativa es muy cercana al caso de corpus
balanceados. Al igual que ocurra en la experiencia de cambio de dominio
notamos que en los casos de estudio analizados, los terminos mas polares de
la clase de comentarios positivos son en gran medida mas representativos que
los terminos negativos.
En el caso de los metodos supervisados se observa tanto para Nave Bayes como
MaxEnt y SVM que en los dos casos de presencia de cada clase la performance
alcanzada es muy cercana a la obtenida en experiencias balanceadas por lo que el
desbalanceo no representa un problema mayor para este tipo de modelos. En el
caso de
arboles de decisi
on, la performance s se ve afectada considerablemente
cuando la presencia de comentarios positivos es escasa.
4.2.7
Dificultades
Las principales dificultades en tareas de AS con las que nos hemos encontrado
en la etapa de experimentaci
on de este trabajo incluyen:
Informalidad del texto: errores gramaticales y ortograficos.
Textos demasiado cortos.
Negaciones no tratadas: por ejemplo es caro y tampoco es excelente.
Comparaciones no tratadas: por ejemplo En la Farola de Belgrano se
come mejor..
Uso de terminos especficos de dominio para indicar polaridad: por
ejemplo en el corpus de Google Play donde el termino funciona y sus
formas flexionadas se utilizan en la mayora de los comentarios mientras
85
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Documento
Clase
NB
Clase Asignada
ME SVM DT Turney
POS
POS
CAPITULO 4. CASOS DE ESTUDIO Y EXPERIMENTACION
Para clasificar comentarios en otros idiomas podra realizarse previamente
una tarea de procesamiento que asigne el idioma a los comentarios y luego
entrenar el clasificador utilizando un conjunto de datos apropiado. En el
caso del corpus que estamos analizando la cantidad de comentarios en otros
idiomas no resulta representativa por lo que esta tarea no fue necesaria.
En el ejemplo n
umero cinco el u
nico termino representativo de la clase de
comentarios negativos esta mal escrito (pero en lugar de peor ) por lo
que la clasificaci
on es incorrecta en todos los modelos.
En el comentario n
umero seis hay terminos muy polares de la clase
positivo (excelente , mejor) y los sentimientos negativos se expresan
indirectamente, es decir, se deducen a partir del conocimiento popular
en el contexto de gastronoma y servicios y no utilizando terminos
representativos de la clase de comentarios negativos.
En el comentario n
umero siete vemos que al no utilizar preprocesamientos
de lematizaci
on o stemming, el termino excelentsima (forma flexionada
de la palabra excelente) no resulta representativo de la clase de
comentarios positivos.
87
Captulo 5
Conclusiones y Trabajo
Futuro
En este trabajo investigamos las tecnicas que se utilizan actualmente en
tareas de an
alisis de sentimientos sobre textos no estructurados y en idioma
espa
nol; presentamos una introduccion al concepto de modelado de lenguaje
que nos permiti
o comprender las bases del procesamiento de lenguaje natural;
estudiamos las distintas tecnicas de preprocesamiento y clasificacion de textos
en base a informaci
on subjetiva; y presentamos metricas y distintos metodos de
evaluaci
on para analizar la performance de los modelos en estudio.
Para validar nuestra investigacion implementamos una herramienta de
clasificaci
on subjetiva de textos que provee todas las tecnicas estudiadas
adaptadas al idioma espa
nol, luego dise
namos una variedad de experiencias
que nos permitieron evaluar el comportamiento de los distintos modelos ante la
variaci
on de determinados parametros y realizamos un analisis de performance
de todos los modelos presentados a partir de la ejecucion de estas experiencias
en distintos escenarios y en base a las metricas provistas por la aplicacion
desarrollada para la evaluaci
on de performance.
Las experiencias presentadas muestran el impacto en la performance de los
clasificadores ante la variaci
on de parametros de entrada como transformaciones
de textos, tipos de atributos extrados, conjunto de datos de entrenamiento,
conjunto de datos de prueba, tama
no de corpus utilizado y proporcion de
documentos de cada clase.
Hallamos que los modelos supervisados de Nave Bayes, MaxEnt y SVM
resultan muy apropiados para clasificar informacion subjetiva en idioma espa
nol
alcanzando hasta un 95% de accuracy para los tama
nos de corpus mas grandes
mientras que tecnicas basadas en arboles de decision no proveen buenos
resultados. Adem
as, adaptamos la tecnica de clasificacion no supervisada de
Turney al idioma espa
nol y obtuvimos excelentes resultados considerando que
no se requiere informaci
on previa ni un conjunto de datos de entrenamiento.
Mostramos que la aplicaci
on de preprocesamientos influye considerablemente
88
89
Referencias
Python 2.7.
http://www.python.org/.
SciPy 0.10.0 - Open Source Library of Scientific Tools For Python.
http://www.scipy.org/.
Alexander Clark, Chris Fox and Shalom Lappin. The handbook of computational
linguistics and natural language processing. Wiley-Blackwell, 2010.
Andrew Ng. Machine Learning Course. Stanford University, 2012.
Arthur Samuel. Some Studies in Machine Learning Using the Game of Checkers.
IBM Journal of Research and Development 3(3), 211229, 1959.
Bing Liu. Sentiment Analysis and Subjectivity.
Science, University of Illinois at Chicago, 2010.
Department of Computer
David M. Blei, Andrew Y. Ng, Michael I. Jordan, and John Lafferty. Latent
dirichlet allocation. Journal of Machine Learning Research, 3:2003, 2003.
Bo Pang and Lilian Lee. Opinion Mining and Sentiment Analysis. Department
of Computer Science, Cornell University, 2008.
Bo Pang and Lillian Lee. Seeing stars: Exploiting class relationships for
sentiment categorization with respect to rating scales. 2005.
Bo Pang, Lillian Lee and Shivakumar Vaithyanathan. Thumbs up? Sentiment
classification using machine learning techniques. 2002.
Brendan OConnor, Ramnath Balasubramanyan, Bryan R. Routledge and Noah
A. Smith. From Tweets to Polls: Linking Text Sentiment to Public Opinion
Time Series. School of Computer Science, Carnegie Mellon University, 2010.
Samuel Brody and Noemie Elhadad. An unsupervised aspect-sentiment
model for online reviews. In Human Language Technologies: The 2010
Annual Conference of the North American Chapter of the Association for
Computational Linguistics, pages 804812. Association for Computational
Linguistics, 2010.
Christopher D. Manning and Hinrich Sch
utze. Foundations of Statistical Natural
Language Processing. MIT Press, Cambridge, 1999.
Christopher D. Manning, Prabhakar Raghavan and Hinrich Sch
utze.
Introduction to Information Retrieval. Cambridge University Press, 2008.
90
REFERENCIAS
Christopher Potts. Sentiment Analysis Symposium, San Francisco. 2011.
C. Cortes and V. Vapnik. Support-vector network. Machine Learning, 20:
273297, 1995.
Fermn L. Cruz, Jose A. Troyano, Fernando Enriquez, and Javier Ortega.
Clasificaci
on de documentos basada en la opinion: experimentos con un
corpus de crticas de cine en espa
nol. Procesamiento del Lenguaje Natural,
41, 2008.
Daniel Jurafsky and Christopher D. Manning. Natural Language Processing
Course. Stanford University, 2012.
Daniel Jurafsky and James H. Martin. Speech And Language Processing. An
Introduction to Natural Language Processing, Computational Linguistics, and
Speech Recognition. 2nd Edition. Prentice Hall, 2009.
Luciana Dubiau and Juan M Ale. Analisis de sentimientos sobre un corpus en
espa
nol: Experimentaci
on con un caso de estudio. 42 JAIIO ASAI, 2013.
ISSN 1850-2776.
Google. Google n-grams dataset, 2008.
http://books.google.com/ngrams.
Hal Daume III. Notes on CG and LM-BFGS Optimization of Logistic
Regression. 2004.
http://www.umiacs.umd.edu/~hal/megam/.
Harry Zhang. The Optimality of Naive Bayes. University of New Brunswick,
2004.
Vasileios Hatzivassiloglou and Kathleen R. McKeown. Predicting the semantic
orientation of adjectives. pages 174181, 1997.
Irina Rish. An empirical study of the naive Bayes classifier. IJCAI 2001
Workshop on Empirical Methods in Artificial Intelligence, 2001.
Jacob Perkins. Python Text Processing with NLTK 2.0 Cookbook.
Publishing Ltd, 2010.
Packt
91
REFERENCIAS
Andrew Y. Ng and Michael I. Jordan. On discriminative vs. generative
classifiers: A comparison of logistic regression and naive bayes, 2001.
Llus Padr
o and Evgeny Stanilovsky.
Freeling 3.0:
Towards wider
multilinguality. In Proceedings of the Language Resources and Evaluation
Conference (LREC 2012), Istanbul, Turkey, 2012. ELRA.
http://nlp.lsi.upc.edu/freeling.
F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel,
M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, J. Vanderplas, A. Passos,
D. Cournapeau, M. Brucher, M. Perrot, and E. Duchesnay. Scikit-learn:
Machine Learning in Python . Journal of Machine Learning Research, 12:
28252830, 2011.
http://scikit-learn.org/.
Pedro Domingos, Michael Pazzani. On the Optimality of the Simple Bayesian
Classifier under Zero-One Loss, Machine Learning. Kluwer Academic
Publishers, 1997.
Peter E. Brown and Vincent J. Della Pietra. Class-Based n-gram Models of
Natural Language. IBM Thomas J. Watson Research Center, 1992.
Peter Turney. Thumbs Up or Thumbs Down? Semantic Orientation Applied to
Unsupervised Classification of Reviews. Institute for Information Technology,
National Research Council of Canada, 2002.
Ross Quinlan. Induction of decision trees. Machine Learning, 1986.
Ryan Rifkin and Aldebaro Klautau. In defense of one-vs-all classification.
Journal of Machine Learning Research, 5:101141, 2004.
Robert Plutchik. Emotions and Life. American Psychological Association, 2002.
Grigori Sidorov, Sabino Miranda-Jimenez, Francisco Viveros-Jimenez,
Alexander Gelbukh, Noe Castro-Sanchez, Francisco Velasquez, Ismael
Daz-Rangel, Sergio Su
arez-Guerra, Alejandro Trevi
no, and Juan Gordon.
Empirical Study of Opinion Mining in Spanish Tweets. LNAI, pages
76297630, 2012.
Benjamin Snyder and Regina Barzilay. Multiple aspect ranking using the good
grief algorithm. 2007.
Stanley F. Chen and Joshua Goodman. An Empirical Study of Smoothing
Techniques for Language Modeling. Center of Research in Computing
Technology, Harvard University, Cambridge, Massachusetts, 1998.
Steven Bird, Edward Loper and Ewan Klein. Natural Language Processing with
Python. OReilly Media Inc, 2009.
http://nltk.org.
Ivan Titov and Ryan McDonald. Modeling online reviews with multi-grain topic
models. In Proceedings of the 17th international conference on World Wide
Web, pages 111120. ACM, 2008. ISBN 978-1-60558-085-2.
Kimitaka Tsutsumi, Kazutaka Shimada, and Tsutomu Endo. Movie review
classification based on a multiple classifier. 2007.
92
Anexo A
C
odigo Fuente, Instalaci
on
y Ejecuci
on del Software
Desarrollado
En este anexo describiremos como ejecutar el clasificador de sentimientos
desarrollado en esta tesis, veremos como parametrizar la aplicacion y
explicaremos los resultados.
A.1
C
odigo Fuente
El c
odigo fuente est
a disponible para su descarga en el siguiente repositorio:
https://github.com/ldubiau/sentiment_classifier
A.2
Instalaci
on de Software
La aplicaci
on requiere Python 2.7 y como se especifica en el archivo setup.py
del c
odigo fuente, es necesario instalar las siguientes dependencias:
httplib2 (0.7.6)
beautifulsoup4 (4.1.3)
nltk (2.0.3)
numpy (1.6.2)
PrettyTable (0.6.1)
scipy (0.10.0)
scikit-learn (0.12.1)
svmlight (0.4)
Y las siguientes herramientas externas:
megam.opt (0.91)
freeling (3.0)
weka.jar (3.6.9)
svmlight (6.02)
93
Y EJECUCION
DEL
ANEXO A. CODIGO
FUENTE, INSTALACION
SOFTWARE DESARROLLADO
A.3
Ejecuci
on de la Aplicaci
on
La aplicaci
on desarrollada se ejecuta seg
un la siguiente especificacion:
> python sentiment_classifier.py -h
usage: sentiment_classifier.py [-h]
(-nb |
-weka {maxent,svm,nb,tree} |
-megam |
-svmlight |
-sklearn {maxent,svm,nb,tree} |
-turney)
[-f F]
[-fn FN]
[-s S]
[-od]
[-pp PP]
[-u]
[-wf]
[-bi]
[-adj]
[-sw]
[-wl WL]
[-dc]
[-neg]
[-stem]
[-lc]
[-punct]
[-acc]
[-lemma]
[-allprepro]
Sentiment Classification Tool
optional arguments:
-h, --help
show this help message and exit
-nb
Naive-bayes classification
-weka {maxent,svm,nb,tree}
Classification using WEKA API
-megam
MaxEnt classification using MEGAM algorithm
-svmlight
SVM classification using SVMLight
-sklearn {maxent,svm,nb,tree}
Classification using sci-kit learn API
-turney
Classification using Turney algorithm
-f F
Number of folds for supervised algorithms using k-fold
cross validation. If this parameter is not provided
then hold-out validation is performed.
-fn FN
Fold number for supervised algorithms using k-fold
94
Y EJECUCION
DEL
ANEXO A. CODIGO
FUENTE, INSTALACION
SOFTWARE DESARROLLADO
cross validation
Corpus size
Out of domain testing
Proportion of positive comments for unbalanced
experiences
Use top training unigrams as feature extractor
Use top training unigrams frequency as feature
extractor
Use top training bigrams as feature extractor
Filter words to use just adjectives
Remove stop words
Filter words by minimum length
Remove duplicated characters
Preprocess negations
Use stemmed words
Transform chars to lower case
Remove punctuation marks
Remove spanish accents
Use lemmatized words
Apply all preprocessors
-s S
-od
-pp PP
-u
-wf
-bi
-adj
-sw
-wl WL
-dc
-neg
-stem
-lc
-punct
-acc
-lemma
-allprepro
Ejemplos de Ejecuci
on
> sentiment_classifier.py -nb -f 5 -s 2000 -u -bi -sw -wl 3 -neg -punct -acc -lc
Par
ametro
Valor
Algoritmo de Clasificaci
on
Algoritmo de Validaci
on
Tama
no de Corpus
Features
Nave Bayes
5-fold Cross Validation
2000 documentos
Presencia de Unigramas +
Presencia de Bigramas
Eliminacion de stopwords,
filtrado de palabras de menos de 3 letras
tratamiento de negaciones
eliminacion de signos de puntuacion
reemplazo de acentos, transformacion a min
uscula.
Preprocesamientos
95
Y EJECUCION
DEL
ANEXO A. CODIGO
FUENTE, INSTALACION
SOFTWARE DESARROLLADO
Par
ametro
Valor
Algoritmo de Clasificaci
on
Algoritmo de Validaci
on
Tama
no de Corpus
Features
Preprocesamientos
A.4
Formato de Resultados
Y EJECUCION
DEL
ANEXO A. CODIGO
FUENTE, INSTALACION
SOFTWARE DESARROLLADO
Siendo,
M
etrica
Descripci
on
fold
n
umero de fold
tp (p)
cases(p)
prec(p)
precisi
on para la la clase positivo.
rec(p)
acc(p)
F 1(p)
tp (n)
cases(n)
prec(n)
precisi
on para la la clase negativo.
rec(n)
acc(n)
F 1(n)
acc(avg)
F 1(avg)
Adem
as, en el caso de clasificadores supervisados, la herramienta imprime los
features m
as informativos del conjunto de datos de entrenamiento.
97
Anexo B
Tablas Completas de
Resultados de Clasificaci
on
En este anexo se exponen las tablas de resultados completas de todas las
experiencias realizadas en esta tesis a partir de los cuales obtuvimos las graficas
y realizamos el correspondiente analisis en la seccion 4.2. Las metricas utilizadas
en este captulo se basan en lo explicado en la seccion 2.3.14.
B.1
B.1.1
Clasificaci
on Supervisada para
Balanceado y un Unico
Dominio
Corpus
Nave Bayes
clase positivos
tp
223
477
955
1918
2883
3826
4783
6674
8592
10490
0.823
0.863
0.895
0.912
0.919
0.909
0.908
0.904
0.901
0.901
0.892
0.954
0.955
0.959
0.961
0.957
0.957
0.953
0.955
0.954
clase negativos
acc.
F1
tp
0.892
0.954
0.955
0.959
0.961
0.957
0.957
0.953
0.955
0.954
0.856
0.906
0.924
0.935
0.940
0.932
0.932
0.928
0.927
0.926
202
424
888
1815
2747
3615
4517
6294
8054
9844
0.882
0.949
0.952
0.957
0.959
0.954
0.954
0.951
0.952
0.951
0.808
0.848
0.888
0.907
0.916
0.904
0.903
0.899
0.895
0.895
avg.
acc.
F1
acc.
F1
0.808
0.848
0.888
0.907
0.916
0.904
0.903
0.899
0.895
0.895
0.843
0.895
0.919
0.931
0.937
0.928
0.928
0.924
0.922
0.922
0.850
0.901
0.921
0.933
0.938
0.930
0.930
0.926
0.925
0.924
0.850
0.901
0.921
0.933
0.938
0.930
0.930
0.926
0.925
0.924
CLASIFICACION
clase positivos
tp
225
473
957
1919
2887
3834
4792
6681
8604
10507
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.815
0.854
0.888
0.907
0.915
0.907
0.907
0.902
0.898
0.900
0.900
0.946
0.957
0.960
0.962
0.959
0.958
0.954
0.956
0.955
clase negativos
acc.
F1
tp
0.900
0.946
0.957
0.960
0.962
0.959
0.958
0.954
0.956
0.955
0.856
0.898
0.921
0.932
0.938
0.932
0.932
0.928
0.926
0.927
199
419
879
1803
2733
3609
4511
6276
8025
9830
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.888
0.939
0.953
0.957
0.960
0.956
0.956
0.952
0.953
0.952
0.796
0.838
0.879
0.901
0.911
0.902
0.902
0.897
0.892
0.894
avg.
acc.
F1
acc.
F1
0.796
0.838
0.879
0.901
0.911
0.902
0.902
0.897
0.892
0.894
0.840
0.886
0.915
0.928
0.935
0.928
0.928
0.923
0.921
0.922
0.848
0.892
0.918
0.930
0.937
0.930
0.930
0.925
0.924
0.924
0.848
0.892
0.918
0.930
0.937
0.930
0.930
0.925
0.924
0.924
clase positivos
tp
102
283
684
1570
2459
3365
4271
6090
7692
9417
0.810
0.797
0.817
0.857
0.877
0.885
0.887
0.878
0.896
0.899
0.408
0.566
0.684
0.785
0.820
0.841
0.854
0.870
0.855
0.856
clase negativos
acc.
F1
tp
0.408
0.566
0.684
0.785
0.820
0.841
0.854
0.870
0.855
0.856
0.543
0.662
0.745
0.820
0.847
0.862
0.870
0.874
0.875
0.877
226
428
847
1739
2656
3562
4454
6151
8104
9939
0.604
0.664
0.728
0.802
0.831
0.849
0.859
0.871
0.861
0.863
0.904
0.856
0.847
0.870
0.885
0.890
0.891
0.879
0.900
0.904
avg.
acc.
F1
acc.
F1
0.904
0.856
0.847
0.870
0.885
0.890
0.891
0.879
0.900
0.904
0.724
0.748
0.783
0.834
0.857
0.869
0.875
0.875
0.880
0.883
0.656
0.711
0.766
0.827
0.853
0.866
0.873
0.874
0.878
0.880
0.633
0.705
0.764
0.827
0.852
0.866
0.872
0.874
0.877
0.880
99
CLASIFICACION
clase positivos
tp
222
473
948
1925
2879
3839
4823
6745
8678
10595
0.841
0.873
0.898
0.921
0.928
0.921
0.924
0.919
0.920
0.919
0.888
0.946
0.948
0.963
0.960
0.960
0.965
0.964
0.964
0.963
acc.
0.888
0.946
0.948
0.963
0.960
0.960
0.965
0.964
0.964
0.963
clase negativos
F1
tp
0.864
208
0.908
431
0.922
892
0.942 1836
0.944 2778
0.940 3671
0.944 4602
0.941 6403
0.941 8242
0.940 10063
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.881
0.941
0.945
0.961
0.958
0.958
0.963
0.962
0.962
0.961
0.832
0.862
0.892
0.918
0.926
0.918
0.920
0.915
0.916
0.915
avg.
acc.
F1
acc.
F1
0.832
0.862
0.892
0.918
0.926
0.918
0.920
0.915
0.916
0.915
0.856
0.900
0.918
0.939
0.942
0.937
0.941
0.938
0.939
0.937
0.860
0.904
0.920
0.940
0.943
0.939
0.943
0.939
0.940
0.939
0.860
0.904
0.920
0.940
0.943
0.939
0.942
0.939
0.940
0.939
clase positivos
tp
221
453
912
1843
2756
3688
4622
6590
8520
10438
0.857
0.876
0.882
0.902
0.901
0.896
0.888
0.873
0.867
0.872
0.884
0.906
0.912
0.921
0.919
0.922
0.924
0.941
0.947
0.949
clase negativos
acc.
F1
tp
0.884
0.906
0.912
0.921
0.919
0.922
0.924
0.941
0.947
0.949
0.870
0.891
0.897
0.911
0.910
0.909
0.906
0.906
0.905
0.909
213
436
878
1799
2696
3570
4419
6037
7693
9469
0.880
0.903
0.909
0.920
0.917
0.920
0.921
0.936
0.941
0.944
0.852
0.872
0.878
0.899
0.899
0.892
0.884
0.862
0.855
0.861
avg.
acc.
F1
acc.
F1
0.852
0.872
0.878
0.899
0.899
0.892
0.884
0.862
0.855
0.861
0.866
0.887
0.893
0.910
0.908
0.906
0.902
0.898
0.896
0.900
0.868
0.889
0.895
0.910
0.909
0.907
0.904
0.902
0.901
0.905
0.868
0.889
0.895
0.910
0.909
0.907
0.904
0.902
0.901
0.905
100
CLASIFICACION
B.1.2
MaxEnt
algoritmo: MaxEnt
features: Presencia de Unigramas
clase positivos
tp
208
458
906
1863
2854
3767
4679
6621
8597
10500
0.809
0.867
0.916
0.932
0.938
0.925
0.934
0.935
0.936
0.936
0.832
0.916
0.906
0.931
0.951
0.942
0.936
0.946
0.955
0.955
acc.
0.832
0.916
0.906
0.931
0.951
0.942
0.936
0.946
0.955
0.955
clase negativos
F1
tp
0.821
201
0.891
430
0.911
917
0.932 1864
0.945 2811
0.933 3694
0.935 4672
0.940 6538
0.946 8416
0.945 10278
0.827
0.911
0.907
0.932
0.951
0.941
0.936
0.945
0.954
0.954
0.804
0.860
0.917
0.932
0.937
0.923
0.934
0.934
0.935
0.934
avg.
acc.
F1
acc.
F1
0.804
0.860
0.917
0.932
0.937
0.923
0.934
0.934
0.935
0.934
0.815
0.885
0.912
0.932
0.944
0.932
0.935
0.940
0.945
0.944
0.818
0.888
0.911
0.932
0.944
0.933
0.935
0.940
0.945
0.944
0.818
0.888
0.911
0.932
0.944
0.933
0.935
0.940
0.945
0.944
algoritmo: MaxEnt
features: Frecuencia de Unigramas
clase positivos
tp
208
454
924
1877
2795
3802
4742
6713
8509
10407
0.812
0.868
0.915
0.927
0.932
0.921
0.931
0.932
0.930
0.940
0.832
0.908
0.924
0.939
0.932
0.951
0.948
0.959
0.945
0.946
acc.
0.832
0.908
0.924
0.939
0.932
0.951
0.948
0.959
0.945
0.946
clase negativos
F1
tp
0.822
202
0.888
431
0.919
914
0.933 1852
0.932 2797
0.936 3675
0.940 4648
0.945 6511
0.938 8358
0.943 10334
0.828
0.904
0.923
0.938
0.932
0.949
0.947
0.958
0.945
0.946
0.808
0.862
0.914
0.926
0.932
0.919
0.930
0.930
0.929
0.939
avg.
acc.
F1
acc.
F1
0.808
0.862
0.914
0.926
0.932
0.919
0.930
0.930
0.929
0.939
0.818
0.882
0.919
0.932
0.932
0.934
0.938
0.944
0.937
0.943
0.820
0.885
0.919
0.932
0.932
0.935
0.939
0.945
0.937
0.943
0.820
0.885
0.919
0.932
0.932
0.935
0.939
0.945
0.937
0.943
101
CLASIFICACION
algoritmo: MaxEnt
features: Presencia de Bigramas
clase positivos
tp
97
278
648
1500
2272
2935
3629
5417
6820
8423
0.789
0.806
0.814
0.851
0.858
0.868
0.877
0.848
0.859
0.877
0.388
0.556
0.648
0.750
0.757
0.734
0.726
0.774
0.758
0.766
clase negativos
acc.
F1
tp
0.388
0.556
0.648
0.750
0.757
0.734
0.726
0.774
0.758
0.766
0.520
0.658
0.722
0.797
0.805
0.795
0.794
0.809
0.805
0.818
224
433
852
1737
2625
3554
4493
6031
7884
9823
0.594
0.661
0.708
0.776
0.783
0.769
0.766
0.792
0.783
0.792
0.896
0.866
0.852
0.869
0.875
0.888
0.899
0.862
0.876
0.893
avg.
acc.
F1
acc.
F1
0.896
0.866
0.852
0.869
0.875
0.888
0.899
0.862
0.876
0.893
0.715
0.750
0.773
0.820
0.826
0.825
0.827
0.825
0.827
0.840
0.642
0.711
0.750
0.809
0.816
0.811
0.812
0.818
0.817
0.829
0.617
0.704
0.747
0.809
0.816
0.810
0.811
0.817
0.816
0.829h
algoritmo: MaxEnt
features: Presencia de Unigramas y Bigramas
clase positivos
tp
209
459
919
1875
2833
3786
4748
6631
8600
10553
0.820
0.876
0.918
0.933
0.934
0.932
0.936
0.942
0.938
0.941
0.836
0.918
0.919
0.938
0.944
0.947
0.950
0.947
0.956
0.959
acc.
0.836
0.918
0.919
0.938
0.944
0.947
0.950
0.947
0.956
0.959
clase negativos
F1
tp
0.828
204
0.896
435
0.919
918
0.935 1866
0.939 2800
0.939 3722
0.943 4673
0.945 6595
0.947 8428
0.950 10343
0.833
0.914
0.919
0.937
0.944
0.946
0.949
0.947
0.955
0.959
0.816
0.870
0.918
0.933
0.933
0.930
0.935
0.942
0.936
0.940
avg.
acc.
F1
acc.
F1
0.816
0.870
0.918
0.933
0.933
0.930
0.935
0.942
0.936
0.940
0.824
0.891
0.918
0.935
0.938
0.938
0.942
0.945
0.945
0.949
0.826
0.894
0.919
0.935
0.939
0.939
0.942
0.945
0.946
0.950
0.826
0.894
0.918
0.935
0.939
0.938
0.942
0.945
0.946
0.950
102
CLASIFICACION
algoritmo: MaxEnt
features: Presencia de Adjetivos
clase positivos
tp
214
439
891
1809
2601
3541
4450
6304
8040
9671
0.863
0.882
0.892
0.896
0.893
0.896
0.892
0.878
0.887
0.884
0.856
0.878
0.891
0.904
0.867
0.885
0.890
0.901
0.893
0.879
clase negativos
acc.
F1
tp
0.856
0.878
0.891
0.904
0.867
0.885
0.890
0.901
0.893
0.879
0.859
0.880
0.891
0.900
0.880
0.890
0.891
0.889
0.890
0.881
216
441
892
1791
2687
3588
4464
6127
7978
9728
0.857
0.878
0.891
0.904
0.871
0.887
0.890
0.898
0.893
0.880
0.864
0.882
0.892
0.895
0.896
0.897
0.893
0.875
0.886
0.884
avg.
acc.
F1
acc.
F1
0.864
0.882
0.892
0.895
0.896
0.897
0.893
0.875
0.886
0.884
0.861
0.880
0.892
0.900
0.883
0.892
0.892
0.886
0.890
0.882
0.860
0.880
0.891
0.900
0.881
0.891
0.891
0.888
0.890
0.882
0.860
0.880
0.891
0.900
0.881
0.891
0.891
0.888
0.890
0.882
B.1.3
SVM
algoritmo: SVM
features: Presencia de Unigramas
clase positivos
tp
210
453
912
1874
2830
3757
4742
6615
8537
10453
0.784
0.856
0.898
0.926
0.922
0.924
0.931
0.934
0.934
0.938
0.840
0.906
0.912
0.937
0.943
0.939
0.948
0.945
0.949
0.950
acc.
0.840
0.906
0.912
0.937
0.943
0.939
0.948
0.945
0.949
0.950
clase negativos
F1
tp
0.811
192
0.880
424
0.905
896
0.932 1851
0.932 2760
0.932 3692
0.939 4647
0.940 6534
0.941 8400
0.944 10304
0.828
0.900
0.911
0.936
0.942
0.938
0.947
0.944
0.948
0.950
0.768
0.848
0.896
0.925
0.920
0.923
0.929
0.933
0.933
0.937
avg.
acc.
F1
acc.
F1
0.768
0.848
0.896
0.925
0.920
0.923
0.929
0.933
0.933
0.937
0.797
0.873
0.903
0.931
0.931
0.931
0.938
0.939
0.940
0.943
0.804
0.877
0.904
0.931
0.932
0.931
0.939
0.939
0.941
0.944
0.804
0.877
0.904
0.931
0.932
0.931
0.939
0.939
0.941
0.943
103
CLASIFICACION
algoritmo: SVM
features: Frecuencia de Unigramas
clase positivos
tp
205
447
907
1877
2826
3753
4736
6619
8537
10467
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.782
0.853
0.899
0.923
0.920
0.924
0.931
0.931
0.934
0.940
clase negativos
acc.
0.820
0.894
0.907
0.939
0.942
0.938
0.947
0.946
0.949
0.952
F1
0.820
0.894
0.907
0.939
0.942
0.938
0.947
0.946
0.949
0.952
tp
0.801
193
0.873
423
0.903
898
0.931 1843
0.931 2754
0.931 3691
0.939 4651
0.938 6512
0.941 8400
0.946 10328
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.811
0.889
0.906
0.937
0.941
0.937
0.946
0.945
0.948
0.951
0.772
0.846
0.898
0.921
0.918
0.923
0.930
0.930
0.933
0.939
avg.
acc.
F1
acc.
F1
0.772
0.846
0.898
0.921
0.918
0.923
0.930
0.930
0.933
0.939
0.791
0.867
0.902
0.929
0.929
0.930
0.938
0.937
0.940
0.945
0.796
0.870
0.903
0.930
0.930
0.930
0.939
0.938
0.941
0.945
0.796
0.870
0.902
0.930
0.930
0.930
0.939
0.938
0.941
0.945
algoritmo: SVM
features: Presencia de Bigramas
clase positivos
tp
96
274
648
1499
2377
3237
4072
5808
7525
9378
0.780
0.806
0.809
0.842
0.850
0.858
0.862
0.854
0.860
0.856
0.384
0.548
0.648
0.750
0.792
0.809
0.814
0.830
0.836
0.853
clase negativos
acc.
F1
tp
0.384
0.548
0.648
0.750
0.792
0.809
0.814
0.830
0.836
0.853
0.515
0.652
0.720
0.793
0.820
0.833
0.837
0.842
0.848
0.854
223
434
847
1718
2582
3466
4346
6006
7778
9427
0.592
0.658
0.706
0.774
0.806
0.820
0.824
0.834
0.841
0.853
0.892
0.868
0.847
0.859
0.861
0.867
0.869
0.858
0.864
0.857
avg.
acc.
F1
acc.
F1
0.892
0.868
0.847
0.859
0.861
0.867
0.869
0.858
0.864
0.857
0.711
0.748
0.770
0.814
0.832
0.842
0.846
0.846
0.852
0.855
0.638
0.708
0.748
0.804
0.827
0.838
0.842
0.844
0.850
0.855
0.613
0.700
0.745
0.804
0.826
0.838
0.842
0.844
0.850
0.855
104
CLASIFICACION
algoritmo: SVM
features: Presencia de Unigramas y Bigramas
clase positivos
tp
201
447
903
1882
2823
3767
4741
6644
8526
10475
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.798
0.861
0.896
0.929
0.922
0.929
0.937
0.935
0.937
0.941
clase negativos
acc.
0.804
0.894
0.903
0.941
0.941
0.942
0.948
0.949
0.947
0.952
F1
0.804
0.894
0.903
0.941
0.941
0.942
0.948
0.949
0.947
0.952
tp
0.801
199
0.877
428
0.899
895
0.935 1857
0.931 2761
0.935 3710
0.942 4680
0.942 6539
0.942 8425
0.947 10345
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.802
0.890
0.902
0.940
0.940
0.941
0.948
0.948
0.947
0.952
0.796
0.856
0.895
0.928
0.920
0.927
0.936
0.934
0.936
0.940
avg.
acc.
F1
acc.
F1
0.796
0.856
0.895
0.928
0.920
0.927
0.936
0.934
0.936
0.940
0.799
0.873
0.899
0.934
0.930
0.934
0.942
0.941
0.941
0.946
0.800
0.875
0.899
0.935
0.931
0.935
0.942
0.942
0.942
0.946
0.800
0.875
0.899
0.935
0.931
0.935
0.942
0.942
0.942
0.946
algoritmo: SVM
features: Presencia de Adjetivos
clase positivos
tp
210
436
888
1801
2697
3599
4494
6325
8140
9968
0.847
0.893
0.879
0.896
0.898
0.891
0.893
0.893
0.893
0.895
0.840
0.872
0.888
0.900
0.899
0.900
0.899
0.904
0.904
0.906
clase negativos
acc.
F1
tp
0.840
0.872
0.888
0.900
0.899
0.900
0.899
0.904
0.904
0.906
0.843
0.883
0.884
0.898
0.899
0.895
0.896
0.898
0.899
0.901
212
448
878
1791
2695
3561
4462
6244
8024
9836
0.841
0.875
0.887
0.900
0.899
0.899
0.898
0.902
0.903
0.905
0.848
0.896
0.878
0.895
0.898
0.890
0.892
0.892
0.892
0.894
avg.
acc.
F1
acc.
F1
0.848
0.896
0.878
0.895
0.898
0.890
0.892
0.892
0.892
0.894
0.845
0.885
0.882
0.898
0.899
0.894
0.895
0.897
0.897
0.900
0.844
0.884
0.883
0.898
0.899
0.895
0.896
0.898
0.898
0.900
0.844
0.884
0.883
0.898
0.899
0.895
0.896
0.898
0.898
0.900
105
CLASIFICACION
B.1.4
Decision Trees
algoritmo: DecisionTrees
features: Presencia de Unigramas
clase positivos
tp
192
420
866
1743
2603
3492
4434
6211
8004
9830
0.747
0.750
0.797
0.814
0.817
0.827
0.850
0.866
0.871
0.873
0.768
0.840
0.866
0.872
0.868
0.873
0.887
0.887
0.889
0.894
clase negativos
acc.
F1
tp
0.768
0.840
0.866
0.872
0.868
0.873
0.887
0.887
0.889
0.894
0.757
0.792
0.830
0.842
0.842
0.849
0.868
0.877
0.880
0.883
185
360
780
1603
2418
3268
4220
6041
7811
9564
0.761
0.818
0.853
0.862
0.859
0.865
0.882
0.884
0.887
0.891
0.740
0.720
0.780
0.801
0.806
0.817
0.844
0.863
0.868
0.869
avg.
acc.
F1
acc.
F1
0.740
0.720
0.780
0.801
0.806
0.817
0.844
0.863
0.868
0.869
0.751
0.766
0.815
0.831
0.832
0.841
0.862
0.874
0.877
0.880
0.754
0.780
0.823
0.837
0.837
0.845
0.865
0.875
0.879
0.882
0.754
0.779
0.823
0.836
0.837
0.845
0.865
0.875
0.879
0.882
algoritmo: DecisionTrees
features: Frecuencia de Unigramas
clase positivos
tp
193
426
868
1738
2593
3501
4435
6218
8016
9822
0.739
0.759
0.799
0.815
0.825
0.819
0.856
0.864
0.868
0.871
0.772
0.852
0.868
0.869
0.864
0.875
0.887
0.888
0.891
0.893
clase negativos
acc.
F1
tp
0.772
0.852
0.868
0.869
0.864
0.875
0.887
0.888
0.891
0.893
0.755
0.803
0.832
0.841
0.844
0.846
0.871
0.876
0.879
0.882
182
365
782
1605
2450
3228
4254
6024
7778
9550
0.762
0.831
0.856
0.860
0.858
0.866
0.883
0.885
0.888
0.890
0.728
0.730
0.782
0.802
0.817
0.807
0.851
0.861
0.864
0.868
avg.
acc.
F1
acc.
F1
0.728
0.730
0.782
0.802
0.817
0.807
0.851
0.861
0.864
0.868
0.744
0.777
0.817
0.830
0.837
0.836
0.866
0.873
0.876
0.879
0.750
0.791
0.825
0.836
0.841
0.841
0.869
0.874
0.877
0.881
0.750
0.790
0.825
0.836
0.840
0.841
0.869
0.874
0.877
0.881
106
CLASIFICACION
algoritmo: DecisionTrees
features: Presencia de Bigramas
clase positivos
tp
96
277
635
1468
2351
3166
4345
6335
8101
9885
0.738
0.749
0.771
0.784
0.789
0.791
0.744
0.733
0.749
0.755
0.384
0.554
0.635
0.734
0.784
0.791
0.869
0.905
0.900
0.899
clase negativos
acc.
F1
tp
0.384
0.554
0.635
0.734
0.784
0.791
0.869
0.905
0.900
0.899
0.505
0.637
0.696
0.758
0.787
0.791
0.802
0.810
0.818
0.820
216
407
811
1596
2373
3165
3504
4698
6285
7784
0.584
0.646
0.690
0.750
0.785
0.791
0.843
0.876
0.875
0.875
0.864
0.814
0.811
0.798
0.791
0.791
0.701
0.671
0.698
0.708
avg.
acc.
F1
acc.
F1
0.864
0.814
0.811
0.798
0.791
0.791
0.701
0.671
0.698
0.708
0.697
0.720
0.745
0.773
0.788
0.791
0.765
0.760
0.777
0.782
0.624
0.684
0.723
0.766
0.787
0.791
0.785
0.788
0.799
0.803
0.601
0.679
0.721
0.766
0.787
0.791
0.783
0.785
0.797
0.801
algoritmo: DecisionTrees
features: Presencia de Unigramas y Bigramas
clase positivos
tp
194
417
862
1742
2613
3513
4450
6225
8023
9843
0.735
0.778
0.798
0.816
0.828
0.836
0.853
0.866
0.871
0.875
0.776
0.834
0.862
0.871
0.871
0.878
0.890
0.889
0.891
0.895
clase negativos
acc.
F1
tp
0.776
0.834
0.862
0.871
0.871
0.878
0.890
0.889
0.891
0.895
0.755
0.805
0.829
0.843
0.849
0.857
0.871
0.878
0.881
0.885
180
381
782
1607
2458
3311
4233
6037
7814
9596
0.763
0.821
0.850
0.862
0.864
0.872
0.885
0.886
0.889
0.892
0.720
0.762
0.782
0.803
0.819
0.828
0.847
0.862
0.868
0.872
avg.
acc.
F1
acc.
F1
0.720
0.762
0.782
0.803
0.819
0.828
0.847
0.862
0.868
0.872
0.741
0.790
0.815
0.832
0.841
0.849
0.865
0.874
0.878
0.882
0.748
0.798
0.822
0.837
0.845
0.853
0.868
0.876
0.880
0.884
0.748
0.798
0.822
0.837
0.845
0.853
0.868
0.876
0.880
0.884
107
CLASIFICACION
algoritmo: DecisionTrees
features: Presencia de Adjetivos
clase positivos
tp
212
415
878
1720
2602
3467
4315
6052
7785
9584
0.779
0.782
0.808
0.825
0.829
0.827
0.827
0.833
0.835
0.840
0.848
0.830
0.878
0.860
0.867
0.867
0.863
0.865
0.865
0.871
clase negativos
acc.
F1
tp
0.848
0.830
0.878
0.860
0.867
0.867
0.863
0.865
0.865
0.871
0.812
0.805
0.842
0.842
0.848
0.846
0.844
0.849
0.850
0.855
190
384
792
1636
2463
3273
4095
5789
7462
9178
0.833
0.819
0.867
0.854
0.861
0.860
0.857
0.859
0.860
0.866
0.760
0.768
0.792
0.818
0.821
0.818
0.819
0.827
0.829
0.834
avg.
acc.
F1
acc.
F1
0.760
0.768
0.792
0.818
0.821
0.818
0.819
0.827
0.829
0.834
0.795
0.793
0.828
0.836
0.840
0.839
0.837
0.843
0.844
0.850
0.804
0.799
0.835
0.839
0.844
0.843
0.841
0.846
0.847
0.853
0.804
0.799
0.835
0.839
0.844
0.842
0.841
0.84
0.847
0.853
B.2
Clasificaci
on No Supervisada para Corpus
Balanceado
clase positivos
tp
42
81
163
337
520
693
864
1203
1565
1891
0.824
0.827
0.819
0.804
0.837
0.834
0.836
0.838
0.834
0.825
0.840
0.810
0.815
0.843
0.867
0.866
0.864
0.859
0.869
0.860
acc.
0.840
0.810
0.815
0.843
0.867
0.866
0.864
0.859
0.869
0.860
clase negativos
F1
tp
0.832
41
50 0.837
0.818
83 100 0.814
0.817 164 200 0.816
0.823 318 400 0.835
0.852 499 600 0.862
0.850 662 800 0.861
0.850 830 1000 0.859
0.849 1168 1400 0.856
0.851 1489 1800 0.864
0.842 1799 2200 0.853
0.820
0.830
0.820
0.795
0.832
0.828
0.830
0.834
0.827
0.818
avg.
acc.
F1
acc.
F1
0.820
0.830
0.820
0.795
0.832
0.828
0.830
0.834
0.827
0.818
0.828
0.822
0.818
0.814
0.846
0.844
0.844
0.845
0.845
0.835
0.830
0.820
0.817
0.819
0.849
0.847
0.847
0.847
0.848
0.839
0.830
0.820
0.817
0.819
0.849
0.847
0.847
0.847
0.848
0.839
108
CLASIFICACION
B.3
Clasificaci
on Supervisada para Corpus
Balanceado con Cambio de Dominio
clase positivos
tp
232
489
981
1953
2950
3947
4936
6939
8897
10883
0.695
0.620
0.595
0.616
0.643
0.616
0.594
0.573
0.577
0.579
0.928
0.978
0.981
0.977
0.983
0.987
0.987
0.991
0.989
0.989
clase negativos
acc.
F1
tp
0.928
0.978
0.981
0.977
0.983
0.987
0.987
0.991
0.989
0.989
0.795
0.759
0.741
0.755
0.778
0.759
0.742
0.727
0.729
0.731
148
200
333
782
1364
1542
1630
1839
2477
3090
0.892
0.948
0.946
0.943
0.965
0.967
0.962
0.968
0.960
0.964
0.592
0.400
0.333
0.391
0.455
0.386
0.326
0.263
0.275
0.281
avg.
acc.
F1
acc.
F1
0.592
0.400
0.333
0.391
0.455
0.386
0.326
0.263
0.275
0.281
0.712
0.563
0.493
0.553
0.618
0.551
0.487
0.413
0.428
0.435
0.760
0.689
0.657
0.684
0.719
0.686
0.657
0.627
0.632
0.635
0.753
0.661
0.617
0.654
0.698
0.655
0.614
0.570
0.578
0.583
algoritmo: MaxEnt
features: Presencia de Unigramas
clase positivos
tp
220
448
918
1768
2728
3675
4709
6529
8512
10367
0.731
0.750
0.694
0.795
0.795
0.754
0.731
0.734
0.708
0.696
0.880
0.896
0.918
0.884
0.909
0.919
0.942
0.933
0.946
0.942
clase negativos
acc.
F1
tp
0.880
0.896
0.918
0.884
0.909
0.919
0.942
0.933
0.946
0.942
0.799
0.817
0.791
0.837
0.848
0.828
0.823
0.822
0.810
0.801
169
351
596
1543
2295
2800
3269
4638
5482
6473
0.849
0.871
0.879
0.869
0.894
0.896
0.918
0.908
0.918
0.911
0.676
0.702
0.596
0.771
0.765
0.700
0.654
0.663
0.609
0.588
avg.
acc.
F1
acc.
F1
0.676
0.702
0.596
0.771
0.765
0.700
0.654
0.663
0.609
0.588
0.753
0.777
0.710
0.817
0.825
0.786
0.764
0.766
0.732
0.715
0.778
0.799
0.757
0.828
0.837
0.809
0.798
0.798
0.777
0.765
0.776
0.797
0.751
0.827
0.836
0.807
0.794
0.794
0.771
0.758
CLASIFICACION
algoritmo: SVM
features: Presencia de Unigramas
clase positivos
tp
225
450
941
1839
2768
3665
4623
6540
8345
10127
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.733
0.718
0.673
0.700
0.730
0.733
0.721
0.709
0.705
0.721
0.900
0.900
0.941
0.919
0.923
0.916
0.925
0.934
0.927
0.921
clase negativos
acc.
F1
tp
0.900
0.900
0.941
0.919
0.923
0.916
0.925
0.934
0.927
0.921
0.808
0.799
0.784
0.795
0.815
0.815
0.810
0.806
0.801
0.809
168
323
542
1210
1975
2667
3209
4317
5510
7088
250
500
1000
2000
3000
4000
5000
7000
9000
11000
0.870
0.866
0.902
0.883
0.895
0.888
0.895
0.904
0.894
0.890
0.672
0.646
0.542
0.605
0.658
0.667
0.642
0.617
0.612
0.644
avg.
acc.
F1
acc.
F1
0.672
0.646
0.542
0.605
0.658
0.667
0.642
0.617
0.612
0.644
0.758
0.740
0.677
0.718
0.759
0.762
0.747
0.733
0.727
0.748
0.786
0.773
0.742
0.762
0.790
0.791
0.783
0.775
0.770
0.782
0.783
0.769
0.731
0.756
0.787
0.788
0.779
0.770
0.764
0.778
algoritmo: DecisionTrees
features: Presencia de Unigramas
clase positivos
tp
215
449
915
1610
2522
3513
4307
6368
8217
9932
0.592
0.579
0.549
0.715
0.743
0.668
0.686
0.631
0.652
0.647
0.860
0.898
0.915
0.805
0.841
0.878
0.861
0.910
0.913
0.903
clase negativos
acc.
F1
tp
0.860
0.898
0.915
0.805
0.841
0.878
0.861
0.910
0.913
0.903
0.701
0.704
0.686
0.757
0.789
0.759
0.764
0.745
0.761
0.754
102
173
249
1358
2128
2251
3029
3280
4616
5588
0.745
0.772
0.746
0.777
0.817
0.822
0.814
0.838
0.855
0.840
0.408
0.346
0.249
0.679
0.709
0.563
0.606
0.469
0.513
0.508
avg.
acc.
F1
acc.
F1
0.408
0.346
0.249
0.679
0.709
0.563
0.606
0.469
0.513
0.508
0.527
0.478
0.373
0.725
0.759
0.668
0.695
0.601
0.641
0.633
0.634
0.622
0.582
0.742
0.775
0.720
0.734
0.689
0.713
0.705
0.614
0.591
0.530
0.741
0.774
0.713
0.729
0.673
0.701
0.694
110
CLASIFICACION
B.4
Clasificaci
on Supervisada
Desbalanceado
para
Corpus
clase positivos
tp
388
784
1568
3138
4695
6238
7789
10918
14013
17130
0.896
0.928
0.937
0.958
0.965
0.963
0.963
0.961
0.963
0.964
0.970
0.980
0.980
0.981
0.978
0.975
0.974
0.975
0.973
0.973
clase negativos
acc.
F1
tp
0.970
0.980
0.980
0.981
0.978
0.975
0.974
0.975
0.973
0.973
0.932
0.953
0.958
0.969
0.971
0.969
0.968
0.968
0.968
0.969
55
139
294
664
1028
1363
1702
2361
3061
3769
0.821
0.897
0.902
0.915
0.907
0.894
0.890
0.893
0.888
0.889
0.550
0.695
0.735
0.830
0.857
0.852
0.851
0.843
0.850
0.857
avg.
acc.
F1
acc.
F1
0.550
0.695
0.735
0.830
0.857
0.852
0.851
0.843
0.850
0.857
0.659
0.783
0.810
0.870
0.881
0.872
0.870
0.868
0.869
0.873
0.760
0.837
0.857
0.905
0.917
0.913
0.912
0.909
0.912
0.915
0.795
0.868
0.884
0.920
0.926
0.921
0.919
0.918
0.918
0.921
algoritmo: MaxEnt
features: Presencia de Unigramas
clase positivos
tp
378
755
1554
3135
4698
6322
7903
11059
14191
17309
0.896
0.924
0.940
0.949
0.960
0.957
0.956
0.959
0.964
0.967
0.945
0.944
0.971
0.980
0.979
0.988
0.988
0.987
0.985
0.983
clase negativos
acc.
F1
tp
0.945
0.944
0.971
0.980
0.979
0.988
0.988
0.987
0.985
0.983
0.920
0.934
0.955
0.964
0.969
0.972
0.971
0.973
0.975
0.975
56
138
301
630
1003
1318
1633
2331
3073
3816
0.718
0.754
0.867
0.906
0.908
0.944
0.944
0.943
0.936
0.929
0.560
0.690
0.752
0.787
0.836
0.824
0.817
0.833
0.854
0.867
avg.
acc.
F1
acc.
F1
0.560
0.690
0.752
0.787
0.836
0.824
0.817
0.833
0.854
0.867
0.629
0.721
0.806
0.843
0.870
0.880
0.876
0.884
0.893
0.897
0.752
0.817
0.862
0.884
0.907
0.906
0.902
0.910
0.920
0.925
0.774
0.827
0.881
0.903
0.920
0.926
0.924
0.929
0.934
0.936
CLASIFICACION
algoritmo: SVM
features: Presencia de Unigramas
clase positivos
tp
379
756
1546
3117
4703
6251
7811
10937
14101
17198
0.896
0.930
0.939
0.956
0.964
0.962
0.965
0.966
0.968
0.971
0.948
0.945
0.966
0.974
0.980
0.977
0.976
0.977
0.979
0.977
clase negativos
acc.
F1
tp
0.948
0.945
0.966
0.974
0.980
0.977
0.976
0.977
0.979
0.977
0.921
0.937
0.952
0.965
0.972
0.969
0.970
0.971
0.973
0.974
56
143
299
658
1022
1352
1713
2412
3130
3883
0.727
0.765
0.847
0.888
0.913
0.901
0.901
0.902
0.913
0.906
0.560
0.715
0.748
0.823
0.852
0.845
0.857
0.861
0.869
0.882
avg.
acc.
F1
acc.
F1
0.560
0.715
0.748
0.823
0.852
0.845
0.857
0.861
0.869
0.882
0.633
0.739
0.794
0.854
0.881
0.872
0.878
0.881
0.891
0.894
0.754
0.830
0.857
0.898
0.916
0.911
0.916
0.919
0.924
0.930
0.777
0.838
0.873
0.910
0.927
0.921
0.924
0.926
0.932
0.934
algoritmo: DecisionTrees
features: Presencia de Unigramas
clase positivos
tp
344
723
1452
2994
4529
6059
7549
10569
13641
16646
0.884
0.911
0.931
0.946
0.946
0.948
0.945
0.947
0.949
0.950
0.860
0.904
0.907
0.936
0.944
0.947
0.944
0.944
0.947
0.946
clase negativos
acc.
F1
tp
0.860
0.904
0.907
0.936
0.944
0.947
0.944
0.944
0.947
0.946
0.872
0.907
0.919
0.941
0.945
0.947
0.944
0.945
0.948
0.948
55
129
292
630
941
1267
1561
2205
2862
3529
0.495
0.626
0.664
0.754
0.776
0.788
0.776
0.778
0.790
0.787
0.550
0.645
0.730
0.787
0.784
0.792
0.780
0.787
0.795
0.802
avg.
acc.
F1
acc.
F1
0.550
0.645
0.730
0.787
0.784
0.792
0.780
0.787
0.795
0.802
0.521
0.635
0.695
0.770
0.780
0.790
0.778
0.782
0.793
0.795
0.705
0.774
0.819
0.862
0.864
0.869
0.862
0.866
0.871
0.874
0.697
0.771
0.807
0.856
0.862
0.869
0.861
0.864
0.870
0.871
112
CLASIFICACION
clase positivos
tp
65
166
354
740
1113
1485
1850
2614
3357
4097
0.714
0.735
0.821
0.824
0.834
0.834
0.826
0.818
0.799
0.777
0.650
0.830
0.885
0.925
0.927
0.928
0.925
0.934
0.932
0.931
acc.
0.650
0.830
0.885
0.925
0.927
0.928
0.925
0.934
0.932
0.931
clase negativos
F1
tp
0.681
374
400 0.914
0.779
740
800 0.956
0.852 1523 1600 0.971
0.872 3042 3200 0.981
0.878 4579 4800 0.981
0.878 6104 6400 0.982
0.872 7609 8000 0.981
0.872 10617 11200 0.983
0.861 13555 14400 0.982
0.847 16421 17600 0.982
0.935
0.925
0.952
0.951
0.954
0.954
0.951
0.948
0.941
0.933
avg.
acc.
F1
acc.
F1
0.935
0.925
0.952
0.951
0.954
0.954
0.951
0.948
0.941
0.933
0.925
0.940
0.961
0.965
0.967
0.967
0.966
0.965
0.961
0.957
0.792
0.877
0.918
0.938
0.941
0.941
0.938
0.941
0.937
0.932
0.803
0.860
0.907
0.919
0.923
0.923
0.919
0.918
0.911
0.902
algoritmo: MaxEnt
features: Presencia de Unigramas
clase positivos
tp
61
134
313
647
967
1335
1627
2383
3001
3677
0.693
0.761
0.841
0.890
0.908
0.906
0.916
0.914
0.917
0.907
0.610
0.670
0.782
0.809
0.806
0.834
0.814
0.851
0.834
0.836
acc.
0.610
0.670
0.782
0.809
0.806
0.834
0.814
0.851
0.834
0.836
clase negativos
F1
tp
0.649
373
400 0.905
0.713
758
800 0.920
0.811 1541 1600 0.947
0.847 3120 3200 0.953
0.854 4702 4800 0.953
0.869 6262 6400 0.959
0.862 7851 8000 0.955
0.882 10977 11200 0.963
0.874 14130 14400 0.959
0.870 17223 17600 0.960
0.932
0.948
0.963
0.975
0.980
0.978
0.981
0.980
0.981
0.979
avg.
acc.
F1
acc.
F1
0.932
0.948
0.963
0.975
0.980
0.978
0.981
0.980
0.981
0.979
0.919
0.933
0.955
0.964
0.966
0.969
0.968
0.972
0.970
0.969
0.771
0.809
0.873
0.892
0.893
0.906
0.897
0.916
0.907
0.907
0.784
0.823
0.883
0.906
0.910
0.919
0.915
0.92
0.922
0.919
113
CLASIFICACION
algoritmo: SVM
features: Presencia de Unigramas
clase positivos
tp
65
146
313
669
1042
1389
1734
2497
3211
3907
0.619
0.756
0.807
0.855
0.867
0.867
0.857
0.879
0.874
0.875
0.650
0.730
0.782
0.836
0.868
0.868
0.867
0.892
0.892
0.888
acc.
0.650
0.730
0.782
0.836
0.868
0.868
0.867
0.892
0.892
0.888
clase negativos
F1
tp
0.634
360
400 0.911
0.743
753
800 0.933
0.794 1525 1600 0.946
0.846 3087 3200 0.959
0.868 4640 4800 0.967
0.867 6186 6400 0.967
0.862 7711 8000 0.967
0.885 10857 11200 0.973
0.883 13939 14400 0.973
0.881 17041 17600 0.972
0.900
0.941
0.953
0.965
0.967
0.967
0.964
0.969
0.968
0.968
avg.
acc.
F1
acc.
F1
0.900
0.941
0.953
0.965
0.967
0.967
0.964
0.969
0.968
0.968
0.906
0.937
0.950
0.962
0.967
0.967
0.965
0.971
0.970
0.970
0.775
0.836
0.868
0.900
0.917
0.917
0.915
0.931
0.930
0.928
0.770
0.840
0.872
0.904
0.917
0.917
0.914
0.928
0.927
0.926
algoritmo: DecisionTrees
features: Presencia de Unigramas
clase positivos
tp
71
136
265
558
897
1195
1458
2121
2704
3345
0.490
0.533
0.586
0.636
0.668
0.674
0.665
0.671
0.668
0.676
0.710
0.680
0.662
0.698
0.748
0.747
0.729
0.757
0.751
0.760
acc.
0.710
0.680
0.662
0.698
0.748
0.747
0.729
0.757
0.751
0.760
clase negativos
F1
tp
0.580
326
400 0.918
0.598
681
800 0.914
0.622 1413 1600 0.913
0.665 2880 3200 0.922
0.705 4354 4800 0.935
0.709 5822 6400 0.935
0.696 7266 8000 0.931
0.711 10158 11200 0.937
0.707 13056 14400 0.936
0.716 15997 17600 0.938
0.815
0.851
0.883
0.900
0.907
0.910
0.908
0.907
0.907
0.909
avg.
acc.
F1
acc.
F1
0.815
0.851
0.883
0.900
0.907
0.910
0.908
0.907
0.907
0.909
0.864
0.882
0.898
0.911
0.921
0.922
0.919
0.922
0.921
0.923
0.762
0.766
0.773
0.799
0.827
0.828
0.819
0.832
0.829
0.835
0.722
0.740
0.760
0.788
0.813
0.815
0.807
0.817
0.814
0.819
114
CLASIFICACION
B.5
Clasificaci
on No Supervisada para Corpus
Desbalanceado
clase positivos
tp
59
128
263
525
800
1070
1334
1859
2385
2939
0.922
0.934
0.953
0.956
0.954
0.945
0.946
0.955
0.959
0.961
0.738
0.800
0.822
0.820
0.833
0.836
0.834
0.830
0.828
0.835
clase negativos
acc.
F1
0.738
0.800
0.822
0.820
0.833
0.836
0.834
0.830
0.828
0.835
0.819
0.862
0.883
0.883
0.889
0.887
0.886
0.888
0.889
0.894
20
40
80
160
240
320
400
560
720
880
0.417
0.492
0.540
0.542
0.557
0.551
0.549
0.553
0.555
0.567
0.750
0.775
0.838
0.850
0.838
0.806
0.810
0.843
0.858
0.865
avg.
acc.
F1
acc.
F1
0.750
0.775
0.838
0.850
0.838
0.806
0.810
0.843
0.858
0.865
0.536
0.602
0.657
0.662
0.669
0.655
0.655
0.668
0.674
0.685
0.744
0.788
0.830
0.835
0.835
0.821
0.822
0.836
0.843
0.850
0.678
0.732
0.770
0.772
0.779
0.771
0.770
0.778
0.782
0.789
16
34
70
143
214
286
360
509
653
801
20
40
80
160
240
320
400
560
720
880
0.500
0.324
0.320
0.373
0.392
0.407
0.404
0.402
0.411
0.412
0.800
0.850
0.875
0.894
0.892
0.894
0.900
0.909
0.907
0.910
0.800
0.850
0.875
0.894
0.892
0.894
0.900
0.909
0.907
0.910
clase negativos
F1
tp
0.615
0.469
0.468
0.527
0.545
0.560
0.558
0.558
0.566
0.567
64
89
171
400
628
864
1069
1484
1945
2376
0.941
0.937
0.945
0.959
0.960
0.962
0.964
0.967
0.967
0.968
0.800
0.556
0.534
0.625
0.654
0.675
0.668
0.662
0.675
0.675
avg.
acc.
F1
acc.
F1
0.800
0.556
0.534
0.625
0.654
0.675
0.668
0.662
0.675
0.675
0.865
0.698
0.683
0.757
0.778
0.793
0.789
0.786
0.795
0.795
0.800
0.703
0.705
0.759
0.773
0.784
0.784
0.786
0.791
0.793
0.740
0.584
0.575
0.642
0.661
0.677
0.673
0.672
0.681
0.681
115
Indice Alfab
etico
accuracy, 43
hold-out, 46
an
alisis de sentimientos, 1
an
alisis subjetivo, vease an
alisis de k-fold cross validation, 46
sentimientos
lexico de opinion, 8, 36
atributos de opini
on, vease features
leave-one-out cross validation, 47
bootstrap, 47
machine learning, 16
aprendizaje no supervisado, 17, 53
clasificaci
on de textos, 15, 52, 59
aprendizaje semi-supervisado, 17
combinaci
on de clasificadores, 41
aprendizaje supervisado, 17, 52
lexico de opini
on, vease lexico de
macro
averaging, 46
opini
on
markov
model, 10
m
ultiples aspectos, 38
Maximum
Likelihood Estimate, 11
puntajes, 38
megam,
61
reglas ad-hoc, 16
tecnicas de machine learning, micro averaging, 46
minera de opiniones, vease analisis de
vease machine learning
sentimientos
corpus, 8, 64
cross validation, vease k-fold cross minera de sentimientos, vease analisis
de sentimientos
validation
Modelo de Maxima Entropa, 26
modelos de n-grama, 9
Decision Trees, 32
bigramas, 10
evaluaci
on de clasificadores, 42, 71
n-gramas, 11
algoritmos supervisados vs no
trigramas, 10
supervisados, 77
unigramas, 10
cambio de dominio, 77
modelos discriminativos, 19
corpus desbalanceado, 45, 79
modelos generativos, 19
evaluaci
on por algoritmo, 74, 75
multi-aspect sentiment analysis, 38
evaluaci
on por atributo, 73
Nave Bayes, 20
metodos de evaluaci
on, 46
Binarized Multinomial Nave
metricas, 42
extracci
on de opiniones, vease analisis
Bayes, 24
de sentimientos
Multinomial Nave Bayes, 21
NLTK, 61
F-measure, 45
normalizacion, 48
F1-measure, 45
features, 8, 17, 68
opinion extraction, vease analisis de
freeling, 39, 62
sentimientos
opinion mining, vease analisis de
Google N-Grams Dataset, 14
sentimientos
116
INDICE ALFABETICO
117