Logo Studenta

EscobarCeronDarioFernandoQuevedoCortesAngelicaDaniela2021

¡Este material tiene más páginas!

Vista previa del material en texto

MODELO PROTOTIPO DE INTELIGENCIA ARTIFICIAL
BASADO EN PROCESAMIENTO DE LENGUAJE NATURAL Y
REDES DE NEURONAS ARTIFICIALES PARA LA
DETECCIÓN DE NOTICIAS FALSAS EN ESPAÑOL
Daŕıo Fernando Escobar Cerón
Angélica Daniela Quevedo Cortés
Universidad Distrital Francisco José de Caldas
Facultad de Ingenieŕıa
Especialización en Ingenieŕıa de Software
Bogotá, Colombia
2021
MODELO PROTOTIPO DE INTELIGENCIA ARTIFICIAL
BASADO EN PROCESAMIENTO DE LENGUAJE NATURAL Y
REDES DE NEURONAS ARTIFICIALES PARA LA
DETECCIÓN DE NOTICIAS FALSAS EN ESPAÑOL
Daŕıo Fernando Escobar Cerón
Angélica Daniela Quevedo Cortés
Tesis presentada como requisito para optar por el t́ıtulo de:
Especialista en Ingenieŕıa de Software
Director:
Alejandro Paolo Daza Corredor
Revisor:
Jorge Mario Calvo Londoño
Universidad Distrital Francisco José de Caldas
Facultad de Ingenieŕıa
Especialización en Ingenieŕıa de Software
Bogotá, Colombia
2021
Índice general
INTRODUCCIÓN 9
PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN 10
CAPTULO 1. DESCRIPCIÓN DE LA INVESTIGACIÓN 11
1.1. Planteamiento/identificación del problema . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3. Justificación del trabajo/investigación . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5. Marco referencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6. Metodoloǵıa de la investigación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.7. Organización del trabajo de grado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.8. Estudio de sistemas previos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
PARTE II. DESARROLLO DE LA INVESTIGACIÓN 37
CAPTULO 2. ANÁLISIS Y DISEÑO 38
2.1. Fase de Análisis y diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2. Fase de Construcción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
CAPTULO 3. ADM-ARCHIMATE 54
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2. Archimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3. ADM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4. Capa de motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1
3.4.2. Punto de Vista Stakeholder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.3. Punto de Vista de Realización de Objetivos . . . . . . . . . . . . . . . . . . . 60
3.4.4. Punto de Vista de Contribución de Objetivos . . . . . . . . . . . . . . . . . . 61
3.4.5. Punto de Vista de Principios . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.4.6. Punto de Vista de Realización de Requerimientos . . . . . . . . . . . . . . . . 64
3.4.7. Punto de Vista de Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5. Capa de Estrategia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.5.2. Punto de Vista de Mapa de Capacidad . . . . . . . . . . . . . . . . . . . . . . 67
3.5.3. Punto de Vista de Realización de Resultado . . . . . . . . . . . . . . . . . . . 68
3.5.4. Punto de Vista de Mapa de Recurso . . . . . . . . . . . . . . . . . . . . . . . 69
3.5.5. Punto de Flujo de Valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.5.6. Punto de Vista Estrategia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.6. Capa de Negocio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.6.1. Introducion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.6.2. Punto de Vista de Organización . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.6.3. Punto de Vista de Cooperación de Actor . . . . . . . . . . . . . . . . . . . . . 75
3.6.4. Punto de Vista de Función de Negocio . . . . . . . . . . . . . . . . . . . . . . 77
3.6.5. Punto de Vista de Proceso de Negocio . . . . . . . . . . . . . . . . . . . . . . 78
3.6.6. Punto de Vista de Cooperación de Proceso de Negocio . . . . . . . . . . . . . 79
3.6.7. Punto de Vista de Producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.7. Capa de Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.7.1. Introducion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.7.2. Arquitectura Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.7.3. Punto de Vista de Comportamiento de Aplicación . . . . . . . . . . . . . . . 84
3.7.4. Punto de Vista de Cooperación de Aplicación . . . . . . . . . . . . . . . . . . 85
3.7.5. Punto de Vista de Estructura de Aplicación . . . . . . . . . . . . . . . . . . . 86
3.7.6. Punto de Vista de Uso de Aplicación . . . . . . . . . . . . . . . . . . . . . . . 88
3.8. Capa de Tecnoloǵıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.8.1. Introducion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.8.2. Punto de Vista de Tecnoloǵıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2
3.8.3. Punto de Vista de Uso de Tecnoloǵıa . . . . . . . . . . . . . . . . . . . . . . . 92
3.8.4. Punto de Vista de Despliegue e Implementación . . . . . . . . . . . . . . . . 93
3.8.5. Punto de Vista de Estructura de Información . . . . . . . . . . . . . . . . . . 95
3.8.6. Punto de Vista de Realización del Servicio . . . . . . . . . . . . . . . . . . . . 96
3.8.7. Punto de Vista F́ısico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.8.8. Punto de Vista Capas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.9. Capa de Migración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.9.1. Introducion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.9.2. Punto de vista de proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.9.3. Punto de vista de migración . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.9.4. Punto de vista de migración e implementación . . . . . . . . . . . . . . . . . 103
PARTE III. CIERRE DE LA INVESTIGACIÓN 105
CAPITULO 4. RESULTADO Y DISUSIÓN 106
4.1. Recolección, Análisis y presentación de la Información . . . . . . . . . . . . . . . . . 106
CAPITULO 5. CONCLUSIONES 107
5.1. Verificación, contraste y evaluación de los objetivos . . . . . . . . . . . . . . . . . . . 107
CAPITULO 6. PROSPECTIVA DEL TRABAJO DE GRADO 108
6.1. Ĺıneas de investigación futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.2. Trabajos de investigación futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
BIBLIOGRAFIA 112
3
Índice de cuadros
4.1. Parametros LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4
Índice de figuras
1.1. Elementos que convierten un hecho en noticia. [31] . . . . . . . . . . . . . . . . . . . 14
1.2. Flujo de un modelo predictivo de Machine Learning. [56] . . . . . . . . . . . . . . . . 18
1.3. Concepto general de una red neuronal artificial. [29] . . . . . . . . . . . . . . . . . . 20
1.4. Modelo de arquitectura de una red neuronal recurrente. [34] . . . . . . . . . . . . . . 20
1.5. Modelo de matrices multidimensionales. [11] . . . . . . . . . . . . . . . . . . . . . . . 23
1.6. Modelo de matriz unidimensional y bidimensional. [11] . . . . . . . . . . . . . .. . . 24
1.7. Gráficas con Matplotlib. [13] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.8. Gráficas con Seaborn. [14] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.9. Modelo de arquitectura de una red Long Short Term Memory (LSTM). [1] . . . . . . 30
1.10. Modelo del clasificador Naive Bayes. [42] . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.11. Diseño general del funcionamiento del modelo. . . . . . . . . . . . . . . . . . . . . . 39
2.12. Detalle dataframe de noticias reales True-News.csv. . . . . . . . . . . . . . . . . . . . 42
2.13. Detalle dataframe de noticias falsas Fake-News.csv. . . . . . . . . . . . . . . . . . . . 43
2.14. Dataframe de noticias falsas etiquetadas. . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.15. Dataframe de noticias reales etiquetadas. . . . . . . . . . . . . . . . . . . . . . . . . 43
2.16. Dataframe de noticias falsas y verdaderas. . . . . . . . . . . . . . . . . . . . . . . . . 44
2.17. Dataframe con texto concatenado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.18. Dataframe con texto concatenado después de la limpieza. . . . . . . . . . . . . . . . 45
2.19. Nube de palabras noticias falsas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.20. Nube de datos noticias verdaderas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.21. Gráfico de distribución de frecuencias de número de palabras por texto. . . . . . . . 46
2.22. Visualización de datos tokenizados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.23. Detalle del análisis preliminar de LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.24. Resultado del entrenamiento de la red LSTM. . . . . . . . . . . . . . . . . . . . . . . 48
5
2.25. Resultado de la ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.26. Resultado de la ejecución del proceso de clasificación. . . . . . . . . . . . . . . . . . 51
2.27. Matriz de confusión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.28. Resultado [1] para noticia falsa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.29. Resultado [0] para noticia verdaera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.30. Archimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.31. Archimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.32. Vocabulario ADM/Archimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.33. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.34. Modelo de Punto de Vista Stakeholder. Fuente: propio . . . . . . . . . . . . . . . . . 59
3.35. Caso de estudio de Punto de Vista Stakeholder. Fuente: propio . . . . . . . . . . . . 59
3.36. Modelo de Punto de Vista de Realización de Objetivos Fuente: propio . . . . . . . . 60
3.37. Caso de estudio de Punto de Vista de Realización de Objetivos, principio de desa-
rrollo de calidad. Fuente: propio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.38. Caso de estudio de Punto de Vista de Realización de Objetivos, principio de confia-
bilidad. Fuente: propio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.39. Modelo de Punto de Vista de Contribución de Objetivos Fuente: propio . . . . . . . 61
3.40. Caso I de Punto de Vista de Contribución de Objetivos Fuente: propio . . . . . . . . 62
3.41. Caso II de Punto de Vista de Contribución de Objetivos Fuente: propio . . . . . . . 62
3.42. Modelo de Punto de Vista de Principios Fuente: propio . . . . . . . . . . . . . . . . . 63
3.43. Caso de Punto de Vista de Principios Fuente: propio . . . . . . . . . . . . . . . . . . 64
3.44. Modelo de Punto de Vista de Realización de Requerimientos Fuente: propio . . . . . 64
3.45. Caso de Punto de Vista de Realización de Requerimientos Fuente: propio . . . . . . 65
3.46. Modelo de Punto de Vista de Motivación Fuente: propio . . . . . . . . . . . . . . . . 66
3.47. Caso de Punto de Vista de Motivación Fuente: propio . . . . . . . . . . . . . . . . . 66
3.48. Estrategia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.49. Modelo Punto de Vista de Mapa de Capacidad Fuente: propio . . . . . . . . . . . . . 67
3.50. Caso Punto de Vista de Mapa de Capacidad Fuente: propio . . . . . . . . . . . . . . 68
3.51. Modelo Punto de Vista de Realización de Resultado Fuente: propio . . . . . . . . . . 68
3.52. Caso Punto de Vista de Realización de Resultado Fuente: propio . . . . . . . . . . . 69
3.53. Modelo Punto de Vista de Mapa de Recurso Fuente: propio . . . . . . . . . . . . . . 69
3.54. Caso Punto de Vista de Mapa de Recurso Fuente: propio . . . . . . . . . . . . . . . 70
6
3.55. Modelo Punto de Vista de Flujo de Valor Fuente: propio . . . . . . . . . . . . . . . . 70
3.56. Caso Punto de Vista de Flujo de Valor Fuente: propio . . . . . . . . . . . . . . . . . 71
3.57. Modelo Punto de Vista de Estrategia Fuente: propio . . . . . . . . . . . . . . . . . . 71
3.58. Caso Punto de Vista de Estrategia Fuente: propio . . . . . . . . . . . . . . . . . . . 72
3.59. Negocio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.60. Modelo Punto de Vista de Organización Fuente: propio . . . . . . . . . . . . . . . . 74
3.61. Caso Punto de Vista de Organización Fuente: propio . . . . . . . . . . . . . . . . . . 74
3.62. Modelo Punto de Vista de Cooperación de Actor Fuente: propio . . . . . . . . . . . 75
3.63. Caso Punto de Vista de Cooperación de Actor Fuente: propio . . . . . . . . . . . . . 76
3.64. Modelo Punto de Vista de Función de Negocio Fuente: propio . . . . . . . . . . . . . 77
3.65. Caso Punto de Vista de Función de Negocio Fuente: propio . . . . . . . . . . . . . . 77
3.66. Modelo Punto de Vista de Proceso de Negocio Fuente: propio . . . . . . . . . . . . . 78
3.67. Caso Punto de Vista de Proceso de Negocio Fuente: propio . . . . . . . . . . . . . . 78
3.68. Modelo Punto de Vista de Cooperación de Proceso de Negocio Fuente: propio . . . . 79
3.69. Caso Punto de Vista de Cooperación de Proceso de Negocio Fuente: propio . . . . . 80
3.70. Modelo Punto de Vista de Producto Fuente: propio . . . . . . . . . . . . . . . . . . . 81
3.71. Caso Punto de Vista de Producto Fuente: propio . . . . . . . . . . . . . . . . . . . . 82
3.72. Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.73. Arquitectura Aplicación Fuente: propio . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.74. Modelo Punto de Vista de Comportamiento de Aplicación Fuente: propio . . . . . . 84
3.75. Caso Punto de Vista de Comportamiento de Aplicación Fuente: propio . . . . . . . . 85
3.76. Modelo Punto de Vista de Cooperación de Aplicación Fuente: propio . . . . . . . . . 86
3.77. Caso Punto de Vista de Cooperación de Aplicación Fuente: propio . . . . . . . . . . 86
3.78. Modelo Punto de Vista de Estructura de Aplicación Fuente: propio . . . . . . . . . . 87
3.79. Caso Punto de Vista de Estructura de Aplicación Fuente: propio . . . . . . . . . . . 87
3.80. Modelo Punto de Vista de Uso de Aplicación Fuente: propio . . . . . . . . . . . . . . 88
3.81. Caso Punto de Vista de Uso de Aplicación Fuente: propio . . . . . . . . . . . . . . . 89
3.82. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.83. Modelo Punto de Vista de Tecnoloǵıa Fuente: propio . . . . . . . . . . . . . . . . . . 91
3.84. Caso Punto de Vista de Tecnoloǵıa Fuente: propio . . . . . . . . . . . . . . . . . . . 91
3.85. Modelo Punto de Vista de Uso de Tecnoloǵıa Fuente: propio . . . . . . . . . . . . . . 92
7
3.86. Caso Punto de Vista de Uso de Tecnoloǵıa Fuente: propio . . . . . . . . . . . . .. . 93
3.87. Modelo Punto de Vista de Despliegue e Implementación Fuente: propio . . . . . . . 94
3.88. Caso Punto de Vista de Despliegue e Implementación Fuente: propio . . . . . . . . . 94
3.89. Modelo Punto de Vista de Estructura de Información Fuente: propio . . . . . . . . . 95
3.90. Caso Punto de Vista de Estructura de Información Fuente: propio . . . . . . . . . . 95
3.91. Modelo Punto de Vista de Realización del Servicio Fuente: propio . . . . . . . . . . . 96
3.92. Caso Punto de Vista de Realización del Servicio Fuente: propio . . . . . . . . . . . . 96
3.93. Modelo Punto de Vista F́ısico Fuente: propio . . . . . . . . . . . . . . . . . . . . . . 97
3.94. Caso Punto de Vista F́ısico Fuente: propio . . . . . . . . . . . . . . . . . . . . . . . . 97
3.95. Modelo Punto de Vista Capas Fuente: propio . . . . . . . . . . . . . . . . . . . . . . 98
3.96. Caso Punto de Vista Capas Fuente: propio . . . . . . . . . . . . . . . . . . . . . . . . 99
3.97. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.98. Modelo Punto de vista de proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.99. Caso Punto de vista de proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.100.Modelo Punto de vista de migración . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.101.Caso Punto de vista de migración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.102.Modelo Punto de Vista de Migración e Implementación . . . . . . . . . . . . . . . . 103
3.103.Caso Punto de vista de Migración e Implementación . . . . . . . . . . . . . . . . . . 104
4.104.Matriz de Confusión Fuente: propio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8
INTRODUCCIÓN
Las noticias falsas o fake news hacen alusión a la información que careciendo de veracidad es
emitida a través de los medios de comunicación tradicionales y por medio del internet, principal-
mente desde las redes sociales, y es recibida de forma masiva por usuarios que tienen el riesgo
de ser manipulados en beneficio de intereses de algunos ĺıderes u organizaciones, debido a que la
desinformación puede modificar las creencias, pensamientos, decisiones y comportamientos, sin una
validez suficiente, lo que hace que las decisiones sean desinformadas y beneficien a determinados
actores. [2]
Además de la desinformación, las noticias falsas también son un obstáculo para la democracia en
la sociedad, para la libertad y la buena reputación tanto de las personas como de las organizaciones.
Esta problemática es dif́ıcil de solucionar teniendo en cuenta un contexto en donde cada vez es más
fácil producir contenido falso, que puede ser distribuido masivamente hacia receptores a través
de internet los cuales pueden no contar con educación suficiente para saber diferenciar entre las
noticias falsas y las veŕıdicas o simplemente inciden en el error de dar como certera información no
comprobada, además por la subjetividad que acompaña la naturaleza del ser humano y que incide
en los juicios e interpretaciones que se van a hacer sobre ese tipo de contenido, lo cual afecta el
discernimiento. [28]
En consecuencia, la implementación de un modelo prototipo de redes neuronales y procesa-
miento de lenguaje natural para la detección de noticias falsas es una oportunidad de investigación
que generará beneficios a nivel social, poĺıtico y económico debido a que la población podrá infor-
marse con contenido veŕıdico; de igual forma tanto los ĺıderes como organizaciones tendrán menos
riesgo de afectación en su reputación por noticias falsas y mayores oportunidades de conservar su
capacidad operativa en el corto, mediano y largo plazo; y finalmente, la información confiable y
disponible, contribuirá a la democracia, a la sana competencia poĺıtica y comercial y a una sociedad
en armońıa.
9
PARTE I. CONTEXTUALIZACIÓN DE LA INVES-
TIGACIÓN
10
CAPITULO 1. DESCRIPCIÓN DE LA INVESTIGA-
CIÓN
1.1. Planteamiento/identificación del problema
Planteamiento del problema
Las noticias falsas o también conocidas en inglés como fake news han sido un concepto asociado
a aquellas noticias que carecen de veracidad y guardan relación con diferentes asuntos y ĺıderes a
nivel social, económico, poĺıtico y cultural en el páıs o a nivel internacional. [39]
Esta realidad es una problemática significativa debido a que genera desinformación a los ciuda-
danos lo cual hace que asuman creencias, y tomen decisiones incorrectas en beneficio de los intereses
personales de algunos ĺıderes poĺıticos o empresarios por mencionar algunos ejemplos; también es
un hecho que obstaculiza la democracia en la que es indispensable tener acceso a información y
que esta sea veŕıdica; a nivel de reputación también genera consecuencias negativas tanto para las
personas como las empresas, y esto a su vez incide en el cumplimiento de los objetivos financieros,
operacionales, gerenciales, y de relacionamiento, entre otros, debido a la pérdida de confianza y
credibilidad en los grupos de interés. [39]
La agudización de las anteriores problemáticas asociadas a las noticias falsas en el contexto
actual, se debe principalmente a la existencia de las Tecnoloǵıas de la Información y la Comunicación
(TIC), a las facilidades de acceso a la información gracias al Internet y al uso de aplicaciones como
WhatsApp, Facebook, Instagram, YouTube, Twitter, entre otras. A través de estas redes es posible
que la información se pueda producir en mayor cantidad y sea enviada de forma masiva, sin que
existan filtros de control sobre la veracidad de la información, lo suficientemente efectivos, tanto
desde las acciones del emisor, el canal y el receptor.
Al respecto, se conoce que algunas empresas [47] como Starbucks, Facebook, Google entre otras,
han realizado inversiones económicas significativas para contratar profesionales que se responsabi-
licen de la identificación de noticias falsas en internet, pero esta ha sido una opción de alto costo y
baja efectividad, debido a los riesgos por el sesgo asociado a las creencias, opiniones e ideoloǵıa de
las personas a cargo de la identificación de ese tipo de noticias que pueden alterar la objetividad y
los juicios, en un contexto con una tendencia al aumento en la producción de la información y en
las aplicaciones que posibilitan esa difusión.
A estas problemáticas se les suma el hecho de una falta de educación de los usuarios que utilizan
estas redes de comunicación, debido a que no han sido formados para poder diferenciar las noticias
veŕıdicas de las falsas, debilidad que es aprovechada por los generadores de noticias falsas para
continuar produciendo ese tipo de contenido en busca de beneficios personales o de sus clientes.
De esta forma, las noticias falsas ganan mayor participación en Internet, y los consumidores de esa
información se convierten en un aliado inconsciente al compartir las noticias con sus contactos sin
hacer ninguna evaluación o control de veracidad, y todo esto se logra en cuestión de segundos. [29]
Es importante reconocer que gracias a los vertiginosos avances tecnológicos se han podido
generar y evaluar mecanismos de software capaces de reconocer entre una noticia falsa y una que
no lo es, entre los ejemplos más notables está la aplicación de técnicas de Machine Learning: como
el procesamiento de lenguaje natural (PLN), máquinas de soporte vectorial, redes neuronales entre
otros; que se pueden comprobar a través del apoyo de múltiples algoritmos matemáticos y de
11
los cuales existen múltiples avances, investigaciones, modelos, que se han plasmado en art́ıculos y
papers publicados con contenido al respecto. Claramente estos avances no son definitivos y con el
pasar del tiempo y apoyados en el crecimiento tecnológico es posible perfeccionar técnicas actuales,
vislumbrar nuevos métodos y acrecentar este conocimiento en pro de este objetivo,en conjunto estos
se integran en retos de fundamental importancia que se deben afrontar. Ahora bien, es notable que
con respecto a la detención de noticias falsas se encuentra en su mayoŕıa información de fuentes
en inglés u otros lenguajes diferentes al español, por lo cual estas técnicas se han desarrollado
y optimizado para fuentes de habla inglesa especialmente, claramente esta problemática de la
propagación de noticias falsas no es excluyente y se presenta en todo el mundo, lo cual se puede
corroborar y aún más prominente en un mundo dinámico agitado por la evolución tecnológica,
por consiguiente es importante hacer especial énfasis en implementar técnicas capaces de detectar
noticias falsas pero esta vez en el idioma español, lo cual requiere de la práctica investigativa,
en la aplicación y verificación de técnicas apropiadas para construir modelos óptimos capaces de
reconocer noticias únicamente en español.
A partir de lo anterior, es posible afirmar que las noticias falsas tienen una tendencia al creci-
miento y son insuficientes las acciones para poder ejercer un control, por lo que esta problemática
seguirá generando desinformación en los ciudadanos, obstaculizando la democracia y afectando in-
justamente la reputación de ĺıderes, empresarios y entidades a nivel nacional e internacional, lo
cual representa en el caso de las organizaciones, riesgos para que conserven su capacidad operativa
en el corto, mediano y largo plazo. [23] Para evitar que este pronóstico se materialice a futuro es
necesario que el control de las noticias falsas no sea únicamente manual debido a que este es insufi-
ciente teniendo en cuenta la tendencia al crecimiento de la información en los diferentes contextos
mencionados, por lo cual la implementación de un modelo prototipo de inteligencia artificial basado
en procesamiento de lenguaje natural y redes neuronales artificiales para la detección de noticias
falsas en español es una oportunidad para contribuir a la solución de esta problemática.
1.2. Objetivos
Objetivo general
Implementar un modelo prototipo de procesamiento de lenguaje natural y redes de neuronas
artificiales, para detectar si una noticia en español es falsa o no.
Objetivos espećıficos
Construir un conjunto de datos que contenga un listado de noticias falsas y verdaderas en
español, que permita extraer las caracteŕısticas más importantes de cada una, con el fin de
usarlo como el conjunto fuente de entrenamiento, validación y finalmente de pruebas.
Diseñar un modelo de Machine Learning haciendo uso de redes neuronales y procesamiento
de lenguaje natural, que sea capaz de detectar si una noticia en español es falsa o verdadera,
en una fase de entrenamiento y validación.
Evaluar el modelo implementado a través de pruebas independientes al conjunto de datos de
validación y entrenamiento, con el fin de medir el nivel de precisión del modelo.
12
1.3. Justificación del trabajo/investigación
Justificación Práctica
Esta investigación se realiza con el fin de implementar un modelo para la detección de la
veracidad en la información que contiene una noticia en español, esto a través de un modelo de
machine learning que permita realizar dicha detección de una manera completa en cuanto a verificar
fechas de publicación y contrastar la noticia con fuentes confiables y conocidas, evaluando de esta
manera la importancia que tiene, que una noticia publicada en cualquier medio digital contenga
información de primera mano y que pueda ser compartida sin posicionarse sobre la visión y la
opinión general del público al que normalmente están dirigidas. [22]
Existen métodos un poco más dif́ıciles que se pueden aplicar para la detección de estas noticias,
que consisten en la visualización e identificación de exageraciones, errores ortográficos frecuentes,
uso de palabras inadecuadas y oportunistas, pero todas estas medidas no son suficientes. [27]
1.4. Hipótesis
La implementación de un modelo prototipo de inteligencia artificial basado en redes de neuronas
artificiales y procesamiento de lenguaje natural, permitirá detectar si una noticia en español es falsa
o no.
1.5. Marco referencial
Marco Teórico
Noticias Falsas (Fake News)
El término fake news o noticas falsas –en español–, se define como “[...] informaciones publicadas
deliberadamente en medios digitales que no han sido comprobadas ni verificadas, que carecen de
fuentes identificadas y que no cuentan con la supervisión de un editor” [24]. Actualmente, las fake
news han logrado un alto grado de notoriedad debido a su utilización en campañas poĺıticas en
Brasil y Estados Unidos, pero su uso y estudio es tan antiguo como la prensa misma. Aśı lo indica
Waisbord [51], quien resalta que:
[...] las mentiras y la distorsión en la comunicación interpersonal son tan antiguas como la
retórica; la propaganda de larga escala es tan vieja como la persuasión moderna de las masas. Lo
que es diferente es la velocidad, escala y proliferación masiva al igual que el acceso o consumo de
información falsa diseminada en plataformas digitales como Facebook o Twitter.
González [40] argumenta que las fake news no son un fenómeno nuevo y que, por el contrario,
siempre han existido en el periodismo. La diferencia es que en la actualidad estas son más visibles
debido a la popularidad de las redes sociales, que es donde se pueden hacer virales y logran al-
canzar un mayor número de receptores. En este sentido, el uso de las fake news –al menos a nivel
conceptual– no es un fenómeno reciente y su popularidad tiene que ver más con los procesos de
masificación de la información, desarrollados con la llegada del Internet [45].
13
La relación fake news-Internet cobra relevancia en los últimos años, a partir de cambios en
los comportamientos informacionales y su incidencia en agendas mediáticas [35]. Parte de los
cambios radican en que las personas prefieren como primer canal de búsqueda, a las plataformas
digitales. Richter [53] argumenta que esto ocurre porque Internet y las redes sociales posibilitan
que cualquier persona produzca contenido y se viabilice la interacción, configurándose como una
especie de micrófono con el que antes no se contaba y brindando una ilusión de poder en el manejo y
consumo de la información. Caro [41] plantea que este elemento –que cualquier persona pueda crear
contenido y difundirlo– se configura como uno de los retos actuales en el uso del Internet, ya que ante
la alta posibilidad de acceso y la poca capacidad que se tiene para distinguir la información falsa de
la verdadera por parte de quienes consumen los contenidos, se produce un contexto que propicia la
difusión de noticias falsas. Un elemento a destacar en este contexto de auge de plataformas digitales
–y a la vez clave en la difusión de noticias falsas– tiene que ver con el tipo de contenido que circula.
Fernandez [45] destaca que en los portales actuales lo visual (fotos, v́ıdeos, gifs) prima sobre lo
textual, lo que implica la difusión de un contenido más cercano a las emociones:
Esta transición de un esquema de aprehensión de la realidad basada en la dedicación de tiempo,
en el esfuerzo, en la lectura reposada propia del documento impreso se desmantela dando paso a
una nueva forma en los medios digitales. Este modelo consiste en una lectura sintética, donde
predomina la visualización de videos, de preferencia por mensajes cortos, de contenidos con escasa
carga informativa. [45]
La propagación de noticias falsas se enmarca entonces en un contexto de masificación de la
información y en los cambios en los hábitos de obtención de información. Por tal motivo, las fake
news se convierten en un fenómeno con capacidad de incidir en dinámicas sociales, poĺıticas e
incluso, económicas y se constituyen en un desaf́ıo para la sociedad actual –de alĺı la importancia
de profundizar en su comprensión. [31]
Figura 1.1: Elementos que convierten un hecho en noticia. [31]Inteligencia Artificial
La Inteligencia Artificial es un área que intenta desarrollar paradigmas que requieren las máqui-
nas para realizar ciertas tareas, que eventualmente los humanos llevan a cabo con más eficacia y
control [33, 38]. Un sistema que posea inteligencia artificial debe ser capaz de:
14
1. Guardar conocimiento.
2. Aplicar tal conocimiento guardado para resolver algún tipo de problema.
3. Adquirir nuevos conocimientos a través de la experiencia.
Como podemos notar, esta área multidisciplinaria en donde intervienen las Matemáticas, La
Computación, La F́ısica y la Lógica, intenta recrear lo que es posible realizar con el cerebro humano
solo que artificialmente, haciendo uso de algoritmos computacionales complejos.
La Inteligencia Artificial posee tres componentes claves:
1. La representación.
2. El razonamiento.
3. El aprendizaje.
La representación se basa en el lenguaje de estructuras simbólicas que representan tanto el
conocimiento general como el conocimiento espećıfico a la hora de la resolución de un problema. El
razonamiento es simplemente la habilidad para resolver problemas de cualquier ı́ndole, y por último,
el aprendizaje que se lleva a cabo desde el entorno, es el que suministra la información al elemento
de aprendizaje, el cual usa esta información para inducir mejoras en la base del conocimiento, donde
finalmente todo llega a un último bloque que es el que realiza la tarea suministrada.
¿Por qué es importante la inteligencia artificial? La inteligencia artificial automatiza el apren-
dizaje y descubrimiento repetitivos a través de datos. La inteligencia artificial es diferente de la
automatización de robots basada en hardware. En lugar de automatizar tareas manuales, la inteli-
gencia artificial realiza tareas computarizadas frecuentes de alto volumen de manera confiable y sin
fatiga. Para este tipo de automatización, la investigación humana sigue siendo fundamental para
configurar el sistema y hacer las preguntas correctas. [19]
IA agrega inteligencia a productos existentes. En la mayoŕıa de los casos, la inteligencia artificial
no se venderá como aplicación individual. En su lugar, los productos que ya utiliza serán mejorados
con recursos de inteligencia artificial, de forma muy similar en que se agregó Siri como caracteŕıstica
a una nueva generación de productos de Apple. La automatización, las plataformas conversacionales,
los bots y las máquinas inteligentes se pueden combinar con grandes cantidades de datos para
mejorar muchas tecnoloǵıas en el hogar y en el lugar de trabajo, desde inteligencia de seguridad
hasta análisis de las inversiones. [19]
La inteligencia artificial se adapta a través de algoritmos de aprendizaje progresivo para permitir
que los datos realicen la programación. La inteligencia artificial encuentra estructura y regularidades
en los datos de modo que el algoritmo adquiere una habilidad: el algoritmo se convierte en un
clasificador o predictor. De este modo, aśı como el algoritmo puede aprender a jugar ajedrez, puede
aprender también que producto recomendar a continuación en ĺınea. Y los modelos se adaptan
cuando se les proveen nuevos datos. La retropropagación es una técnica de inteligencia artificial
que permite al modelo hacer ajustes, a través de capacitación y datos agregados, cuando la primera
respuesta no es del todo correcta. [19]
La inteligencia artificial analiza más datos y datos más profundos empleando redes neuronales
que tienen muchas capas ocultas. Construir un sistema de detección de fraude con cinco capas
ocultas era casi imposible hace unos años. Todo eso ha cambiado con incréıble poder de cómputo
15
y el Big Data. Se necesitan muchos datos para entrenar modelos de aprendizaje profundo porque
aprenden directamente de los datos. Cuantos más datos les pueda proporcionar, más precisos se
vuelven. [19]
La inteligencia artificial logra una incréıble precisión a través de redes neuronales profundas
– lo cual antes era imposible. Por ejemplo, sus interacciones con Alexa, Google Search y Google
Photos están todas basadas en el aprendizaje profundo – y se siguen volviendo más precisas cuanto
más las usamos. En el campo de la medicina, las técnicas de inteligencia artificial del aprendizaje
profundo, clasificación de imágenes y reconocimiento de objetos se pueden emplear ahora para
detectar cáncer en MRIs (imágenes de resonancia magnética) con la misma precisión que radiólogos
altamente capacitados. [19]
La inteligencia artificial saca el mayor provecho de los datos. Cuando los algoritmos son de
autoaprendizaje, los datos mismos pueden volverse de propiedad intelectual. Las respuestas están
en los datos; usted sólo tiene que aplicar inteligencia artificial para sacarlas a la luz. Como el rol
de los datos es ahora más importante que nunca antes, pueden crear una ventaja competitiva. Si
tiene los mejores datos en una industria competitiva, incluso si todos aplican técnicas similares, los
mejores datos triunfarán. [19]
La inteligencia artificial funciona combinando grandes cantidades de datos con procesamiento
rápido e iterativo y algoritmos inteligentes, permitiendo al software aprender automáticamente de
patrones o caracteŕısticas en los datos. La inteligencia artificial es un vasto campo de estudio que
incluye muchas teoŕıas, métodos y tecnoloǵıas, además de los siguientes subcampos principales: [19]
El aprendizaje basado en máquina automatiza la construcción de modelos anaĺıticos. Emplea méto-
dos de redes neurales, estad́ıstica, investigación de operaciones y f́ısica para hallar insights ocultos
en datos sin ser programada de manera expĺıcita para que sepa dónde buscar o qué conclusiones
sacar.
Una red neural es un tipo de aprendizaje basado en máquina que se compone de unidades
interconectadas (como neuronas) que procesa información respondiendo a entradas externas, trans-
mitiendo información entre cada unidad. El proceso requiere múltiples pases en los datos para
hallar conexiones y obtener significado de datos no definidos. El aprendizaje a fondo utiliza enor-
mes redes neurales con muchas capas de unidades de procesamiento, aprovechando avances en el
poder de cómputo y técnicas de entrenamiento mejoradas para aprender patrones complejos en
grandes cantidades de datos. Algunas aplicaciones comunes incluyen reconocimiento de imágenes
y del habla.
El cómputo cognitivo es un subcampo de la inteligencia artificial que busca una interacción
de tipo humano con las máquinas. Utilizando la inteligencia artificial y el cómputo cognitivo, el
objetivo final es que una máquina simule procesos humanos a través de la capacidad de interpretar
imágenes y el habla – y luego hable de forma coherente como respuesta.
La visión por computadora se apoya en el reconocimiento de patrones y el aprendizaje profundo
para reconocer lo que hay en una imagen o video. Cuando las máquinas pueden procesar, analizar y
entender imágenes, pueden capturar imágenes o videos en tiempo real e interpretar sus alrededores.
El procesamiento del lenguaje natural (NLP, por sus siglas en inglés) es la capacidad de las
computadoras de analizar, entender y generar lenguaje humano, incluyendo el habla. La etapa
siguiente de NLP es la interacción en lenguaje natural, que permite a los humanos comunicarse con
las computadoras utilizando lenguaje normal de todos los d́ıas para realizar tareas.
Además, varias tecnoloǵıas habilitan y dan soporte a la inteligencia artificial:
16
Las unidades de procesamiento gráfico son fundamentales para la inteligencia artificial porque
aportan gran poder de cómputo requerido para el procesamiento iterativo. Entrenar redes neuro-
nales requiere big data, además de poder de cómputo.
Internet de las Cosas genera cantidades masivas de datos de dispositivos conectados, la mayoŕıa
de ellos no analizados. La automatización de modelos con inteligencia artificial nos permite usar
una mayor parte de ellos.
Se estándesarrollando algoritmos avanzados y se combinan en nuevas formas para analizar
más datos con mayor rapidez y en múltiples niveles. Este procesamiento inteligente es clave para
identificar y anticipar eventos poco comunes, entender sistemas complejos y optimizar escenarios
únicos.
Las APIs, o interfaces de programación de aplicaciones, son paquetes portables de código que
hacen posible agregar funcionalidad de inteligencia artificial a productos y paquetes de software
existentes. Éstas pueden agregar recursos de reconocimiento de imágenes a sistemas de seguridad
domésticos y capacidades de preguntas y respuestas que describen datos, crean leyendas y encabe-
zados, o resaltan patrones e insights interesantes en los datos.
En resumen, el objetivo de la inteligencia artificial consiste en proveer software que pueda
razonar lo que recibe y explicar lo que produce como resultado. La inteligencia artificial proporcio-
nará interacciones similares a las humanas con software y ofrecerá soporte a decisiones para tareas
espećıficas, pero no es sustituto de los humanos – y no lo será en el futuro cercano.
Machine Learning
Al hablar de Machine Learning o Aprendizaje Automático, es inevitable la relación con el con-
cepto de la Inteligencia Artificial, ya que hace referencia a la capacidad de una máquina o software
para aprender automáticamente mediante la generación de algoritmos que responden a ciertos da-
tos de entrada en el sistema. En la Informática Clásica, el único modo de conseguir que un sistema
informático realizara un proceso era escribiendo un algoritmo que definiera el contexto y detalles de
cada acción. En cambio, los algoritmos que se usan en el desarrollo del Machine Learning realizan
buena parte de estas acciones por su cuenta. Obtienen sus propios cálculos según los datos que se
recopilan en el sistema, y cuantos más datos obtienen, mejores y más precisas serán las acciones
resultantes. Machine Learning ha tenido mucha fuerza a nivel de investigación y se ha utilizado en
muchas disciplinas, pero lograr una alta precisión requiere una gran cantidad de datos que a veces
es dif́ıcil, costosa o poco práctica de obtener, por lo cual la integración del conocimiento humano en
el aprendizaje automático puede reducir los requisitos de datos, aumentar la confiabilidad y solidez
del aprendizaje automático y construir sistemas de aprendizaje automático explicables. [26]
Los algoritmos de Machine Learning se dividen en cuatro tipos de aprendizaje automático:
Aprendizaje Supervisado: Es básicamente un sinónimo de clasificación. La supervisión en el
aprendizaje proviene de los ejemplos etiquetados en el conjunto de datos de capacitación. Por
ejemplo, en el problema del reconocimiento del código postal, se utilizan como ejemplos de
formación un conjunto de imágenes de códigos postales manuscritas y sus correspondientes
traducciones legibles por máquina, que supervisan el aprendizaje del modelo de clasifica-
ción. [52]
Aprendizaje no Supervisado: Es esencialmente un sinónimo de agrupamiento. El proceso de
17
Figura 1.2: Flujo de un modelo predictivo de Machine Learning. [56]
aprendizaje no está supervisado ya que los ejemplos de entrada no están etiquetados por clase.
Normalmente, podemos utilizar la agrupación en clusters para descubrir clases dentro de los
datos. Por ejemplo, un método de aprendizaje no supervisado puede tomar como entrada un
conjunto de imágenes de d́ıgitos escritos a mano. Suponga que encuentra 10 grupos de datos.
Estos grupos pueden corresponder a los 10 d́ıgitos distintos del 0 al 9, respectivamente. Sin
embargo, dado que los datos de entrenamiento no están etiquetados, el modelo aprendido no
puede decirnos el significado semántico de los grupos encontrados. [52]
Aprendizaje Activo: Es un enfoque de aprendizaje automático que permite a los usuarios
desempeñar un papel activo en el proceso de aprendizaje. Un enfoque de aprendizaje activo
puede pedirle a un usuario (por ejemplo, un experto en el tema) que etiquete un ejemplo,
que puede ser de un conjunto de ejemplos sin etiquetar o sintetizado por el programa de
aprendizaje. El objetivo es optimizar la calidad del modelo adquiriendo activamente conoci-
miento de los usuarios humanos, dada la limitación de cuántos ejemplos se les puede pedir
que etiqueten. [52]
Aprendizaje por Refuerzo: Los sistemas aprenden a partir de la experiencia. Como ejemplo
se puede observar el comportamiento de un coche autónomo. Cuando el veh́ıculo toma una
decisión errónea, es penalizado, dentro de un sistema de registro de valores. Mediante dicho
sistema de premios y castigos, el veh́ıculo desarrolla una forma más efectiva de realizar sus
tareas.
Deep learning o aprendizaje profundo.
Todo ser vivo tiene la capacidad de aprender, de ver, percibir, actuar, comunicar e interpretar de
forma rápida y eficiente que hasta el momento ningún método de aprendizaje de máquina ha podido
simular. Esta tarea que yace en el cerebro es un proceso profundo ya que implica una extensa cadena
de conexiones sinápticas que involucran capas y capas de operaciones y procesos. [25] La gran tarea
de la comunidad académica es determinar algoritmos que se acerquen a un procesamiento eficiente
tal que simulen tareas del cerebro animal. En este punto se destacan los algoritmos de aprendizaje
sin supervisión y supervisados que determinan un enfoque diferente para la alimentación de datos
que se aplican según la necesidad y el entorno. Por esta razón se deben generar algoritmos que sean
capaces de seguir una arquitectura de jerarqúıas, es decir un modelo profundo de caracteŕısticas
18
para el reconocimiento. [5]
Gracias a las técnicas profundas se ha logrado potenciar el reconocimiento automático, el proce-
samiento de escritos, palabras e imágenes. Los avances en deep learning han implicado altos costes
en cuanto a procesamiento computacional ya que implica el uso de múltiples parámetros, por lo
cual una de las fijaciones ha estado en la reducción de dichos costes manteniendo los resultados
obtenidos. Dentro del proceso de deep learning se encuentran las redes de neuronas profundas, que
se basan en un pre-entrenamiento supervisado de datos que constan de ciertas etiquetas. Dentro
del concepto de Redes Neuronales una neurona se constituye como un conjunto de operaciones
entre pesos sinápticos que seguida de una transformación ya sea lineal o de mayor complejidad, en
conjunto generan una arquitectura multicapa de neuronas de entrada, capas ocultas y de salida, es
decir un modelo profundo [21]. Gracias a las arquitecturas profundas los algoritmos de inteligencia
artificial pueden aprender múltiples niveles de representación y abstracción que les ayuden a crear
sentidos visuales como las imágenes, o a reconocer textos, o secuencias como lo es el sonido. El deep
learning se basa en algoritmos computacionales complejos de aprendizaje automático, que como se
mencionó anteriormente, intenta recrear o modelar abstracciones visuales y sensoriales usando ar-
quitecturas que están compuestas de transformaciones no lineales múltiples. Es prudente acotar
que las Redes Neuronales Convolucionales son usadas en este tipo de algoritmo. Algo interesante
que busca el deep learning es el reconocimiento de ciertos patrones, sean aleatorios o no. [21]
Red de Neuronas Artificiales.
En los últimos años, el estudio de las Redes Neuronales ha despertado un gran interés por parte
de la comunidad cient́ıfica. Su importancia radica en el hecho de que el cerebro humano trabaja de
una manera distinta o como lo hace un computador actual.
El cerebro humano es una máquina altamente compleja y no lineal capaz de realizar y procesar
información. El mismo tiene la capacidad de organizar sus estructuras constituyentes conocidas
como Neuronas, para aśı poder llevar a cabo (o procesar) cierta cantidad de datos, que de hecho,
en varios casos, la velocidad de procesamiento de la misma suele realizarse a una velocidadmayor
que la de un computador. Las redes neuronales, a diferencia del cerebro humano, están constituidas
en su totalidad de neuronas artificiales, que tienen como función o están diseñadas para llevar a cabo
ciertas tareas o funciones que van a depender exclusivamente del interés del problema que se quiera
llevar a cabo. Ahora bien, la pregunta siguiente que debeŕıamos responder es: ¿Cómo construir una
Red de Neuronas? La misma es implementada generalmente usando dispositivos electrónicos o bien
simulándolas mediante un software digital. [33, 38]
El propósito fundamental de la construcción de estas redes es poder llevar a cabo múltiples
actividades, todas de la mano con el proceso de aprendizaje, que es el objetivo final cuando se
tienen bien armadas o diseñadas. Podemos resumir todo lo comentado anteriormente, diciendo que
las Redes Neuronales son un distribuidor masivo (compuesto de unidades llamadas neuronas) con
la finalidad de procesar información para su posterior uso en el proceso de aprendizaje. Las Redes
Neuronales, al igual que el cerebro humano, adquieren el conocimiento de su entorno mediante el
proceso de aprendizaje. El procedimiento usado para llevar a cabo este proceso se conoce como
Algoritmos de Aprendizaje. [38] De forma general una neurona artificial es un modelo matemático
simple de una neurona [29] que de forma general es de la siguiente manera:
19
Figura 1.3: Concepto general de una red neuronal artificial. [29]
Redes Neuronales Recurrentes
Continuando con el estudio de Redes Neuronales, se llega al punto de las Redes Neuronales
Recurrentes. Las mismas son un tipo de red neuronal con uno o más ciclos o loops de retroalimen-
tación que puede ser de tipo local o global. Este tipo de red realiza retroalimentación desde las
neuronas de salida hasta la capa de entrada. Este tipo de redes se consideran recurrentes debido
a que sus entradas son dependientes de las salidas de procesamientos anteriores. Otra forma a la
cual se le presta gran atención es a la retroalimentación global cuando proviene de las neuronas
escondidas de la red hasta la capa de entrada. Tendremos dos tipos de funcionalidades de estas
Redes Neuronales Recurrentes, una de ella es la de las memorias asociativas y la del mapeo entrada
y salida de las redes, lo cual les permite generar predicciones. Sin embargo, deben ser entrenadas a
partir de grandes conjuntos de datos. [33, 38, 50]
La Red Neuronal Recurrente obtiene el resultado de uno o varios procesamientos anteriores y
como se expone a continuación, se puede descomponer el proceso en una secuencia completa de
entradas y salidas utilizadas en los siguientes ciclos.
Figura 1.4: Modelo de arquitectura de una red neuronal recurrente. [34]
Las Redes Neuronales Recurrentes pueden aprender datos a partir de entradas anteriores utili-
zando conexiones Recurrentes, lo cual significa que en el reconocimiento de patrones pueden crear
relaciones entre dichas entradas y la actual, y a su vez permite determinar cuáles de los datos se
20
encuentran más cercanos y más lejanos unos de otros. [38]
Esta clase de procesamiento ha resultado ser particularmente efectivo cuando se trata de analizar
uno a uno los pixeles en una imagen que no presentan dependencias espaciales espećıficas entre ellos,
sino que dichas dependencias se crean en los recorridos secuenciales en diferentes direcciones y la red
encargada de su aprendizaje aprenderá progresivamente las caracteŕısticas de cada dato recibido
y lo relacionarán con los datos anteriores. El resultado del aprendizaje será el aprendizaje de las
distintas regiones de cada imagen y sus relaciones con entradas de imágenes similares de forma
posterior.
Tensorflow
TensorFlow es una biblioteca de código abierto que se basa en un sistema de redes neuronales.
Esto significa que puede relacionar varios datos en red simultáneamente, de la misma forma que
lo hace el cerebro humano. Por ejemplo, puede reconocer varias palabras del alfabeto porque rela-
ciona las letras y fonemas. Otro caso es el de imágenes y textos que se pueden relacionar entre śı
rápidamente gracias a la capacidad de asociación del sistema de redes neuronales. En el programa,
se almacenan todas las pruebas y experimentos que se realizaron para el desarrollo de programas
y aplicaciones.
La decisión de liberar TensorFlow se tomó en noviembre de 2015, por lo que hoy es posible
acceder a esta herramienta libremente y editarla en función de las necesidades. Ya cuando se lanzó,
la capacidad de reconocimiento y relación que teńıa era superior al 93 % en las imágenes, y su
perfeccionamiento a través de la licencia OpenSource ha permitido su uso masivo. Además, también
consiguió que en la versión de 2015 el tiempo de procesamiento se redujese a los 0,7 segundos de
media. Por lo tanto, se trata de una herramienta que mejoró en capacidad de procesamiento y en
rapidez. [9]
La arquitectura de Tensorflow funciona en tres partes:
Procesamiento previo de los datos
Construir el modelo
Entrenar y estimar el modelo
Se llama Tensorflow porque toma entrada como una matriz multidimensional, también conocida
como tensores. Puede construir una especie de diagrama de flujo de operaciones (llamado Graph)
que desea realizar en esa entrada. La entrada entra en un extremo, y luego fluye a través de este
sistema de múltiples operaciones y sale el otro extremo como salida. Esta es la razón por la que se
llama TensorFlow porque el tensor entra en él fluye a través de una lista de operaciones, y luego
sale del otro lado. [10]
Python
Python [8] es un lenguaje de programación interpretado cuya principal filosof́ıa es que sea
legible por cualquier persona con conocimientos básicos de programación. Además, posee una serie
de caracteŕısticas que lo hacen muy particular y que, sin duda, le aportan muchas ventajas y están
en la ráız de su uso tan extendido:
21
Es totalmente gratuito. Se trata de un lenguaje open source o de código abierto, por lo que
no hay que pagar ninguna licencia para utilizarlo. Está respaldado por una enorme comunidad.
Su carácter gratuito hace que continuamente se estén desarrollando nuevas libreŕıas y aplicaciones.
Es dif́ıcil pensar en algo que no haya hecho alguien. Esto es un factor multiplicativo para los
programadores, puesto que cualquier duda estará resuelta en los foros.
Es un lenguaje multiparadigma. Esto significa que combina propiedades de diferentes paradig-
mas de programación, lo que permite que sea muy flexible y fácil de aprender de manera indepen-
diente de los conocimientos del interesado.
Sus aplicaciones no se limitan a un área en concreto. El hecho de que sea multiparadigma
permite utilizarlo en campos aparentemente tan dispares como el diseño de aplicaciones web o la
inteligencia artificial, entre muchos otros.
Python es apto para todas las plataformas. Podemos ejecutarlo en diferentes sistemas operativos
como Windows o Linux simplemente usando el intérprete correspondiente.
Como vemos, los beneficios son muchos, pero ¿y los inconvenientes? El principal obstáculo que
le encontramos a Python es que se trata de un lenguaje interpretado, es decir, que no se compila,
sino que se interpreta en tiempo de ejecución. Como consecuencia, es más lento que Java o C/C++.
Sin embargo, esto no es un gran problema, ya que las diferencias en velocidad son pequeñas
y hoy en d́ıa el cuello de botella en los proyectos de desarrollo de software no está en la CPU.
Gracias a avances como la computación en la nube, en la actualidad disponemos de una gran
capacidad de cómputo a un coste muy asequible. El desaf́ıo está en acortar los tiempos de desarrollo
mejorando la mantenibilidad y calidad del código. Python pone el foco en esto facilitando la vida
a los desarrolladores.
Los principios de diseño del lenguaje se gúıan por una serie de aforismos recogidos en el Zen de
Python. En estos principios podemos ver que la legibilidad del código y favorecer su simplicidad
son partesesenciales del diseño del lenguaje desde el principio.
Algunos de los puntos que encontramos en el Zen de Python concuerdan con la mentalidad
predominante en las compañ́ıas de mayor éxito en la actualidad:
Expĺıcito es mejor que impĺıcito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Si la implementación es dif́ıcil de explicar, es una mala idea.
Si la implementación es fácil de explicar, podŕıa ser buena idea.
Pandas
Es un paquete de Python que proporciona estructuras de datos similares a los dataframes de R.
Pandas depende de Numpy, la libreŕıa que añade un potente tipo matricial a Python. Los principales
tipos de datos que pueden representarse con pandas son: [7]
Datos tabulares con columnas de tipo heterogéneo con etiquetas en columnas y filas.
22
Series temporales.
Pandas proporciona herramientas que permiten:
Leer y escribir datos en diferentes formatos: CSV, Microsoft Excel, bases SQL y formato
HDF5.
Seleccionar y filtrar de manera sencilla tablas de datos en función de posición, valor o etique-
tas.
Fusionar y unir datos.
Transformar datos aplicando funciones tanto en global como por ventanas.
Manipulación de series temporales.
Hacer gráficas.
En pandas existen tres tipos básicos de objetos todos ellos basados a su vez en Numpy:
Series (listas, 1D).
DataFrame (tablas, 2D).
Panels (tablas 3D).
Numpy
NumPy es, al igual que Pandas, Matplotlib o Scikit-Learn, es una libreŕıa que proporciona una
estructura de datos de matriz que tiene algunos beneficios sobre las listas regulares de Python.
Algunos de estos beneficios son: ser más compacto, acceder más rápido a leer y escribir art́ıculos,
ser más conveniente y más eficiente. [11]
NumPy es un paquete de Python que significa “Numerical Python”, es la libreŕıa principal
para la informática cient́ıfica, proporciona potentes estructuras de datos, implementando matrices y
matrices multidimensionales. Estas estructuras de datos garantizan cálculos eficientes con matrices.
Figura 1.5: Modelo de matrices multidimensionales. [11]
23
NumPy array o el arreglo de matrices de NumPy. NumPy array es un potente objeto de matriz
N-dimensional que tiene forma de filas y columnas, en la que tenemos varios elementos que están
almacenados en sus respectivas ubicaciones de memoria. Pero, a que se refiere exactamente esto,
veamos la siguiente imagen, esta es una matriz bidimensional porque tiene filas y columnas, como
puedes ver tiene cuatro filas y tres columnas, por lo que se convierte en una matriz bidimensional.
En el caso de que solo tuviera una hilera entonces habŕıa sido una matriz unidimensional.
Figura 1.6: Modelo de matriz unidimensional y bidimensional. [11]
Según lo explicado anteriormente en la primera figura tenemos una matriz unidimensional o
1D. En la segunda figura, tenemos una matriz bidimensional o 2D, en donde las filas se indican
como el eje 0, mientras que las columnas son el eje 1.
Matplotlib
Matplotlib es la libreŕıa de visualización más popular de Python. Su primera versión, creada por
John D. Hunter, se remonta al año 2003, y esto puede ser considerado a la vez tanto una fortaleza
como una debilidad. Es cierto que, con el tiempo, matplotlib se ha instaurado como la libreŕıa de
visualización de referencia y, de hecho, otras muchas libreŕıas han desarrollado sus herramientas de
visualización sobre matplotlib: seaborn, ggplot... incluso pandas basa en matplotlib sus herramien-
tas de visualización (los DataFrames poseen el método plot importado de matplotlib que permite
crear y personalizar con cierta facilidad una gráfica con los datos contenidos en el DataFrame).
Pero también es cierto que, con el paso de los años, matplotlib ha sido superada por las libreŕıas
mencionadas (seaborn, ggplot) y por otras (Bokeh, Plotly) que ofrecen visualizaciones más atracti-
vas o unas interfaces más coherentes y amigables. En cualquier caso, es esa dependencia que tienen
muchas libreŕıas con respecto a matplotlib lo que hace más que conveniente el conocimiento de
matplotlib: las libreŕıas de más alto nivel diseñadas sobre ésta no siempre ofrecen toda la funciona-
lidad que necesitamos y, cuando queremos afinar en el diseño de una visualización, frecuentemente
no nos queda más remedio que acudir directamente a matplotlib. [13]
24
Figura 1.7: Gráficas con Matplotlib. [13]
Otra de las fortalezas de matplotlib es su compatibilidad con diferentes sistemas operativos y
entornos en los que se ejecuta, lo que ayudó a su rápida adopción por parte de la comunidad.
De lo dicho se deduce que matplotlib es una libreŕıa de bajo nivel, muy potente y extensa
pero que puede resultar un tanto confusa al principio. Ofrece herramientas para la creación de
visualizaciones en 2D, aunque se completa con el uso de otros add-ons que permiten la generación
de gráficas 3D (mplot3d) y mapas (basemap).
Seaborn
Seaborn es una libreŕıa de visualización de datos para Python desarrollada sobre matplotlib.
Ofrece una interfaz de alto nivel para la creación de atractivas gráficas. Además, está ı́ntimamente
integrada con las estructuras de datos de pandas, lo que permite utilizar el nombre de los Data-
Frames y campos directamente como argumentos de las funciones de visualización. [14]
25
Figura 1.8: Gráficas con Seaborn. [14]
Seaborn tiene como objetivo convertir la visualización en una parte central de la exploración
y comprensión de los datos, generando atractivas gráficas con sencillas funciones que ofrecen una
interfaz semejante, facilitando el paso de unas funciones a otras.
Seaborn ofrece varias caracteŕısticas destacadas:
Funciones con una API estandarizada que limita la necesidad de tener que memorizar con-
juntos de parámetros diferentes en función del gráfico deseado.
Gráficas visualmente atractivas sin necesidad de realizar complicados ajustes.
Una API orientada a conjuntos de datos para examinar la relación entre múltiples variables.
Opciones para mostrar la distribución de variables univariadas y bivariadas.
Cálculo automático y dibujo de modelos de regresión lineal para diferentes tipos de variables
dependientes.
Herramientas para mostrar la estructura de datasets complejos.
Abstracciones de alto nivel para estructurar rejillas multigráficas con el objetivo de poder
crear complejas visualizaciones.
Sencillo control sobre los estilos gráficos disponibles.
Herramientas para la elección de paletas de color adecuadas que permitan revelar patrones
en los datos.
keras
Keras es una biblioteca de código abierto (con licencia MIT) escrita en Python, que se basa
principalmente en el trabajo de François Chollet, un desarrollador de Google, en el marco del pro-
yecto ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System). La primera
26
versión de este software multiplataforma se lanzó el 28 de marzo de 2015. El objetivo de la biblio-
teca es acelerar la creación de redes neuronales: para ello, Keras no funciona como un framework
independiente, sino como una interfaz de uso intuitivo (API) que permite acceder a varios frame-
works de aprendizaje automático y desarrollarlos. Entre los frameworks compatibles con Keras, se
incluyen Theano, Microsoft Cognitive Toolkit (anteriormente CNTK) y TensorFlow . [12]
Funcionamiento de Keras
Keras es una biblioteca que funciona a nivel de modelo: proporciona bloques modulares sobre
los que se pueden desarrollar modelos complejos de aprendizaje profundo. A diferencia de los
frameworks, este software de código abierto no se utiliza para operaciones sencillas de bajo nivel,
sino que utiliza las bibliotecas de los frameworks de aprendizaje automático vinculadas, que en
cierto modo actúan como un motor de backend para Keras. Las capas de la red neuronal que se
quieren configurar se relacionan entre śı de acuerdo con el principio modular, sin que el usuario
de Keras tenga que comprender o controlar directamente el propio backend del framework elegido
. [12]
Comohemos mencionado, Keras se basa especialmente en las herramientas TensorFlow, Theano
y Microsoft Cognitive Toolkit, para las cuales existen interfaces listas para usar que permiten un
acceso rápido e intuitivo al backend correspondiente. Aśı, no es necesario que te decidas por un fra-
mework concreto, porque es posible cambiar de backend fácilmente. Si lo prefieres, también puedes
elegir un backend alternativo, aparte de estas tres soluciones. Para ello, solo debes especificarlo en
el archivo de configuración (keras.json) y aplicarlo mediante las funciones “placeholder”, “variable”
y “function”.
Ventajas de Keras
La biblioteca de código abierto Keras supone una excelente aportación a las herramientas que
sirven para crear redes neuronales, ya que simplifica much́ısimo este proceso. En este caso, la aten-
ción se centra sobre todo en mejorar la usabilidad: Keras funciona como una interfaz diseñada
expresamente para personas y solo secundariamente para máquinas. Las acciones del usuario ne-
cesarias para los casos de uso más importantes se reducen al mı́nimo y, si aun aśı se producen
errores, se proporciona un feedback que ayuda a resolverlos. Por lo tanto, aprender a utilizar Ke-
ras es relativamente fácil, lo que mejora la productividad. Además, gracias a la conexión con los
frameworks de aprendizaje profundo, esta simplicidad no conlleva limitaciones funcionales: puedes
incorporar todas las caracteŕısticas que quieras a través de interfaces que se adaptan a la perfección
(o volverlas a deshabilitar si es necesario). Keras también presenta las siguientes ventajas [12]:
Amplia compatibilidad entre plataformas para los modelos desarrollados: los modelos desarro-
llados con Keras son especialmente fáciles de utilizar en diferentes plataformas. Por ejemplo,
son compatibles con iOS (Apple CoreML), Android (Keras TensorFlow Android Runtime),
Google Cloud y Raspberry Pi por defecto.
Compatibilidad con múltiples motores de backend: Keras no solo te da mucha libertad a la
hora de elegir el backend, sino que también te permite combinar varios motores. Además, es
posible transferir los modelos desarrollados a otro backend en cualquier momento.
Excelente soporte para múltiples GPU: con Keras, los recursos necesarios para desarrollar los
procesos de aprendizaje profundo se pueden distribuir fácilmente en varios chips o tarjetas
gráficas.
Desarrollo por parte de grandes empresas: el mantenimiento y el desarrollo de Keras cuentan
27
con el apoyo de las empresas más importantes del sector. Google, Amazon AWS, Microsoft,
Apple y Nvidia, entre otras, están implicadas en el proyecto.
Anaconda
Anaconda es una suite de código abierto que abarca una serie de aplicaciones, libreŕıas y con-
ceptos diseñados para el desarrollo de la ciencia de datos con Python. Se trata de una distribución
de Python que básicamente funciona como un gestor de entorno, de paquetes y que posee una
colección de más de 720 cuya caracteŕıstica primordial es que son de código abierto. [15]
Anaconda Distribution se agrupa en cuatro sectores o soluciones tecnológicas:
Anaconda Navigator: Interfaz gráfica de Anaconda Python.
Anaconda Project.
Libreŕıas de Ciencia de Datos.
Conda: Gestor de código del Anaconda Python.
Todas ellas se instalan de manera automática en un procedimiento muy sencillo y se configuran
de forma automática.
Una vez contamos con Anaconda Python podremos usarlas para lo que necesitemos. Vamos a
ver ahora cuales son las caracteŕısticas fundamentales de esta distribución de Python.
Marco Conceptual
Procesamiento de Lenguaje Natural (PLN)
El Procesamiento del Lenguaje Natural (PLN) es una subdisciplina de la Inteligencia Artificial
y rama de la Ingenieŕıa Lingǘıstica Computacional; ahora bien, la razón principal del PLN es
construir sistemas y mecanismos que permitan la comunicación entre personas y máquinas por
medio de lenguajes naturales. El logro que una computadora aprenda a interpretar el lenguaje
natural se debe a dos caminos, uno epistemológico y otro heuŕıstico:
Epistemológico: Define el espacio de conceptos que el programa puede aprender.
El heuŕıstico: Define los algoritmos para el aprendizaje.
El primer avance obtenido en el PLN se dio en el área del acceso a las bases de datos con el
sistema lunar (1973) construido en la NASA por William Woods.
El PLN busca poder crear programas que puedan analizar, entender y generar lenguajes que
los humanos utilizan habitualmente, de manera que el usuario pueda llegar a comunicarse con la
máquina o computador de la misma forma que lo haŕıa con un ser humano. [55]
28
Inteligencia Artificial (IA)
La Inteligencia Artificial (IA) es una rama de las ciencias de la computación que incluye concep-
tos muy transversales relacionados con la lógica y el aprendizaje. Se trata, por lo tanto, de diseñar
herramientas informáticas que simulen procesos de inteligencia humana que incluyen el aprendizaje,
el razonamiento y la autocorrección. Mediante diversos algoritmos las máquinas ((aprenden)) y son
capaces de ((tomar decisiones)). No se trata de ciencia ficción, sino de una realidad que está presente
actualmente y que poco a poco va a ir ocupando espacios cotidianos en nuestra casa, en nuestros
veh́ıculos y también relacionados con nuestra salud. [20]
Modelos de Clasificación
La clasificación supervisada es una de las tares que más frecuentemente son llevadas a cabo por
los denominados Sistemas Inteligentes. Por lo tanto, un gran número de paradigmas desarrollados
bien por la Estad́ıstica (Regresión Loǵıstica, Análisis Discriminante) o bien por la Inteligencia
Artificial (Redes Neuronales, Inducción de Reglas, Árboles de Decisión, Redes Bayesianas) son
capaces de realizar las tareas propias de la clasificación.
En el apartado anterior se han estudidado los métodos desarrollados por la estad́ıstica basados
en el análisis de regresión: Regresión Loǵıstica y Probit, aqúı estudiaremos otros métodos estad́ısti-
cos como lo son, el Análisis Discriminantes y los K vecinos próximos, y los Arboles de Decisión,
las Máquinas Soporte Vector, Redes Neuronales y el Clasificador Bayesiano desarrollados por la
Inteligencia Artificial.
Paso previo a aplicar un método de clasificación, es la partición del conjunto de datos en dos
conjuntos de datos más pequeños que serán utilizadas con los siguientes fines: entrenamiento y test.
El subconjunto de datos de entrenamiento es utilizado para estimar los parámetros del modelo y el
subconjunto de datos de test se emplea para comprobar el comportamiento del modelo estimado.
Cada registro de la base de datos debe de aparecer en uno de los dos subconjuntos, y para dividir
el conjunto de datos en ambos subconjuntos, se utiliza un procedimiento de muestreo: muestreo
aleatorio simple o muestreo estratificado. Lo ideal es entrenar el modelo con un conjunto de datos
independiente de los datos con los que realizamos el test.
Como resultado de aplicar un método de clasificación, se cometerán dos errores, en el caso de
una variable binaria que toma valores 0 y 1, habrá ceros que se clasifiquen incorrectamente como
unos y unos que se clasifiquen incorrectamente como ceros. [30]
Long Short Term Memory (LSTM)
La LSTM fue creada en 1997 por Hochreiter y Schimdhuber, sin embargo, su popularidad como
arquitectura RNN ha crecido en los últimos años para diferentes aplicaciones. Encontrará LSTMs
en productos que utiliza todos los d́ıas, como los teléfonos inteligentes.
La LSTM se desvió de las arquitecturas de red neural t́ıpicas basadas en neuronas y en cambió
presentó el concepto de una celda de memoria. La celda de memoria puede retener su valor durante
un periodo de tiempo corto o largo como una función de sus entradas, lo que permite a la celda
recordar lo que es importante y no solamente el último valor que calculó.
La celda de memoria LSTM contiene tres puertas que controlan el modo como la información
fluye dentro o fuera de la celda.La puerta de entrada controla cuando la información nueva puede
29
entrar en la memoria. La puerta del olvido controla cuando se olvida una parte de la información,
lo que permite a la celda recordar datos nuevos. Finalmente, la puerta de salida controla cuando se
utiliza en el resultado de la celda la información que está contenida en la celda. La celda también
contiene ponderaciones, que controlan a cada puerta. El algoritmo de capacitación, normalmente
BPTT, optimiza esas ponderaciones basándose en el error de salida de red resultante.
En 2014, se presentó una simplificación del LSTM que se llamó unidad recurrente cerrada. Este
modelo tiene dos puertas, deshaciéndose de la puerta de salida que está presente en el modelo
LSTM. Para muchas aplicaciones, el GRU tiene un rendimiento similar al de LSTM, pero al ser
más simple tiene menos ponderaciones y una ejecución más rápida. [1]
Figura 1.9: Modelo de arquitectura de una red Long Short Term Memory (LSTM). [1]
30
Näıve-Bayes (NBC)
El algoritmo clasificador Näıve-Bayes (NBC), es un clasificador probabiĺıstico simple con fuerte
suposición de independencia. Aunque la suposición de la independencia de los atributos es general-
mente una suposición pobre y se viola a menudo para los conjuntos de datos verdaderos. A menudo
proporciona una mejor precisión de clasificación en conjuntos de datos en tiempo real que cualquier
otro clasificador. También requiere una pequeña cantidad de datos de entrenamiento. El clasifica-
dor Näıve-Bayes aprende de los datos de entrenamiento y luego predice la clase de la instancia de
prueba con la mayor probabilidad posterior. También es útil para datos dimensionales altos ya que
la probabilidad de cada atributo se estima independientemente. [48]
Figura 1.10: Modelo del clasificador Naive Bayes. [42]
31
Marco Histórico
La historia del procesamiento del lenguaje natural generalmente comenzó en la década de 1950,
aunque se puede encontrar trabajo de peŕıodos anteriores. En 1950, Alan Turing publicó un art́ıculo
titulado “Inteligencia” que propońıa lo que ahora se llama la prueba de Turing como criterio de
inteligencia.
El experimento de Georgetown en 1954 involucró la traducción automática de más de sesenta
oraciones rusas al inglés. Los autores afirmaron que dentro de tres o cinco años, la traducción
automática seŕıa un problema resuelto. Sin embargo, el progreso real fue mucho más lento, y después
del informe ALPAC en 1966, que encontró que la investigación de diez años no hab́ıa cumplido con
las expectativas, la financiación para la traducción automática se redujo drásticamente. Poco más
investigación en traducción automática se llevó a cabo hasta finales de la década de 1980, cuando
se desarrollaron los primeros sistemas estad́ısticos de traducción automática. [16]
Algunos sistemas de procesamiento de lenguaje natural notablemente exitosos desarrollados en
la década de 1960 fueron SHRDLU, un sistema de lenguaje natural que trabaja en “mundos de
bloques” restringidos con vocabularios restringidos, y ELIZA, una simulación de un psicoterapeuta
Rogeriano, escrita por Joseph Weizenbaum entre 1964 y 1966. Sin información sobre el pensamiento
o la emoción humana, ELIZA a veces proporcionaba una interacción sorprendentemente similar a
la humana. Cuando el “paciente” superó la base de conocimientos muy pequeña, ELIZA podŕıa
proporcionar una respuesta genérica, por ejemplo, respondiendo a “Me duele la cabeza” con “¿Por
qué dices que te duele la cabeza?”.
Durante la década de 1970, muchos programadores comenzaron a escribir “ontoloǵıas concep-
tuales”, que estructuraban la información del mundo real en datos comprensibles por computadora.
Ejemplos son MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin
(Meehan, 1976), QUALM (Lehnert, 1977), Politics (Carbonell, 1979) y Plot Units (Lehnert 1981 ).
Durante este tiempo, se escribieron muchos chatterbots incluyendo PARRY, Racter y Jabberwacky.
Hasta la década de 1980, la mayoŕıa de los sistemas de procesamiento de lenguaje natural se
basaban en conjuntos complejos de reglas escritas a mano. Sin embargo, a partir de finales de
los años 80, hubo una revolución en el procesamiento del lenguaje natural con la introducción de
algoritmos de aprendizaje automático para el procesamiento del lenguaje. Esto se debió tanto al
aumento constante del poder computacional (ver la ley de Moore) como a la disminución gradual
del predominio de las teoŕıas chomskyanas de la lingǘıstica (por ejemplo, la gramática transforma-
cional), cuyos fundamentos teóricos desalentaron el tipo de lingǘıstica de corpus que subyace en el
enfoque de aprendizaje automático. al procesamiento del lenguaje. Algunos de los algoritmos de
aprendizaje automático más antiguos, como los árboles de decisión, produjeron sistemas de reglas
ŕıgidas similares a las reglas escritas a mano existentes. Sin embargo, el etiquetado de parte del
discurso introdujo el uso de modelos ocultos de Markov en el procesamiento del lenguaje natural,
y cada vez más, la investigación se ha centrado en los modelos estad́ısticos, que toman decisiones
suaves y probabiĺısticas basadas en adjuntar pesos de valor real a las caracteŕısticas que componen
la entrada. datos. Los modelos de lenguaje de caché en los que se basan muchos sistemas de recono-
cimiento de voz ahora son ejemplos de dichos modelos estad́ısticos. Dichos modelos generalmente
son más robustos cuando se les da una entrada desconocida, especialmente una entrada que contie-
ne errores (como es muy común en los datos del mundo real), y producen resultados más confiables
cuando se integran en un sistema más grande que comprende múltiples subtareas. [16]
Muchos de los éxitos iniciales notables se produjeron en el campo de la traducción automática,
debido especialmente al trabajo en IBM Research, donde se desarrollaron modelos estad́ısticos
32
cada vez más complicados. Estos sistemas pudieron aprovechar los corpus textuales multilingües
existentes que hab́ıan sido producidos por el Parlamento de Canadá y la Unión Europea como
resultado de leyes que exiǵıan la traducción de todos los procedimientos gubernamentales a todos
los idiomas oficiales de los sistemas de gobierno correspondientes. Sin embargo, la mayoŕıa de los
otros sistemas depend́ıan de corpus espećıficamente desarrollados para las tareas implementadas
por estos sistemas, lo cual era (y con frecuencia sigue siendo) una limitación importante en el
éxito de estos sistemas. Como resultado, se ha investigado mucho sobre métodos para aprender de
manera más efectiva a partir de cantidades limitadas de datos.
Las investigaciones recientes se han centrado cada vez más en los algoritmos de aprendizaje
no supervisados y semi-supervisados. Dichos algoritmos pueden aprender de datos que no se han
anotado a mano con las respuestas deseadas, o usando una combinación de datos anotados y no
anotados. En general, esta tarea es mucho más dif́ıcil que el aprendizaje supervisado, y generalmente
produce resultados menos precisos para una cantidad dada de datos de entrada. Sin embargo, hay
una enorme cantidad de datos no anotados disponibles (incluido, entre otras cosas, todo el contenido
de la World Wide Web), que a menudo puede compensar los resultados inferiores si el algoritmo
utilizado tiene una complejidad de tiempo suficientemente baja para Sé práctico.
En la década de 2010, el aprendizaje por representación y los métodos de aprendizaje automático
de estilo de red neuronal se generalizaron en el procesamiento del lenguaje natural, debido en parte
a una serie de resultados que muestran que tales técnicas pueden lograr resultados de vanguardia en
muchas tareas del lenguaje natural, por ejemplo en modelado de lenguaje, análisis, y muchos otros.
Las técnicas populares incluyen el uso de incrustaciones de palabras para capturar las propiedades
semánticas de las palabras, y

Continuar navegando

Materiales relacionados