Analítica textual - John Atkinson-Abutridy - E-Book

Analítica textual E-Book

John Atkinson-Abutridy

0,0
23,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Si desea obtener o entender sus propios datos textuales para descubrir y detectar automáticamente conocimiento valioso para su empresa, ha llegado al libro indicado. En él se proporciona una introducción a la ciencia y a las aplicaciones de la analítica textual o minería de textos (text mining) que le permitirá examinar fuentes de información no estructurada textual electrónica. La ciencia de la minería de textos es capaz de identificar información relevante y descubrir patrones ocultos desde grandes conjuntos de datos de naturaleza textual. Estos descubrimientos pueden convertirse en una forma estructurada que analizar e integrar en otro tipo de sistemas tradicionales de apoyo en la toma de decisiones (por ejemplo, en la inteligencia de negocios, en las bases de datos relacionales y en el data warehouses). Las aplicaciones de la minería de textos o analítica textual son prácticamente transversales en los ámbitos industriales, comerciales, científicos y públicos, por lo que este libro se convertirá en una herramienta clave para la toma de decisiones. Analítica textual se compone de 10 capítulos que combinan aspectos básicos teóricos de diferentes modelos y métodos computacionales, con ejercicios prácticos paso a paso a través del lenguaje de programación Python. Asimismo, esta obra revisa: "Los fundamentos de la analítica textual: el procesamiento del lenguaje natural y la representación de documentos. "Las diferentes tareas que se pueden realizar: la extracción de información, el descubrimiento de asociaciones, el análisis semántico, el clustering de documentos, el análisis de tópicos y la categorización de textos. Gracias a esta lectura, entenderá los paradigmas y los métodos computacionales para desarrollar aplicaciones que analicen automáticamente la información textual o los documentos, y descubrirá patrones novedosos sobre cómo mejorar los procesos en su organización.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 332

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Analítica textual

Primera edición, 2023

© 2023 John Atkinson-Abutridy

© 2023 MARCOMBO, S. L.

www.marcombo.com

Cubierta: ENEDENÚ DISEÑO GRÁFICO

Maquetación: Artemio Naiza

Correctora: Mónica Muñoz

Directora de producción: M.a Rosa Castillo

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.

ISBN del libro en papel: 978-84-267-3613-0

ISBN del libro electrónico: 978-84-267-3674-1

Producción del ePub: booqlab

A Ivana, mi esposa y mi luz

Tabla de contenidos

1 ANALÍTICA TEXTUAL

1.1 INTRODUCCIÓN

1.2 MINERÍA DE TEXTOS Y ANALÍTICA TEXTUAL

1.3 TAREAS Y APLICACIONES

1.4 EL PROCESO DE LA ANALÍTICA TEXTUAL

1.5 RESUMEN

1.6 PREGUNTAS

2 PROCESAMIENTO DEL LENGUAJE NATURAL

2.1 INTRODUCCIÓN

2.2 PROCESAMIENTO DEL LENGUAJE NATURAL

2.3 NIVELES Y TAREAS EN NLP

2.3.1 Fonología

2.3.2 Morfología

2.3.3 Léxico

2.3.4 Sintaxis

2.3.5 Semántica

2.3.6 Razonamiento y pragmática

2.4 RESUMEN

2.5 EJERCICIOS

2.5.1 Análisis morfológico

2.5.2 Análisis léxico

2.5.3 Análisis sintáctico

3 EXTRACCIÓN DE INFORMACIÓN

3.1 INTRODUCCIÓN

3.2 EXTRACCIÓN DE INFORMACIÓN BASADA EN REGLAS

3.3 EXTRACCIÓN DE ENTIDADES NOMBRADAS

3.3.1 Modelos de N-gramas

3.4 EXTRACCIÓN DE RELACIONES

3.5 EVALUACIÓN

3.6 RESUMEN

3.7 EJERCICIOS

3.7.1 Extracción vía expresiones regulares

3.7.2 Reconocimiento de entidades nombradas (NER)

4 REPRESENTACIÓN DE DOCUMENTOS

4.1 INTRODUCCIÓN

4.2 INDEXACIÓN DE DOCUMENTOS

4.3 MODELOS DE ESPACIO VECTORIAL

4.3.1 Modelo de representación booleana

4.3.2 Modelo de frecuencia de términos

4.3.3 Modelo de frecuencia inversa de documentos

4.4 RESUMEN

4.5 EJERCICIOS

4.5.1 Modelo de representación TFxIDF

5 ANÁLISIS DE REGLAS DE ASOCIACIÓN

5.1 INTRODUCCIÓN

5.2 PATRONES DE ASOCIACIÓN

5.3 EVALUACIÓN

5.3.1 Support

5.3.2 Confidence

5.3.3 Lift

5.4 GENERACIÓN DE REGLAS DE ASOCIACIÓN

5.5 RESUMEN

5.6 EJERCICIOS

5.6.1 Extracción de reglas de asociación

6 ANÁLISIS SEMÁNTICO BASADO EN CORPUS

6.1 INTRODUCCIÓN

6.2 ANÁLISIS BASADO EN CORPUS

6.3 ANÁLISIS SEMÁNTICO LATENTE

6.3.1 Generación de vectores con LSA

6.4 WORD2VEC

6.4.1 Aprendizaje de embeddings en CBOW

6.4.2 Predicción e interpretación de embeddings

6.5 RESUMEN

6.6 EJERCICIOS

6.6.1 Análisis semántico latente (LSA)

6.6.2 Modelo de Word embedding del tipo Word2Vec

7 AGRUPACIÓN DE DOCUMENTOS

7.1 INTRODUCCIÓN

7.2CLUSTERING DE DOCUMENTOS

7.3CLUSTERING K-MEANS

7.4 MAPAS AUTOORGANIZATIVOS

7.4.1 Aprendizaje de mapas topológicos

7.5 RESUMEN

7.6 EJERCICIOS

7.6.1Clustering via K-means

7.6.2Clustering vía mapas autoorganizativos

8 MODELAMIENTO DE TÓPICOS

8.1 INTRODUCCIÓN

8.2 MODELAMIENTO DE TÓPICOS

8.3 LATENT DIRICHLET ALLOCATION

8.4 EVALUACIÓN

8.5 RESUMEN

8.6 EJERCICIOS

8.6.1 Modelamiento de tópicos con LDA

9 CATEGORIZACIÓN DE DOCUMENTOS

9.1 INTRODUCCIÓN

9.2 MODELOS DE CATEGORIZACIÓN

9.3 CLASIFICACIÓN BAYESIANA

9.4 CATEGORIZACIÓN POR MÁXIMA ENTROPÍA

9.5 EVALUACIÓN

9.6 RESUMEN

9.7 EJERCICIOS

9.7.1 Categorización con Naïve Bayes

9.7.2 Categorización con Máxima Entropía

10 CONCLUSIONES

Bibliografía

Glosario

Figura 1.1: Búsqueda versus descubrimiento en datos

Figura 1.2: El ámbito del text mining

Figura 1.3: Agrupación de información textual

Figura 1.4: Extracción de información

Figura 1.5: Categorización de textos

Figura 1.6: Inferencia de relaciones

Figura 1.7: El proceso del text mining

Figura 2.1: Niveles, tareas y recursos lingüísticos en el NLP

Figura 2.2: Un modelo de Márkov simple

Figura 2.3: Una HMM con probabilidades de transición y emisión

Figura 2.4: Tarea de análisis sintáctico

Figura 2.5: Reglas de una CFG

Figura 2.6: Árbol sintáctico para la frase «El vuelo despegó»

Figura 2.7: Gramática de dependencias para «el vuelo despegó sin problemas»

Figura 2.8: Grafo semántico para «El vuelo despegó sin problemas»

Figura 2.9: Desambiguación del sentido de las palabras (WSD)

Figura 2.10: Estructura de relaciones retóricas de un texto de ejemplo

Figura 3.1: Un texto de queja

Figura 3.2: Extracción de relaciones específicas para alimentar una tabla

Figura 3.3: Pasos en la extracción de información

Figura 3.4: Extracción de información simple y relacional

Figura 3.5: Ejemplo de extracción basado en reglas en cascada

Figura 3.6: Asociación y búsqueda de relaciones específicas

Figura 3.7: Extracción de relaciones de interacción proteína-proteína

Figura 4.1: La tarea de indexación o generación de características

Figura 4.2: Representación vectorial de textos de ejemplo

Figura 5.1: Transacciones vistas como canastas de compra

Figura 5.2: Generación de itemsets frecuentes con método APRIORI

Figura 5.3: Espacio de búsqueda de reglas de asociación

Figura 6.1: Representación de word embeddings

Figura 6.2: Descomposición vía SVD

Figura 6.3: Elección del mejor número de dimensiones basado en importancia de valores singulares

Figura 6.4: Tipos de modelos Word2Vec

Figura 6.5: Ejemplos de ventanas de contexto para entrenamiento

Figura 6.6: Arquitectura de un modelo CBOW

Figura 6.7: Actualización de valores de la capa oculta

Figura 6.8: Cálculo para neuronas de salida

Figura 6.9: Predicción de palabras de salida según clasificador SoftMax

Figura 6.10: Proceso de entrenamiento en CBOW para generar predicciones

Figura 6.11: Estructura general de la red para predicción de contextos

Figura 7.1: Agrupación simple de noticias

Figura 7.2: Combinaciones de grupos de documentos

Figura 7.3: Ejemplo de tres clusters considerando dos dimensiones en los datos

Figura 7.4: Clustering de documentos

Figura 7.5: Distribución de clusters según sus centroides

Figura 7.6: Distribución espacial de vectores de documentos

Figura 7.8: Diferentes clusterings según los centroides iniciales

Figura 7.9: Selección del mejor número de clusters

Figura 7.10: Arquitectura general de un SOM

Figura 7.11: Algunas formas de topologías de SOM: (a) rectángulo (2D), (b) octaedro (2D) y (c) lineal (1D)

Figura 7.12: Representación geométrica de clusters en SOM

Figura 8.1: Distribución de tópicos, palabras y documentos

Figura 8.2: Una mezcla de tres distribuciones

Figura 8.3: Interpretación geométrica de tópicos

Figura 8.4: Modelamiento de dependencia entre documentos, tópicos y palabras

Figura 8.5: Modelamiento de tópicos con distribución de Dirichlet

Figura 8.6: Distribucion Dirichlet sobre un 2-simplex para diferentes valores de α

Figura 8.7: Visualización de un modelo de tópicos para un corpus de entrada

Figura 8.8: Evaluación de un modelo de tópicos según perplejidad

Figura 8.9: Evaluación de modelos de tópicos según coherencia

Figura 9.1: Entrenamiento de un modelo de clasificación de textos

Figura 9.2: Clasificación de textos no vistos

Figura 9.3: Entropía para una distribución de una variable X

Figura 9.4: Cálculo de funciones indicadoras y probabilidad de clases MaxEnt

Figura 9.5: Un ejemplo de curva ROC

Tabla 3.1: Matriz de confusión

Tabla 3.2: Ejemplo de una matriz de confusión

Tabla 4.1: Muestra de documentos

Tabla 4.2: Representación vectorial TF normalizada

Tabla 4.3: Correlación entre vectores de documentos: (a) modelo TF versus y (b) modelo TFxIDF

Tabla 6.1: Matriz inicial de términos por documentos

PREFACIO

Cuando pensé en escribir este libro, no disponía de la claridad suficiente sobre dónde empezar, pues existen muchas temáticas relacionadas con las que se podría abordar. Sin embargo, tenía claro que deseaba compartir conocimiento de la forma más sencilla posible, para que profesionales con conocimientos básicos pudieran no solo entender los temas teóricos y prácticos relacionados con la analítica textual, sino también que percibieran sus aplicaciones e impacto de forma transversal en muchas áreas.

El desafío no era simple pues, a pesar de mi experiencia como académico, estoy acostumbrado a escribir artículos científicos especializados (papers) y libros técnicos, dar conferencias técnicas a audiencias profesionales y/o dirigir proyectos científicotecnológicos evaluados por expertos, etc.; es decir, actividades dirigidas a profesionales/científicos que pueden entender temas complejos. Pero este no es el caso de los especialistas comunes en general, por lo que se requería de bibliografía formal que pudiese resultar accesible y comprensible para entender los fundamentos de modo simple, como también las aplicaciones.

Existían varias alternativas para abordar lo anterior tales como libros teóricos, los cuales existen en demasía. Sin embargo, estos parecían orientarse hacia profesionales más avanzados y/o estudiantes de posgrado, lo que dejaría de lado los aspectos prácticos y aplicados. Por otra parte, existen varios libros prácticos enfocados en aspectos de programación y muy sesgados hacia la propia concepción que el autor tiene del tema. Más aún, en mi experiencia como académico dictando cursos de analítica textual y/o text mining por muchos años, tanto dentro como fuera de Chile, he podido comprobar cómo los estudiantes, profesionales o técnicos que se sustentan en dicho tipo de libros, sencillamente no entienden lo que están haciendo, no pueden comparar/analizar métodos o modelos y/o no son capaces de ir más allá de lo que está escrito. Se debe, principalmente, a que se centran en exceso en el código realizado en algún lenguaje de programación en particular, en el cual, lamentablemente, muchas funcionalidades están dispuestas como «cajas negras», es decir, escondiendo todos los detalles técnicos, por lo que era muy difícil replicar sus experiencias utilizando otros métodos o herramientas computacionales.

La naturaleza del libro estaba clara entonces. Este debía ser uno introductorio en el que se combinen los fundamentos teóricos básicos de los diferentes paradigmas y métodos de analítica textual con los aspectos prácticos, acompañados de ejemplos en algún lenguaje de programación, que permitieran entender cabalmente el trasfondo y lógica de los métodos computacionales, pero, a la vez, lo suficientemente flexible para utilizarlos e implementarlos en otros lenguajes o herramientas computacionales.

Debía sacarle provecho a mi experiencia académica en la forma en que los profesionales entienden mejor los conceptos y los métodos computacionales. Durante más de veinticinco años, he dictado cursos de pregrado y posgrado relacionados con la analítica textual, la minería de textos y el procesamiento de lenguaje natural e inteligencia artificial en varias universidades nacionales y fuera del país. Aprendí mucho de mis estudiantes y profesionales: lo que les era más fácil o difícil de entender, el cuestionamiento a lo establecido, las formas de llevar lo complejo a lo simple, etc.

Por otro lado, mi experiencia en todos estos años como investigador científico y consultor, desarrollando y liderando proyectos científicos, y transfiriendo tecnologías al sector público y privado, también debía de tener algo que decir en la orientación del libro. Efectivamente, mucho de lo que se transmite en el libro se vinculaba no solo con la fundamentación de lo que está detrás de los métodos computacionales, sino también con los desafíos y consideraciones que implica el estudio, utilización y diseño de métodos computacionales en problemas reales prácticos. Así, el libro es el resultado de ambos tipos de experiencias, lo que no solo permite entender los qués sino también los porqués y los para qués.

Después de todos estos años, ¿por qué un libro de analítica textual ahora? En el mundo, este tema es de larga data, mientras que, en Chile, comenzamos a mediados de los años noventa en la Academia. Sin embargo, en muchos aspectos, la sociedad y la industria no estaban preparadas y, hasta cierto punto, muchos no veían la necesidad; incluso, la consideraban algo abstracto y, por tanto, poco práctico, tomando en cuenta no solo la poca cantidad de datos disponibles en dicho período, sino que también varias tareas de análisis aún se podían realizar manualmente.

Pero el acceso y tamaño de las fuentes de datos, y en particular los de tipo no estructurado, tales como textos y documentos, experimentaron un crecimiento exponencial en los últimos diez años. Esto generó avances científicos importantes, tanto en los métodos nuevos y mejorados de analítica textual como también una mayor necesidad por parte de las empresas, no solo de analizar información estructurada en forma automática per se, sino de generar insights a partir de ella, que permita mejorar la toma de decisiones y la productividad de los negocios.

No resulta fortuito tampoco que la escritura de este libro atravesase dos crisis importantes a nivel local e internacional. A nivel nacional, en Chile se gatilló una crisis social sin precedentes en octubre del año 2019. Por otro lado, a comienzos de 2020, el mundo comenzó a atravesar una pandemia mundial gigantesca a raíz del COVID-19 y, al finalizar este libro, aún estábamos (sobre)viviendo. Pero ¿qué tienen en común estos dos hechos recientes?

Sumado a la ya creciente sobrecarga de información, en el caso de Chile, la crisis social generó un flujo enorme de información, especialmente de mensajería en redes sociales cuyo análisis resultó clave a la hora de tomar decisiones estratégicas, en términos de descubrir vínculos en la información textual informal. Por otro lado, en el caso de la pandemia, se ha producido una gran acumulación de bibliografía científica (i. e., información textual formal), en torno a las investigaciones, que permite aportar luz sobre diversos factores relacionados con el COVID-19 y que, por su dimensión (más de cuarenta y cinco mil artículos) y complejidad, es necesario disponer de métodos avanzados de analítica textual para extraer y descubrir automáticamente conocimiento relevante que permita avanzar en la investigación, una tarea que claramente no puede ser realizada por expertos humanos.

Lo anterior no solo muestra una vez más la relevancia tecnológica, crítica y estratégica que posee la analítica textual, sino la necesidad de que un libro introduzca este tipo de tecnologías como herramientas poderosas para la toma de decisiones.

Las crisis traen oportunidades, y este libro fue escrito en medio de una.

John Atkinson-Abutridy, Santiago, Chile

AGRADECIMIENTOS

Me gustaría agradecer a todos quienes ayudaron con la lectura y revisión del borrador de este libro en las diferentes etapas, entregando comentarios, correcciones y retroalimentación invaluable: Graciela Mardones, Mabel Vega, Diego Palma, Eladio Lisboa, Diego Reyes, Víctor Toledo, Rodolfo Abanto, Gonzalo Gómez y Carlos Parrá.

Deseo agradecer a mi esposa Ivana, quien me apoyó e instó en todo momento para escribir este libro. Tengo una gran deuda con ella por todo el tiempo sacrificado para poder avanzar y terminar este libro.

ACERCA DE ESTE LIBRO

Este libro es una introducción a la ciencia y aplicaciones de la analítica textual o minería de textos, que permite el descubrimiento automático de conocimiento desde fuentes de información no estructurada. Con este propósito, en el libro, se introducen los principales conceptos, modelos y técnicas computacionales que posibilitan resolver varios problemas reales de toma de decisión a partir de fuentes textuales y/o documentales.

Audiencia

Si usted posee fuentes de datos de naturaleza textual que necesita entender, este es el libro adecuado. Si desea obtener datos textuales y quiere sacar provecho de ellos para descubrir y/o detectar conocimiento importante, este también es el libro adecuado. Si usted desea entender los paradigmas y métodos computacionales para realizar analítica textual, este también es el libro adecuado. Si desea entender los aspectos básicos teóricos y prácticos para enseñar un curso en analítica textual, en definitiva, este es también un texto guía adecuado.

Aunque este libro es introductorio, lo ayudaría si ya le resultan familiares los siguientes aspectos:

• Conocimientos básicos de álgebra lineal, estadística y probabilidades.

• Conceptos básicos de aprendizaje automático (machine learning).

• Algún conocimiento del lenguaje de programación Python. Si no lo posee, no es problema: lo puede aprender muy fácilmente. En particular, sería útil si usted sabe o se familiariza con la definición y uso de funciones, manejo de estructuras de almacenamiento (i. e., tablas, listas, matrices, dataframes, diccionarios, archivos…) y bibliotecas para visualización simple.

Organización del libro

El libro consta de 10 capítulos, cada uno de los cuales contiene dos partes: (1) una en la que se introducen los principales conceptos, paradigmas y métodos, modelos y (2) otra en la que se muestran ejercicios prácticos en Python, sobre los aspectos estudiados en el capítulo. Por otro lado, para mayor familiaridad del lector y búsqueda de bibliografía complementaria, en cada capítulo la terminología básica utilizada estándar a nivel internacional también se incluye con su equivalente en inglés (i. e., «agrupamiento» y clustering).

Capítulo 1. Analítica textual

En este capítulo, se introducen los principales conceptos, enfoques y aplicaciones para el análisis automático de información no estructurada (i. e., textos) conocida como «analítica textual». Además, se describe el proceso de analítica textual, sus tareas y principales desafíos.

Capítulo 2. Procesamiento de lenguaje natural

En este capítulo, se introducen los conceptos básicos y técnicas computacionales y lingüísticas que hacen posible que un computador procese el lenguaje natural. Además, se describen las principales técnicas y la forma en que estas abordan diferentes problemas asociados con el procesamiento de lenguaje en textos escritos por humanos (i. e., análisis morfológico, análisis sintáctico, análisis semántico y análisis discursivo).

Capítulo 3. Extracción de información

En este capítulo, se introducen los conceptos y algunos métodos para la identificación y extracción de información específica desde el corpus de documentos, utilizando técnicas de procesamiento de lenguaje natural (NLP) (i. e., identificación de nombres de entidades o reglas de extracción de relaciones). Además, se describen los principales problemas y cómo estos se pueden resolver para apoyar las tareas de analítica textual.

Capítulo 4. Representación de documentos

En este capítulo, se introducen los diferentes conceptos, enfoques y modelos para caracterizar y representar computacionalmente información textual en la forma de documentos, de modo que puedan ser utilizados en tareas de analítica textual. Se describen enfoques típicos basados en métodos de indexación y modelos de espacios vectoriales de documentos (i. e., modelos de frecuencia de términos o modelos de frecuencia inversa de documentos).

Capítulo 5. Análisis de reglas de asociación

En este capítulo, se introducen los principales conceptos, métodos y problemas asociados a la extracción automática de asociaciones desde documentos, en la forma de reglas de asociación. Se describen los principales enfoques y métricas para evaluar la calidad de los patrones descubiertos (i. e., algoritmo APRIORI).

Capítulo 6. Análisis semántico basado en corpus

En este capítulo, se exploran los fundamentos de diferentes técnicas y modelos que permiten estudiar y modelar el significado de palabras y documentos. Para esto, se describen diferentes enfoques para la generación automática de modelos de representación distribuida en bajas dimensiones o Word embeddings (i. e., análisis semántico latente [LSA], Word2Vec), que permiten capturar eficientemente el significado de palabras y documentos en contexto, a partir del corpus de entrenamiento, determinar plagio de documentos, etc.

Capítulo 7. Agrupación de documentos

En este capítulo, se describen los conceptos y métodos computacionales para realizar tareas de agrupación o clustering de documentos. Se introducen los principios, las métricas y algoritmos de agrupamiento modernos (i. e., K-Means o mapas autoorganizativos) para encontrar patrones ocultos en el corpus de documentos.

Capítulo 8. Modelamiento de tópicos

En este capítulo, se introducen los principales conceptos y métodos para realizar agrupamiento de documentos con base en tópicos implícitos en los documentos. Se discuten los principales enfoques para la generación automática de temas basados en modelos probabilísticos (i. e., LSA probabilístico [pLSA], Latent Dirichlent Allocation [LDA]).

Capítulo 9. Categorización de documentos

En este capítulo, se describen los principales conceptos, modelos y técnicas para realizar la categorización automática de textos. Se describen diferentes métodos probabilísticos y estocásticos para predecir la categoría a la que pertenecen los documentos a partir de un corpus de entrenamiento (i. e., Clasificador Naïve Bayes o Clasificador de Máxima Entropía).

Capítulo 10. Conclusiones

En este capítulo, se resumen las principales conclusiones sobre los beneficios de la analítica textual en la industria, sus aplicaciones y una mirada al futuro de este tipo de tecnología.

Ejercicios

Cada capítulo contiene una sección de ejercicios en la que se muestran ejemplos y aplicaciones sencillas prácticas escritas en el lenguaje Python, sobre diferentes modelos y/o métodos descritos. En cada capítulo, se introducen conceptos que son acumulativos, por lo que sus ejercicios prácticos también reutilizan funcionalidades del código de capítulos previos. Los programas de ejemplo están separados por capítulo y, además, existe una biblioteca de funciones definidas en los capítulos que son comunes a varios ejercicios denominada “utils.py”. Todo esto, además de los conjuntos de documentos de prueba utilizados en cada ejercicio, se encuentran disponibles en el sitio de la editorial.

Asimismo, los programas al completo están codificados en Python 3.7 en el ambiente Spyder para Windows, bajo la distribución de Anaconda1. Además, se utilizan métodos y funciones disponibles en dos bibliotecas:

•NLTK2: el Natural-Language Toolkit (NLTK) fue creado por académicos e investigadores como una herramienta para crear funciones y algoritmos para el procesamiento de lenguaje natural (NLP), complejos para varios lenguajes humanos, utilizando Python. Además de bibliotecas para diferentes tareas de NLP, NLTK incluye datasets de ejemplo y demostraciones gráficas, para explicar los principios de las tareas de NLP.

•SpaCY3: es una biblioteca para NLP en Python y Cython, diseñada para construir sistemas industriales. SpaCY incluye varios modelos estadísticos y de aprendizaje automático preentrenados para más de cincuenta lenguajes.

Ambas proveen de funcionalidades para tareas similares. Sin embargo, NLTK está más bien dirigido a científicos/investigadores que desean construir y experimentar con algoritmos más complejos, mientras que SpaCY se orienta al desarrollo de aplicaciones, por lo que provee de acceso a las tareas con los mejores resultados, pero no permite experimentar en forma profunda, en comparación con NLTK.

Para disponer de las facilidades proporcionadas por ambas herramientas, se deben instalar algunos paquetes a través de la consola de comandos de Anaconda:

pip install spacy

pip install --user -U nltk

Además, se debe instalar un modelo de lenguaje para el español4 en SpaCY, que ha sido entrenado previamente sobre un corpus de noticias (es_core_news_sm):

python -m spacy download es_core_news_sm

Por otro lado, los documentos de ejemplo en la forma de noticias cortas, y utilizados en los ejercicios de cada capítulo, se hallan disponibles en la carpeta corpus en el sitio del libro. Esta contiene una muestra de resúmenes de noticias internacionales separadas en tres temas asociados a subdirectorios: Finanzas (32 resúmenes), Deportes (34 resúmenes) y Coronavirus (28 resúmenes).

Además, para algunos ejercicios, se utilizarán conjuntos de datos disponibles en tres archivos de formato CSV: “training.csv” (datos para entrenamiento de modelos), “testing.csv” (datos para prueba de modelos) y “nuevos.csv” (datos para aplicación de modelos).

 

1https://www.anaconda.com/products/individual.

2https://www.nltk.org/.

3https://spacy.io/.

4https://spacy.io/models/es.

SOBRE EL AUTOR

John Atkinson-Abutridy posee un PhD en Inteligencia artificial de la Universidad de Edimburgo (Reino Unido). Es actualmente profesor titular de la Facultad de Ingeniería y Ciencias de la Universidad Adolfo Ibáñez (Santiago, Chile) y ha sido profesor full-time en otras universidades chilenas, tales como la Universidad Técnica Federico Santa María (Valparaíso) y la Universidad de Concepción (Concepción), como también profesor e investigador invitado en varias universidades europeas, norteamericanas y asiáticas. Sus principales áreas de investigación incluyen el procesamiento de lenguaje natural, la analítica textual, la inteligencia artificial y la computación bioinspirada, donde ha publicado más de noventa artículos científicos. En los últimos veinticuatro años, ha dirigido también varios proyectos científicos y tecnológicos a nivel nacional e internacional, y ha sido investigador visitante en varias universidades y centros de investigación en Estados Unidos, Europa, Asia y Sudamérica. Como consultor de empresas, ha liderado la implementación de proyectos tecnológicos avanzados en inteligencia artificial, como también ha transferido y comercializado sistemas inteligentes para varios sectores productivos. En el año 2010, recibió la distinción ACM Senior Member Award, otorgada por la Association for Computing Machinery (ACM) en Nueva York, por sus aportes internacionales a las ciencias de la computación.

1ANALÍTICA TEXTUAL

CONTENIDO

En este capítulo, se introducen los principales conceptos, enfoques y aplicaciones para el análisis automático de información no estructurada (i. e., textos) conocida como «analítica textual». Además, se describe el proceso de analítica textual, sus tareas y principales desafíos.

1.1 INTRODUCCIÓN

Existen miles de artículos científicos en el mundo sobre virus y enfermedades que los especialistas humanos no son capaces de leer ni analizar. ¿Cómo los computadores podrían procesar dichos documentos y ser capaces de realizar descubrimientos y/o detectar patrones de interés de modo que los humanos tomasen decisiones en torno a nuevos tratamientos, fármacos o interacciones entre biocomponentes? Una empresa recibe cientos de quejas o consultas de clientes diariamente a través de su página web o e-mails. ¿Cómo dicha empresa podría analizar tales quejas para estudiar y determinar comportamientos comunes y perfiles de los clientes, con el fin de ofrecerles un mejor servicio? Un medio periodístico en Internet recibe cientos de noticias nacionales e internacionales semanalmente. ¿Cómo este medio las podría sintetizar, agrupar o caracterizar con el fin de proporcionar información más filtrada y digerida a los lectores que buscan datos específicos? A raíz de diversos eventos nacionales, numerosos organismos públicos reciben miles de mensajes de opinión a través de redes sociales como Twitter. ¿Cómo se podrían analizar dichos mensajes de forma tal para determinar tendencias y/o preferencias de los usuarios sobre dichos eventos?

Claramente, en las últimas décadas, hemos experimentado un crecimiento gigantezco de los datos disponibles en diversos medios electrónicos. La sobrecarga de información es tal que se hace muy difícil sacar provecho de dichos datos utilizando tecnologías convencionales, por lo que se requiere de capacidades para su análisis eficiente. Esto dependerá del tipo de la naturaleza de los datos que, en general, se dividen en dos grandes grupos:

•Datos estructurados: corresponden a datos organizados en repositorios tales como una base de datos, de modo que sus elementos pueden ser accesados por métodos de análisis y procesamiento efectivos (por ejemplo, una tabla SQL).

•Datos no-estructurados: corresponden a datos sin una estructura o modelo predefinido o que no está organizado de forma predefinida, por lo que se hace difícil entenderlos usando métodos computacionales tradicionales (por ejemplo, textos de noticias o quejas de clientes).

Según la naturaleza de los datos, podemos realizar dos tipos de tareas sobre ellos: búsqueda y descubrimiento —tal como se muestra en la Figura 1.1.

Figura 1.1: Búsqueda versus descubrimiento en datos

Una tarea de búsqueda se orienta a un objetivo, es decir, usted debe proveer claramente de un criterio para buscar datos de interés (i. e., condición que deben cumplir los atributos de los datos o consulta). En este escenario, no estamos buscando nada nuevo, sino que, simplemente, se reduce la sobrecarga de información, recuperando datos que deben satisfacer ciertas condiciones (Zhai & Massung, 2016). Luego:

•Si los datos son estructurados: debemos especificar alguna condición, clave o característica, de los datos que buscar; por ejemplo, usted desea recuperar desde una base de datos SQL la información de todos los clientes de una empresa que ingresaron después del año 2018. Para esto, usualmente, se dispone de motores de bases de datos que son capaces de acceder eficientemente, consultar y recuperar datos a partir de una combinación de atributos especificados previamente (i. e., una query estructurada).

•Si los datos no son estructurados: debemos buscar documentos relevantes para una consulta o query, compuesta por una lista de palabras clave; por ejemplo, usted desea buscar documentos en la web que contengan los términos arriendo y casas. Para esto, usualmente se dispone de tecnologías de recuperación de información (Büttcher et al., 2010) en la forma de motores de búsqueda en la web tales como Google o Yahoo, o bien sistemas de búsqueda especializada (i. e., motores de búsqueda en bibliografía médica MEDLINE5).

A diferencia de la búsqueda, una tarea de descubrimiento se muestra, por naturaleza, oportunista; es decir, no se conoce lo que se desea buscar, por lo que se explora automáticamente hipótesis en los datos para descubrir nuevas oportunidades en la forma de patrones ocultos (o latentes) en los datos, que pueden resultar interesantes y novedosos. Luego:

•Si los datos son estructurados: debemos tener alguna tarea de descubrimiento en mente para que alguna tecnología de minería de datos (Tan et al., 2018) escarbase en los datos para descubrir o extraer patrones ocultos que sean accionables, es decir, acerca de su capacidad de actuar sobre algún tipo de proceso que produzca resultados reales; por ejemplo, dada una base de datos de transacciones de compras realizadas por clientes en un supermercado, nos gustaría conocer si es que existe algún patrón de comportamiento que permita entender cómo estas compras se asocian entre ellas, para realizar recomendaciones, mejores promociones, ajustar el layout de los productos, etc.

•Si los datos no son estructurados: debemos tener alguna tarea de descubrimiento en mente sobre datos textuales, para que alguna tecnología de minería de textos o analítica textual pueda descubrir automáticamente patrones ocultos en los textos que apoyen la toma de decisiones; por ejemplo, dado un conjunto de documentos en los que se describen quejas de clientes de una empresa, nos gustaría encontrar patrones que permitan caracterizar dichas quejas, encontrar conexiones no evidentes entre ellas y agruparlas para generar recomendaciones, etc.

La naturaleza de los datos no estructurados y la complejidad de su análisis han generado una necesidad creciente de tecnologías que permitan analizarlos y descubrir automáticamente insights (i. e., aspectos ocultos de la forma de actuar de los usuarios/clientes que pueden generar oportunidades de nuevos productos/servicios o estrategias). Esto se hace más latente aún a nivel de los negocios, si se considera que la información no estructurada representa más del 85 % de los datos que manejan las corporaciones; de ahí que esto haya impactado prácticamente en todas las áreas industriales, públicas, científicas y tecnológicas de forma transversal. Así, actualmente, uno puede encontrar información textual de diferente tipo que incluye correos electrónicos, declaraciones de siniestros para los seguros, noticias, páginas web, artículos científicos, descripción de patentes de innovación, quejas de clientes, contratos empresariales, opiniones en foros y/o redes sociales, entre otras.

Claramente, este tipo de datos no puede ser analizado directamente con técnicas conocidas de data mining, debido a su naturaleza lingüística y, por lo tanto, su forma no estructurada y libre de expresar el conocimiento humano. Para esto, se requiere de técnicas computacionales que permiten descubrir patrones de interés en dichos conjuntos de información textual.

1.2 MINERÍA DE TEXTOS Y ANALÍTICA TEXTUAL

La minería de textos (text mining) y la analítica textual son expresiones muy intercambiables. La minería de textos es el proceso automatizado de examinar grandes colecciones de documentos o corpus, para descubrir patrones o insights que resulten interesantes y útiles (Ignatow & Mihalcea, 2017; Struhl, 2015; Zhai & Massung, 2016). Para esto, en la minería de textos, se identifican hechos, relaciones y patrones que, de otra forma, estarían enterrados en datos de naturaleza textual (Atkinson & Pérez, 2013). Esta información puede convertirse en un modo estructurado para ser posteriormente analizado e integrado con otro tipo de sistemas (por ejemplo, inteligencia de negocios, bases de datos o data warehouses). Por otro lado, en la analítica textual, se sintetizan los resultados de la minería de textos para que puedan ser cuantificados y visualizados de forma tal que apoyen la toma de decisión, produciendo insights accionables, por lo que la minería de textos abarca aspectos más amplios que la analítica textual.

Las aplicaciones de la analítica textual en ámbitos industriales y de negocios son muchas, incluyendo la agrupación de documentos (clustering), la categorización de textos, la extracción de información para poblar bases de datos, la generación de textos, el descubrimiento de asociaciones, etc. Sin embargo, dado que el objetivo es analizar automáticamente fuentes de información textual escritas en lenguaje natural por humanos, los métodos computacionales (Jurafsky et al., 2014) deben ser capaces de abordar tres problemas lingüísticos clave:

1.Ambigüedad: el lenguaje natural es, por naturaleza, un medio de comunicación caracterizado por una ambigüedad inherente. En lingüística, esta ambigüedad se origina cuando algún objeto lingüístico posee múltiples interpretaciones o significados. Así, dicha ambigüedad puede ser del tipo léxica (i. e., una misma palabra con más de un significado), sintáctica (i. e., una misma oración que posee varias estructuras gramaticales posibles), semántica (i. e., una oración con diversas interpretaciones posibles) y pragmática (i. e., una oración en diferentes contextos posibles para determinar su intención). Para entender por qué esto deviene relevante para la minería de textos, considere las siguientes dos frases extraídas desde textos informales, al buscar la palabra banco:

La solicitud de crédito al banco ha sido rechazada. Sentarme en este banco me trae problemas a la columna.

Asuma que la tarea deseada fuera la de agrupar de alguna forma frases como estas para determinar rasgos comunes. En este caso, si tomamos pocas palabras para comparar dichas frases, se produciría un grupo con ambas. Sin embargo, usted sabe que eso no está bien, pues ambas frases se refieren a temas muy diferentes, puesto que es una misma palabra con dos interpretaciones.

2.Dimensionalidad: dada la ambigüedad léxica del ejemplo anterior, si usted intenta comparar ambas frases que poseen una estructura sintáctica simple y con pocas palabras, seguramente podría llevarlo a cabo sin mucha dificultad, pero, aun así, el análisis sería bastante limitado. Sin embargo, la realidad se muestra mucho más compleja, pues un texto escrito en lenguaje natural se muestra altamente dimensional; es decir, posee muchas características o dimensiones que pueden describirlo. Cada dimensión podría ser una palabra, un término (por ejemplo, “San Francisco”), una frase, etc., por lo que, si se consideran colecciones de muchos textos o documentos, claramente la utilización de métodos convencionales de análisis de datos devienen insuficientes. Así i. e., las dimensiones de un mensaje de Twitter son todas las palabras y símbolos que contiene y, si se consideran miles o millones de mensajes, claramente las dimensiones se comienzan a incrementar enormemente, lo que dificulta alguna tarea de análisis.

3.Conocimiento lingüístico: para un lector humano, las frases de ejemplo previo resultan relativamente simples de entender, con el fin de realizar análisis posteriores. Sin embargo, para que un método computacional sea capaz de entenderlas, se debería disponer de mucho conocimiento léxico (i. e., «¿conozco la palabra?»), sintáctico («¿está bien formada la frase?»), semántico (i. e., «¿cuál es el significado de la frase?») y pragmático (i. e., «¿qué intenta comunicar el texto como un todo?»).

Por ejemplo, considere la siguiente opinión extraída desde una red social: «No me gustó su servicio de atención». Suponga que queremos determinar automáticamente, si es que esta expresa una emoción positiva o negativa sobre algún servicio o producto. Claramente, para que esto sea efectivo, un método computacional debería tener o inferir conocimiento léxico (i. e., «¿son las palabras conocidas y relevantes?»), sintáctico (i. e., «¿está bien escrita la frase?») y semántico (i. e., «¿cuál es el significado literal de la frase?»). Sin embargo, el análisis es insuficiente, pues se requiere además conocimiento pragmático («¿a quién se está refiriendo dicha opinión en el contexto?» o «¿qué trata de comunicar?»), que permita razonar sobre las intenciones implícitas a dicho enunciado y que pueden alimentar tareas de análisis posteriores. De lo contrario, la respuesta continuará pendiente: no le gustó el servicio al cliente «¿de quién?».

Para abordar tales aspectos de descubrimiento de insights en información textual, en la minería de textos se combinan tres áreas: procesamiento del lenguaje natural (Natural-Language Processing), aprendizaje automático (Machine Learning) y recuperación de información (Information Retrieval), tal como se muestra en la Figura 1.2.

Figura 1.2: El ámbito del text mining

El procesamiento del lenguaje natural (Natural-Language Processing o NLP) proporciona teorías, modelos y métodos para lograr que un computador pueda entender lenguaje natural (escrito o hablado) en diferentes niveles lingüísticos (por ejemplo, fonético, morfológico, léxico, sintáctico, semántico, discursivo y pragmático). En lo práctico, las técnicas de NLP se enfocan en crear sistemas que procesen información textual para hacerla accesible a otras aplicaciones computacionales. Usualmente, muchas de estas requieren recuperar información desde fuentes específicas de datos no estructurados (por ejemplo, textos, imágenes o vídeos), en las cuales deviene clave el análisis basado en alguna medida de relevancia (i. e., importancia) respecto a una determinada consulta de entrada, con el fin de hacerlas disponibles para otras tareas y aplicaciones. Con este fin, se pueden utilizar métodos y modelos de recuperación de información (Büttcher et al., 2010) en los cuales NLP desempeña un rol fundamental en caracterizar y «entender» algunos elementos de la información (i. e., documentos) que se recupera. Muchas tareas de NLP se pueden resolver utilizando enfoques tradicionales basados en reglas y métodos probabilísticos. Sin embargo, en muchas tareas de comprensión de lenguaje y de analítica textual, los problemas para resolver son complejos y no deterministas por naturaleza, por lo que no existen métodos algorítmicos eficientes para abordarlos. En estos casos, el aprendizaje automático o Machine Learning (ML) es un área de la IA que proporciona técnicas computacionales que permiten que el computador aprenda a realizar una tarea a partir de la experiencia (Wilmott, 2020, y Mohri et al., 2018). Así, un sistema de ML mejora su rendimiento con la experiencia, sin la necesidad de escribir reglas o modelos explícitos. Los modelos generados automáticamente por ML son, así, capaces de generalizar comportamientos para casos desconocidos, mejorando la realización de determinadas tareas.

1.3 TAREAS Y APLICACIONES

Dependiendo de la pregunta de analítica textual que se desea responder o de la tarea de descubrimiento que se tenga en mente, prácticamente todo tipo de información textual puede ser analizada, claramente con diferentes niveles de complejidad analítica y lingüística. Aunque los problemas y tareas específicos están descritos en detalle a lo largo de este libro, es importante entregar una visión general para entender algunas de las tareas típicas. Para esto, asumamos lo siguiente:

- Se dispone de un conjunto de documentos de diferente tipo disponibles (i. e., noticias u opiniones en Twitter).

- Por simplicidad, cada documento se puede representar como una lista de dos características (i. e., frecuencia de cada una de dos palabras), lo que origina un vector numérico de dos dimensiones o «ejes».

- Para efectos de visualización, cada documento se representará simplemente como un punto en un espacio de dos dimensiones.

Luego, algunas tareas podrían incluir:

•Agrupación de textos: suponga que usted desea agrupar quejas escritas de clientes, según alguna medida matemática de cercanía (por ejemplo, similitud coseno), que permita entender cómo dicha información está relacionada; por ejemplo, en la Figura 1.3, se muestran puntos de datos negros que representan dichas quejas (i. e., documentos) según dos características, que han sido agrupadas por algún método de modo tal que se han generado dos grupos de quejas (i. e., círculos rojos) que podrían expresar ciertos patrones «ocultos» en las quejas contenidas en los documentos, que ayuden en la toma de decisiones comerciales.

Figura 1.3: Agrupación de información textual

•Extracción de información: suponga que usted posee una gran colección de documentos en los que se describen accidentes de tránsito, a partir de los cuales desea extraer piezas de información específica para alimentar otras aplicaciones (por ejemplo, fecha, lugar, tipo de accidente o ciudad). En la Figura 1.4, se muestran puntos de datos representando dichos documentos, desde los cuales se puede extraer información específica para posteriormente rellenar alguna «plantilla» o traspasarlos a una base de datos SQL.

Figura 1.4: Extracción de información

•Categorización de textos: suponga que usted recibe muchas opiniones desde redes sociales como Twitter y desea separarlas automáticamente dependiendo de si las opiniones expresan una emoción positiva o negativa sobre sus servicios o productos. En la Figura 1.5, se muestran puntos de datos que representan opiniones de diferente tipo. Para esto, se puede aplicar métodos automáticos de categorización, que permitan clasificar automáticamente nuevas opiniones que se reciben, a partir de modelos construidos con la experiencia. Esto debería permitir separar las opiniones de polaridad positiva (i. e., puntos de datos amarillos) de las que expresan polaridad negativa (i. e., puntos de datos azules).

Figura 1.5: Categorización de textos

•Inferencia de relaciones: suponga que tiene la sospecha de que las quejas sobre un producto/servicio x (i. e., «banda ancha») de su empresa están muy asociadas con las quejas sobre una cierta persona y de dicha empresa. Sin embargo, se desconoce el vínculo específico que existe entre ambos, por lo que se desea explorar los documentos para saber más detalles del posible vínculo. En la Figura 1.6 se muestra que, una vez identificados ambos productos en una colección de documentos sobre quejas, un método de análisis textual podría intentar identificar alguna cercanía semántica entre ellas. Posteriormente, el método podría identificar relaciones específicas que dan cuenta de dicho vínculo, con el fin de tomar futuras decisiones.

Figura 1.6: Inferencia de relaciones

1.4 EL PROCESO DE LA ANALÍTICA TEXTUAL

En un mundo perfecto, tareas como las anteriormente descritas podrían realizarse utilizando algún método computacional de análisis textual (Bengfort & Bilbro, 2018; Ignatow & Mihalcea, 2017, y Aggarwal, 2018), sin mayores inconvenientes, asumiendo que los datos textuales de entrada están listos para ser procesados, y que el resultado siempre es el mejor. Sin embargo, la realidad se encuentra bastante alejada de ello, y se requiere realizar varias actividades antes de acometer la tarea de analítica propiamente.

Figura 1.7: El proceso del text mining

El proceso comienza a partir de una colección de textos extraído automáticamente desde algún repositorio (por ejemplo, sitio web o base de datos de documentos) o disponible directamente en algún medio electrónico. Lingüísticamente hablando, una colección de documentos sobre algún tema o género se denomina, usualmente, un «corpus» y, normalmente, puede contener texto puro o texto con algunas anotaciones de propósito específico, realizadas por humanos para análisis posteriores.

Posteriormente, tal como se muestra en la Figura 1.7, se llevan a cabo las siguientes actividades del proceso del text mining:

•Preprocesamiento de textos: