Análisis de Sentimientos en Redes Sociales
Análisis de Sentimientos en Redes Sociales
Alumno:
Alejandro Pérez Sanjuán
Tutor:
Óscar Vega Gisbert
Junio de 2019
1
Resumen
Hoy en dı́a las redes sociales son un pilar central de la comunicación so-
cial; aglutinan suficiente información como para entender los diferentes sesgos
existentes respecto a temas de distinta ı́ndole. El objetivo de este trabajo es
proveer de herramientas capaces de auxiliar en el análisis de los contextos
sociales que surgen en dichas redes, utilizando para ello una combinación de
diversas técnicas desarrolladas en el campo de las Ciencias de la Compu-
tación.
Abstract
Nowadays, social networks are a fundamental core of social communi-
cation; they bring together enough information to understand the different
biases that exist on different topics. The objective of this work is to provide
tools capable of assisting in the analysis of the social contexts that arise in
these networks, using a combination of various techniques developed in the
field of Computer Science.
Índice
1. Introducción 9
1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2. Secuenciación del proyecto . . . . . . . . . . . . . . . . . . . . 10
1.3. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4. Literatura relacionada . . . . . . . . . . . . . . . . . . . . . . 13
1.5. Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2. Marco Teórico 15
2.1. Fundamentos de Redes Neuronales . . . . . . . . . . . . . . . 15
2.1.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2. Neurona Artificial . . . . . . . . . . . . . . . . . . . . . 15
2.1.3. Topologı́as en redes neuronales . . . . . . . . . . . . . 17
2.2. Redes neuronales prealimentadas . . . . . . . . . . . . . . . . 17
2.2.1. Función de coste . . . . . . . . . . . . . . . . . . . . . 19
2.2.2. Descenso del gradiente . . . . . . . . . . . . . . . . . . 20
2.2.3. Retropropagación . . . . . . . . . . . . . . . . . . . . . 21
2.3. Redes neuronales recurrentes . . . . . . . . . . . . . . . . . . . 22
2.3.1. Función de coste . . . . . . . . . . . . . . . . . . . . . 24
2.3.2. Desvanecimiento del Gradiente . . . . . . . . . . . . . 25
2.4. Redes LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3. Desarrollo 27
3.1. Los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1. Origen . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2. Limpieza . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.3. Formato . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2. Arquitectura de la red . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1. Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2. Función de coste . . . . . . . . . . . . . . . . . . . . . 30
3.2.3. Funciones de activación . . . . . . . . . . . . . . . . . . 31
3.3. Caracterı́sticas de la aplicación . . . . . . . . . . . . . . . . . 31
3.3.1. Programación de la red . . . . . . . . . . . . . . . . . . 31
3.3.2. Interfaz Gráfica . . . . . . . . . . . . . . . . . . . . . . 31
5
ÍNDICE ÍNDICE
4. Resultados 32
4.1. Primeros Resultados . . . . . . . . . . . . . . . . . . . . . . . 32
4.2. Interrupción temprana . . . . . . . . . . . . . . . . . . . . . . 34
4.3. Reducción de complejidad . . . . . . . . . . . . . . . . . . . . 34
4.4. Uso de vectores de palabras . . . . . . . . . . . . . . . . . . . 35
4.5. Evaluación mediante el coeficiente Kappa . . . . . . . . . . . . 37
5. Conclusiones 40
5.1. Conclusiones sobre los resultados . . . . . . . . . . . . . . . . 40
5.2. Conclusiones finales . . . . . . . . . . . . . . . . . . . . . . . . 40
6
ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS
Índice de figuras
1. Componentes básicos de una neurona artificial expresados en
forma de grafo computacional [31]. . . . . . . . . . . . . . . . 17
2. Arquitectura neuronal compuesta por tres capas. . . . . . . . 18
3. Ejemplo de red neuronal con conexiones ponderadas entre las
capas 0 y 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Ratio bajo (izquierda) frente a ratio alto (derecha). Fuente: [38]. 20
5. Red N neuronal recurrente. . . . . . . . . . . . . . . . . . . . 24
6. Unidad LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7. Representación one hot para la palabra ala dado el diccionario
D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8. Distribución de las capas del modelo utilizado. . . . . . . . . . 30
9. Vista parcial de la aplicación interactiva creada con Dash Open
Source. El código se puede encontrar aquı́. . . . . . . . . . . . 32
10. Gráficas de los valores de coste para los conjuntos de datos de
entrenamiento y validación. . . . . . . . . . . . . . . . . . . . 33
11. Gráficas de los valores de precisión de la red ejecutando el
conjunto de datos de entrenamiento y validación. . . . . . . . 34
12. Gráficas de los valores de precisión de la red ejecutando el
conjunto de datos de entrenamiento y validación, aplicando
interrupción temprana. . . . . . . . . . . . . . . . . . . . . . . 35
13. Gráficas de los valores de precisión de la red ejecutando el
conjunto de datos de entrenamiento y validación, aplicando
reducción de complejidad . . . . . . . . . . . . . . . . . . . . . 36
14. Gráficas de los valores de precisión de la red ejecutando el con-
junto de datos de entrenamiento y validación, usando GloVe
para mapear las palabras en vectores. . . . . . . . . . . . . . . 37
15. Gráficas de los valores de coste de la red ejecutando el conjunto
de datos de entrenamiento y validación, usando GloVe para
mapear las palabras en vectores. . . . . . . . . . . . . . . . . . 38
7
ÍNDICE DE CUADROS ÍNDICE DE CUADROS
Índice de cuadros
1. Plan para los meses octubre y noviembre. B se refiere a búsque-
da de la bibliografı́a y L se refiere a lectura de la bibliografı́a. . 10
2. Plan para los meses diciembre y enero. PI se refiere a primera
implementación y MI se refiere a mejora de la implementación. 10
3. Plan para el mes febrero. A se refiere a ampliación de la bi-
bliografı́a y L se refiere a lectura de la bibliografı́a. . . . . . . . 11
4. Plan para los meses marzo y abril. NI se refiere a nueva im-
plementación y CI se refiere a corrección de implementación. . 11
5. Plan para los meses marzo y abril. DF se refiere a borrador del
documento, R se refiere a revisión y E se refiere a entrega. . . 12
6. Tabla con los resultados obtenidos en 5 ejecuciones del modelo
para el conjunto de datos test. . . . . . . . . . . . . . . . . . . 39
8
1 INTRODUCCIÓN
1. Introducción
1.1. Objetivos
Los objetivos de este trabajo se exponen a continuación:
Entender y aplicar los modelos one hot, GloVe y word2vec para repre-
sentar palabras en forma de vectores.
9
1.2 Secuenciación del proyecto 1 INTRODUCCIÓN
Octubre Noviembre
Semana 1 B B
Semana 2 B ByL
Semana 3 B ByL
Semana 4 B ByL
Diciembre Enero
Semana 1 PI -
Semana 2 PI -
Semana 3 PI MI
Semana 4 - MI
10
1.2 Secuenciación del proyecto 1 INTRODUCCIÓN
Febrero
Semana 1 A
Semana 2 A
Semana 3 AyL
Semana 4 AyL
Marzo Abril
Semana 1 NI NI
Semana 2 NI CI
Semana 3 NI CI
Semana 4 NI CI
Cuadro 4: Plan para los meses marzo y abril. NI se refiere a nueva imple-
mentación y CI se refiere a corrección de implementación.
11
1.3 Motivación 1 INTRODUCCIÓN
Mayo Junio
Semana 1 BD E
Semana 2 BD -
Semana 3 BD -
Semana 4 R -
Cuadro 5: Plan para los meses marzo y abril. DF se refiere a borrador del
documento, R se refiere a revisión y E se refiere a entrega.
1.3. Motivación
El análisis de sentimientos, también conocido como minerı́a de opinión, es
el proceso de extraer información subjetiva utilizando diferentes herramientas
y técnicas.
Aunque en los últimos años esta técnica se ha hecho muy popular, sus
orı́genes se remontan a finales del siglo XX, con el análisis subjetivo que la
comunidad de lingüı́stica computacional llevaba a cabo en los años 90 [23].
Anteriormente a la irrupción de internet, no habı́an muchos estudios acer-
ca de este tema debido a la limitada disponibilidad de datos para realizar
análisis [34]. Sin embargo, es posible argumentar de forma lógica que la opi-
nión de otros siempre ha sido un tema relevante, especialmente para aquellas
personas que ostenten una posición de poder. El libro 1984, de George Orwell,
plantea esta posibilidad y su utilización para dañar a la sociedad [33]
Hoy, con el crecimiento explosivo de las redes sociales, el análisis de senti-
mientos es más relevante que nunca. Sus muchas aplicaciones crean un debate
permanente sobre las diferentes aproximaciones teóricas; además, la minerı́a
de opinión es una caracterı́stica cada vez más demandada en compañı́as de
todo el mundo que quieren analizar los detalles de sus distintos procesos de
negocio. Algunas aplicaciones podrı́an ser [6]:
1. Opinión de los empleados: Puede ayudar a una compañı́a a realizar
un seguimiento de los sentimientos, opiniones y pensamientos de los
empleados para con sus trabajos.
2. Experiencia de cliente: Una empresa puede utilizar las opiniones
de sus clientes para mejorar la experiencia de compra, crear nuevos
productos o mejorar algunas ya existentes.
12
1.4 Literatura relacionada 1 INTRODUCCIÓN
Estas son sólo algunas aplicaciones del análisis de sentimientos, pero sir-
ven bien para ilustrar las muchas maneras en las que uno puede utilizar esta
técnica.
Este trabajo se centrará en la aproximación con la que el aprendizaje
máquina, o machine learning, trata la minerı́a de opinión, usando para ello
una de las técnica más potentes a dı́a de hoy para ello: las redes neuronales
LSTM.
13
1.5 Metodologı́a 1 INTRODUCCIÓN
y Schmidhuber [18] presentaron por primera vez qué es una red neuronal
recurrente LSTM.
En [23] se expone la correlación entre el crecimiento de internet y el
crecimiento del análisis de sentimientos. Los autores explican y analizan es-
ta correlación presentando una taxonomı́a de los temas de investigación en
distintos campos. La conclusión que parecen extraer es la de que hay una
correlación fuerte entre el número de publicaciones cientı́ficas en el ámbito
de la minerı́a de opinión y el crecimiento de internet.
Una interesante perspectiva del proceso de entrenamiento y por qué es
complejo puede ser encontrado en [13], donde los autores estudian por qué el
descenso del gradiente con una inicialización de pesos y umbrales aleatoria
da resultados pobres. Una inicialización aleatoria de estos parámetros puede
conducir a problemas para encontrar un mı́nimo adecuado para la función de
coste, lo que provoca a su vez que los valores de dichos parámetros no pue-
dan ser actualizados de forma óptima. Este artı́culo resulta un interesante
complemento para [7], donde se expone la complejidad del aprendizaje de de-
pendencias de datos separadas en el tiempo por una distancia suficientemente
grande.
Para publicaciones cientı́ficas más especı́ficas acerca del tema, los recursos
[27], [5] y [20] han sido de gran utilidad en la elaboración de este trabajo.
Los tres aplican técnicas de aprendizaje máquina para realizar análisis de
sentimientos. Especı́ficamente, utilizan redes neuronales recurrentes LSTM
para mejorar la conexión entre las dependencias de datos.
En cuanto a libros, [16], [36] y [37] se han utilizado en la elaboración de
este texto. Mención especial para el libro de Raúl Rojas [37], que provee de
un enfoque elegante y de alto nivel sobre la materia.
Los recursos anteriormente citados no son los únicos que se han usado,
pero sı́ los más relevantes. Durante el resto del trabajo se citarán nuevos,
variados y relevantes recursos.
1.5. Metodologı́a
Sin tener en cuenta la introducción, el trabajo se estructura en tres partes.
En la primera parte se establecerán las bases teóricas necesarias sobre las que
se sustenta la práctica. Una vez expuesto el contexto teórico, se procederá a
desarrollar la arquitectura de la aplicación, explicando sus distintos niveles y
la relación entre ellos. Por último, la tercera parte constará de la exposición
de resultados.
14
2 MARCO TEÓRICO
Cabe señalar que este trabajo no conforma un texto del estado del arte.
Algunas definiciones y requerimientos matemáticos se han omitido en pos de
la operatividad.
2. Marco Teórico
2.1. Fundamentos de Redes Neuronales
Se puede decir que las redes neuronales nacieron bajo la tutela de la
biomı́mesis, la ciencia que estudia y mimetiza la naturaleza para resolver
problemas [10].
El inicio de este campo de estudio se produjo en 1943. Warren McCulloch
y Walter Pitts [26] escribieron un artı́culo sobre el posible funcionamiento de
las neuronas biológicas.
Con el desarrollo de la arquitectura von Neumann, el interés de los estu-
diosos se centró en la computación convencional, dejando de lado las redes
neuronales. No fue hasta 1986 [25] que se progresó en el campo hasta alcanzar
un modelo de neurona multicapa.
Hoy en dı́a, las redes neuronales se usan en todo tipo de aplicaciones y
dispositivos.
2.1.1. Definición
Esencialmente, una red neuronal artificial es un modelo matemático que
imita algunas caracterı́sticas del funcionamiento de las redes neuronales biológi-
cas. Formalmente, se puede describir una red neuronal artificial como una
función f que mapea una determinada entrada x en una determinada salida
y.
f : x −→ y (1)
Las redes neuronales están formadas por un conjunto de unidades sim-
ples de procesamiento llamadas neuronas. Las neuronas se comunican entre
ellas mediante el envı́o de señales a través de un número determinado de
conexiones ponderadas.
15
2.1 Fundamentos de Redes Neuronales 2 MARCO TEÓRICO
16
2.2 Redes neuronales prealimentadas 2 MARCO TEÓRICO
x2
yj
P
θj σ(s)
x3
x4
17
2.2 Redes neuronales prealimentadas 2 MARCO TEÓRICO
1. y [l] → [n[l] , 1]
3. x[l−1] → [n[l−1] , 1]
4. θ[l] → [n[l] , 1]
18
2.2 Redes neuronales prealimentadas 2 MARCO TEÓRICO
(1)
h1
x1 (2)
h1
(1)
h2 ŷ1
x2 (2)
h2
(1)
h3
Figura 3: Ejemplo de red neuronal con conexiones ponderadas entre las capas
0 y 1.
19
2.2 Redes neuronales prealimentadas 2 MARCO TEÓRICO
Figura 4: Ratio bajo (izquierda) frente a ratio alto (derecha). Fuente: [38].
20
2.2 Redes neuronales prealimentadas 2 MARCO TEÓRICO
2.2.3. Retropropagación
El algoritmo de retropropagación es uno de los métodos de entrenamiento
más comunes en redes neuronales. En esencia, el algoritmo de retropropaga-
ción permite calcular el error de la red, y corregir sus parámetros en función
de dicho error.
Con todas las ecuaciones presentadas, la composición de funciones para
la capa L se describe como:
[L] [L]
J yj sj (w, θ) (11)
21
2.3 Redes neuronales recurrentes 2 MARCO TEÓRICO
22
2.3 Redes neuronales recurrentes 2 MARCO TEÓRICO
Algoritmo 2 - Retropropagación
1: for 1 to L do
2: y [l] = w[l] x[l−1] + θ[l]
3: end for
[L] ∂J ∂y [L]
4: δ = ·
∂y [L] ∂s[L]
5: for L to 1 do
∂J
6: = y [l+1] · δ [l]
∂w[l]
∂J
7: = δ [l]
∂θ[l] T
σ 0 sl
8: δ [l] = wl+1 · δ [l+1]
T
9: w[l] = w[l] − η · δ [l] · y [l−1]
10: θ[l] = θ[l] − η · δ [l]
11: end for
de tener una entrada variable para la red. Las redes neuronales recurrentes
solucionan este problema usando bucles de retroalimentación.
Una red neuronal recurrente, también llamada feedback, es aquella que
contiene bucles de retroalimentación, permitiendo que la información adquie-
ra carácter persistente. Estas redes son adecuadas para procesar secuencias.
Una secuencia es un conjunto de datos ordenados. Las redes recurrentes
constituyen una función capaz de mapear los siguientes casos [2]:
1. f : secuencia −→ RL
2. f : RL −→ secuencia
3. f : secuencia −→ secuencia
23
2.3 Redes neuronales recurrentes 2 MARCO TEÓRICO
yt−n yt yt+1
s0 st−1 st st+1
wR N wR N wR N wR
wI wI wI
xt−n xt xt+1
24
2.4 Redes LSTM 2 MARCO TEÓRICO
n
∂J X ∂Jt
= (25)
∂θt t=1
∂θt
25
2.4 Redes LSTM 2 MARCO TEÓRICO
Nueva salida ht
Ct−1 × + Ct
Tanh
× ×
ht−1 ht
Entrada xt
26
3 DESARROLLO
3. Desarrollo
En esta sección se expone el proceso seguido para transformar los datos a
un formato entendible por un modelo de aprendizaje máquina y se explican
las distintas iteraciones seguidas en la creación de dicho modelo, detallando
los problemas asociados y las soluciones encontradas para éstos.
27
3.1 Los datos 3 DESARROLLO
3.1.2. Limpieza
La limpieza de los datos es uno de los pasos más importantes a tener
en cuenta en este tipo de aplicaciones. En este caso particular, los datos
contienen mucho ruido y se necesita aplicar una serie de filtros y técnicas
para eliminar la información que no resulta útil.
Los pasos que se han seguido para limpiar los datos se detallan a conti-
nuación:
1. Convertir el texto a minúscula.
2. Eliminar las menciones a usuarios, los hashtags y los enlaces a páginas
web.
3. Eliminar todos los caracteres alfanuméricos, ası́ como todos los números
y otros caracteres especiales.
4. Eliminar palabras vacı́as, como artı́culos, con la ayuda de un diccionario
inglés.
5. Corregir errores gramaticales en el texto restante.
6. Los tweets cuya longitud sea 0 como resultado de la limpieza serán
descartados.
3.1.3. Formato
Existen varios modelos [28] [35] para representar palabras en el campo del
procesamiento del lenguaje natural; en las primeras versiones del modelo, se
ha utilizado la técnica conocida como codificación one hot. Más adelante se
exploran otras opciones
Esta técnica consiste en crear, o cargar, un diccionario D de palabras
y representar cada palabra como un vector de ceros y un uno en el ı́ndice
correspondiente a dicha palabra en D (figura 7).
La representación puede contraerse aún más. Cada palabra puede repre-
sentarse simplemente por un número entero, que indica el ı́ndice de la posición
en la que se encuentra la palabra en el diccionario D. Ası́ pues, suponiendo
que D tiene una longitud de 3000, el número 2999 equivale a la palabra zuzón
si el indexado empieza en 0.
Para modelizar un tweet completo, se concatenan los números que repre-
sentan las palabras que lo forman en un sólo vector. Si el vector no tiene la
28
3.2 Arquitectura de la red 3 DESARROLLO
Ala 1
.. ..
. .
D = Boli ; Ala = 0 (28)
.. ..
. .
Zuzón 0
29
3.2 Arquitectura de la red 3 DESARROLLO
Capa de salida n = 2
Capa estándar n = 16
Capa LSTM n = 32
Capa Embedding
30
3.3 Caracterı́sticas de la aplicación 3 DESARROLLO
31
4 RESULTADOS
4. Resultados
4.1. Primeros Resultados
La primera ejecución se realizó con 15 epochs (un epoch es una iteración
completa sobre el conjunto de datos). Se puede ver en las gráficas cómo la
red mejora su precisión en el conjunto de datos de entrenamiento, al mismo
tiempo que disminuye el coste. A priori, todo parece ir según lo previsto, con
una precisión del 81,89 %; sin embargo, al comprobar los datos de validación
y compararlos con los de entrenamiento, se puede ver claramente que la red
sufre de sobreajuste (overfitting) (figuras 10 y 11).
Uno de los objetivos principales del aprendizaje máquina es que los mode-
los creados sean capaces de generalizar su conocimiento. Esto es, el modelo
debe ser capaz de realizar predicciones con una precisión aceptable sobre
datos que nunca haya [Link]ı́a preguntarse, entonces, si un mode-
lo bien ajustado a los datos de entrenamiento generalizará bien sobre unos
datos de evaluación, siendo estos últimos desconocidos para dicho modelo.
Sabiendo que la red trata de encontrar una curva que se ajuste a los
puntos, un modelo cuya curva se ciña al mayor número de datos posible será
más preciso, pero la probabilidad de sobreajuste aumentará debido a que
la flexibilidad de la curva puede ser demasiado alta. Esto significa que en
un modelo sobreajustado, la función entre los puntos será demasiado curva,
tanto que las predicciones para los nuevos valores tendrán un error mayor
que el de una curva menos ajustada [39]. En otras palabras, la función de la
32
4.1 Primeros Resultados 4 RESULTADOS
0,46
Coste
0,44
0,42
Validación
Entrenamiento
0,4
2 4 6 8 10 12 14 16
Epochs
Figura 10: Gráficas de los valores de coste para los conjuntos de datos de
entrenamiento y validación.
33
4.2 Interrupción temprana 4 RESULTADOS
0,81
0,8
Precisión
0,79
0,78
Entrenamiento
Validación
0,77
2 4 6 8 10 12 14 16
Epochs
34
4.4 Uso de vectores de palabras 4 RESULTADOS
0,8
Precisión
0,79
0,78
Entrenamiento
Validación
0,77
1 2 3
Epochs
35
4.4 Uso de vectores de palabras 4 RESULTADOS
0,8
Precisión
0,79
0,78
Entrenamiento
Validación
0,77
1 2 3 4
Epochs
36
4.5 Evaluación mediante el coeficiente Kappa 4 RESULTADOS
0,78
Precisión
0,77
0,76
Entrenamiento
Validación
0,75
1 2 3 4 5 6 7 8 9 10 11
Epochs
do, y que la red podrı́a entrenarse más. Además, los tiempos de ejecución de
un epoch usando vectores de palabras son considerablemente menores com-
parados con la codificación atómica: 50 minutos frente a casi 12 horas por
epoch.
37
4.5 Evaluación mediante el coeficiente Kappa 4 RESULTADOS
0,48
Coste
0,47
0,46
0,45
1 2 3 4 5 6 7 8 9 10 11
Epochs
38
4.5 Evaluación mediante el coeficiente Kappa 4 RESULTADOS
total = pp + nn + np + pn (33)
pp + nn 268
po = = = 0,746518 (34)
total 359
pp + pn pp + np 175 182
ppositivo = · = · = 0,24712 (35)
total total 359 359
np + nn pn + nn 184 177
pnegativo = · = · = 0,24712 (36)
total total 359 359
39
5 CONCLUSIONES
0,746518 − 0,49982
k1 = = 0,49321 (38)
1 − 0,49982
El resto de coeficientes son:
5. Conclusiones
5.1. Conclusiones sobre los resultados
Puede parecer que el coeficiente Kappa ha arrojado un resultado algo de-
cepcionante, pero hay que tener en cuenta que dicho coeficiente puede tomar
valores negativos. Además, usando la definición ingenua de probabilidad
casos f avorables a A
P (A) = (40)
casos posibles
la precisión de la red sobre el conjunto de datos test es superior al 70 %.
La calificación recibida responde a una partición en rangos arbitraria creada
por un académico, con el fin de categorizar el rendimiento de un modelo de
clasificación. Sin desmerecer el trabajo de otros, el modelo tiene una precisión
más que aceptable.
Por último, cabe destacar que la transformación de las palabras a vectores
continuos usando GloVe y word2vec ha sido clave para mantener la precisión
al mismo tiempo que se reducı́a de forma excepcional los tiempos de ejecución
de los epochs durante el proceso de entrenamiento.
40
5.2 Conclusiones finales 5 CONCLUSIONES
41
REFERENCIAS REFERENCIAS
Referencias
[1] 7 types of neural network activation functions: How to choo-
se? [Link]
7-types-neural-network-activation-functions-right/. Acces-
sed: 2019-5-10.
[2] Natural language processing with deep learning (winter 2017). https:
//[Link]/playlist?list=PL3FW7Lu3i5Jsnh1rnUwq_
TcylNr7EkRe6. Accessed: 2018-11-22.
[3] Martı́n Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng
Chen, Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matt-
hieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey
Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser,
Manjunath Kudlur, Josh Levenberg, Dan Mané, Rajat Monga, Sherry
Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Be-
noit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Van-
houcke, Vijay Vasudevan, Fernanda Viégas, Oriol Vinyals, Pete Warden,
Martin Wattenberg, Martin Wicke, Yuan Yu, and Xiaoqiang Zheng.
TensorFlow: Large-scale machine learning on heterogeneous systems,
2015. Software available from [Link].
[4] Yaser Abu-Mostafa. Caltech cs 156 learning from data. [Link]
[Link]/[Link], 2012. Accessed: 2019-05-5.
[5] Mohammad Al-Smadi, Bashar Talafha, Mahmoud Al-Ayyoub, and Ya-
ser Jararweh. Using long short-term memory deep neural networks for
aspect-based sentiment analysis of arabic reviews. International Journal
of Machine Learning and Cybernetics, pages 1–13, 2018.
[6] D Alessia, Fernando Ferri, Patrizia Grifoni, and Tiziana Guzzo. Ap-
proaches, tools and applications for sentiment analysis implementation.
International Journal of Computer Applications, 125(3), 2015.
[7] Yoshua Bengio, Patrice Simard, Paolo Frasconi, et al. Learning long-
term dependencies with gradient descent is difficult. IEEE transactions
on neural networks, 5(2):157–166, 1994.
[8] Jean Carletta. Assessing agreement on classification tasks: the kappa
statistic. Computational linguistics, 22(2):249–254, 1996.
42
REFERENCIAS REFERENCIAS
[12] Zihang Dai, Zhilin Yang, Yiming Yang, William W Cohen, Jaime Car-
bonell, Quoc V Le, and Ruslan Salakhutdinov. Transformer-xl: Atten-
tive language models beyond a fixed-length context. arXiv preprint ar-
Xiv:1901.02860, 2019.
[13] Xavier Glorot and Yoshua Bengio. Understanding the difficulty of trai-
ning deep feedforward neural networks. In Proceedings of the thirteenth
international conference on artificial intelligence and statistics, pages
249–256, 2010.
[14] Xavier Glorot, Antoine Bordes, and Yoshua Bengio. Deep sparse rec-
tifier neural networks. In Proceedings of the fourteenth international
conference on artificial intelligence and statistics, pages 315–323, 2011.
[15] Alec Go, Richa Bhayani, and Lei Huang. Twitter sentiment classification
using distant supervision. CS224N Project Report, Stanford, 1(12):2009,
2009.
[19] Ron Kohavi et al. A study of cross-validation and bootstrap for accuracy
estimation and model selection. In Ijcai, volume 14, pages 1137–1145.
Montreal, Canada, 1995.
43
REFERENCIAS REFERENCIAS
[22] Laurens van der Maaten and Geoffrey Hinton. Visualizing data using
t-sne. Journal of machine learning research, 9(Nov):2579–2605, 2008.
[23] Mika V Mäntylä, Daniel Graziotin, and Miikka Kuutila. The evolution
of sentiment analysis—a review of research topics, venues, and top cited
papers. Computer Science Review, 27:16–32, 2018.
[26] Warren S McCulloch and Walter Pitts. A logical calculus of the ideas
immanent in nervous activity. The bulletin of mathematical biophysics,
5(4):115–133, 1943.
[27] Fenna Miedema. Sentiment analysis with long short-term memory net-
works. Research Paper Business Analytics Vrije Universiteit Amster-
dam, 2018.
[28] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient
estimation of word representations in vector space. arXiv preprint ar-
Xiv:1301.3781, 2013.
44
REFERENCIAS REFERENCIAS
[36] Tariq Rashid. Make your own neural network. CreateSpace Independent
Publishing Platform, 2016.
[38] Nicholas Le Roux. Using gradient descent for optimization and learning,
May 2009.
[41] Susana M Vieira, Uzay Kaymak, and Joao MC Sousa. Cohen’s kappa
coefficient as a performance measure for feature selection. In Interna-
tional Conference on Fuzzy Systems, pages 1–8. IEEE, 2010.
45