Descarga la aplicación para disfrutar aún más
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
Compartir