Principios cuantitativos

de minería de texto

Requisitos

Saber:

  • qué es sujeto (tácito o explícito) y predicado
  • qué es lexema y morfema
  • qué es adjetivo, adverbio, conjunción, determinante, preposiciones (< 5 s), sujeto, verbo
  • el pretérito imperfecto y el antepresente de programar

Un tópico es un conjunto de palabras y


un documento es un conjunto de tópicos

Tipos de minería de texto: diccionarios

Tipos de minería de texto: Diccionarios

Los métodos de diccionario identifican automáticamente palabras de un listado en los textos y, por esta razón, son particularmente útiles en cuantificar la presencia de un concepto de interés en grandes corpora. - Ana Makanovic, 2022

Ejemplos:

Palabras que denoten un afecto negativo o positivo: análisis de sentimiento.

        word value
1    abandon    -2
2  abandoned    -2
3   abandons    -2
4   abducted    -2
5  abduction    -2
6 abductions    -2

Tipos de minería de texto: Diccionarios (continúa)

Distribución del sentimiento en las palabras de un diccionario (Informatics and Mathematical Modelling, Technical University of Denmark, 2011) para análisis del sentimiento (obsérvese que solo son 2477 para todo el idioma ingles, porque no incluye las neutrales)

Tipos de minería de texto: Diccionarios (continúa)

Como solo buscan palabras, no requieren mucho poder de cómputo y pueden analizar millones de documentos.

En un artículo revisan 509 millones de tweets, donde encuentran que los tweets tienden a ser más positivos en fines de semana y mañanas, aportando a la hipótesis de que las redes reflejan los ritmos biológicos.

Una limitación importante es que son específicos de dominios, una palabra como “impuesto” puede tener un significado negativo en sociología y uno neutro en estudios financieros.

Tipos de minería de texto: Análisis semántico y de redes

Tipos de minería de texto: análisis semántico y de redes

Algoritmos que identifican las tripletas Sujeto-Acción-Objeto asignando roles semánticos a las palabras en una oración.

Mediante el análisis de 130,000 notas periodísticas de la elección de 2012 en EE.UU, se muestra que los políticos republicanos hablan más negativamente de los demócratas que viceversa.

Esquema de análisis semántico, Elio Lagunes, 2023

Tipos de minería de texto: análisis semántico y de redes (continúa)

Reconocimiento de entidades nominadas (NER). Son algoritmos de inteligencia artificial que, a partir de un entrenamiento, identifican lugares, tiempos y personas en el texto, no como un diccionario, sino por las funciones que tienen:

  • Washington empató con Kansas
  • En Washington se celebrará la cumbre
  • Washington viajó a México para filmar su película

Tipos de minería de texto: Agrupamientos (clustering) no supervisados

Tipos de minería de texto: Agrupamientos (clustering) no supervisados

  • Buscan identificar las maneras amplias en cómo se abordan los conceptos en los corpora.
  • Se conocen como técnicas de modelado de tópicos
  • La más popular: Latent Dirichlet Allocation

En un artículo en que usaron 8737 abstracts de publicaciones de sociología a lo largo del eje cualitativo-cuantitativo, encontraron que la metodología está muy integrada al área de investigación, sin embargo existe un aumento marginal en metodologías cuantitativas en el campo en general.

Conceptos del procesamiento

Destrucción del discurso

Partimos de un corpus de documentos ordenados (descargados programáticamente por lo general), limpiados, con los textos en una sola columna, en otra columna los títulos, autores y fechas, en un mismo idioma (o con idioma indicado en otra columna)

A menudo se dice que 80% del análisis de datos transcurre en la limpieza y preparación de los datos. - Hadley Wickham

Datos textuales

 [1] "Ante la necesidad de hacer frente a la degradación ambiental..."
 [2] "El presente artículo analiza el devenir histórico de los pro..."
 [3] "Durante el primer semestre de 2010 se estudió la gestión rea..."
 [4] "Hoy en día, en la batalla por la defensa de la tierra, ha su..."
 [5] "¿Hay una unidad socio-cultural entre los habitantes de las z..."
 [6] "Este artículo discute algunos aspectos políticos relacionado..."
 [7] "El presente ensayo centra su análisis en la defensa ambienta..."
 [8] "El presente artículo discute los cambios sociales, culturale..."
 [9] "Este texto plantea los resultados de la investigación realiz..."
[10] "Por su posición geográfica costera y condición árida, la ciu..."
[11] "El conjunto de reflexiones que se presentan en este espacio ..."
[12] "A partir de los diferentes procesos de poblamiento de la ama..."
[13] "..."                                                            
[14] "En el lejano año de 1983, el Dr. Pablo González Casanova reu..."
[15] "NA..."                                                          
[16] "En el debate actual sobre el cambio climático, los temas de ..."

Datos listos para modelación

Ya limpiados, tokenizados, lematizados, sin stopwords, dispuestos en una matriz palabra-documento.

¿qué significa todo eso?

      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
 [1,]    3    0    0    0    0    0    0    4    2     0     1
 [2,]    3    0    0    0    0    0    0    2    2     0     0
 [3,]    0    0    3    0    1    1    0    0    0     1     4
 [4,]    3    2    0    0    1    0    0    0    0     0     0
 [5,]    3    0    0    0    0    1    3    0    0     0     0
 [6,]    1    0    0    0    0    0    0    0    0     0     0
 [7,]    1    0    0    0    0    3    0    2    0     0     1
 [8,]    3    0    0    0    0    0    1    0    0     0     1
 [9,]    1    0    0    1    0    0    0    0    0     0     0
[10,]    2    1    0    0    1    1    0    0    0     0     0

Flujo de trabajo:

  • Convertir el texto en tokens
  • Modificar los tokens
  • Contar (elegantemente) los tokens

Tokenización

Tokenización

Los tokens son las moléculas del discurso: las unidades mínimas que aportan significado; las letras y la puntuación corresponden al nivel de los elementos: son la sustancia sin forma con la que se construye todo, pero solo al conformarse en palabras hablarán de algo. Así como hay moléculas de un solo átomo, hay tokens de una sola letra. – E. Lagunes, 2022.

"ante" "la" "necesidad" "de" "hacer" "frente" "a" "la" "degr ...
"el" "presente" "artículo" "analiza" "el" "devenir" "históri ...
"durante" "el" "primer" "semestre" "de" "2010" "se" "estudió ...
"hoy" "en" "día" "en" "la" "batalla" "por" "la" "defensa" "d ...
"hay" "una" "unidad" "socio" "cultural" "entre" "los" "habit ...
"este" "artículo" "discute" "algunos" "aspectos" "políticos" ...
"el" "presente" "ensayo" "centra" "su" "análisis" "en" "la"  ...
"el" "presente" "artículo" "discute" "los" "cambios" "social ...
"este" "texto" "plantea" "los" "resultados" "de" "la" "inves ...
"por" "su" "posición" "geográfica" "costera" "y" "condición" ...

Modificaciones

Modificación de tokens - stemming

Stemming vs lematización:

Stemming es un proceso heurístico crudo que rebana los finales de las palabras, en la esperanza de lograr su propósito correctamente la mayor parte del tiempo; a menudo incluye la remoción de afijos derivacionales. La lematización usualmente se refiere a hacer las cosas propiamente con el uso de un vocabulario y un análisis morfológico de las palabras, normalmente buscando remover solamente las inflexiones y retener la base o la forma de diccionario de una palabra. – User Miku, stackoverflow, 2009.

Stemming (continúa)


"ant" "la" "necesidad" "de" "hacer" "frent" "a" "la" "degrad ...
"el" "present" "artículo" "analiza" "el" "devenir" "históric ...
"durant" "el" "primer" "semestr" "de" "2010" "se" "estudió"  ...
"hoi" "en" "día" "en" "la" "batalla" "por" "la" "defensa" "d ...
"hai" "una" "unidad" "socio" "cultur" "entr" "lo" "habitant" ...
"est" "artículo" "discut" "alguno" "aspecto" "político" "rel ...
"el" "present" "ensayo" "centra" "su" "análisi" "en" "la" "d ...
"el" "present" "artículo" "discut" "lo" "cambio" "social" "c ...

Modificación de tokens - lematización.

“Este amoroso tormento que en mi corazón se ve, sé que lo siento y no sé la causa porque lo siento. Siento una grave agonía por lograr un devaneo, que empieza como deseo y para en melancolía. Y cuando con más terneza mi infeliz estado lloro sé que estoy triste e ignoro la causa de mi tristeza.” – Sor Juana Inés de la Cruz

['este', 'amoroso', 'tormento', 'que', 'en', 'mi', 'corazón', 'él', 'ver', ',', 'saber', 'que', 'él', 'sentir', 'y', 'no', 'saber', 'el', 'causa', 'porque', 'él', 'sentir', '.', 'sentir', 'uno', 'grave', 'agonía', 'por', 'lograr', 'uno', 'devaneo', ',', 'que', 'empezar', 'como', 'deseo', 'y', 'para', 'en', 'melancolía', '.', 'y', 'cuando', 'con', 'más', 'terneza', 'mi', 'infeliz', 'estado', 'lloro', 'saber', 'que', 'estar', 'triste', 'e', 'ignoro', 'el', 'causa', 'de', 'mi', 'tristeza', '.']

Modificación de tokens - stopwords

  [1] "de"           "la"           "que"          "el"           "en"          
  [6] "y"            "a"            "los"          "del"          "se"          
 [11] "las"          "por"          "un"           "para"         "con"         
 [16] "no"           "una"          "su"           "al"           "lo"          
 [21] "como"         "más"          "pero"         "sus"          "le"          
 [26] "ya"           "o"            "este"         "sí"           "porque"      
 [31] "esta"         "entre"        "cuando"       "muy"          "sin"         
 [36] "sobre"        "también"      "me"           "hasta"        "hay"         
 [41] "donde"        "quien"        "desde"        "todo"         "nos"         
 [46] "durante"      "todos"        "uno"          "les"          "ni"          
 [51] "contra"       "otros"        "ese"          "eso"          "ante"        
 [56] "ellos"        "e"            "esto"         "mí"           "antes"       
 [61] "algunos"      "qué"          "unos"         "yo"           "otro"        
 [66] "otras"        "otra"         "él"           "tanto"        "esa"         
 [71] "estos"        "mucho"        "quienes"      "nada"         "muchos"      
 [76] "cual"         "poco"         "ella"         "estar"        "estas"       
 [81] "algunas"      "algo"         "nosotros"     "mi"           "mis"         
 [86] "tú"           "te"           "ti"           "tu"           "tus"         
 [91] "ellas"        "nosotras"     "vosotros"     "vosotras"     "os"          
 [96] "mío"          "mía"          "míos"         "mías"         "tuyo"        
[101] "tuya"         "tuyos"        "tuyas"        "suyo"         "suya"        
[106] "suyos"        "suyas"        "nuestro"      "nuestra"      "nuestros"    
[111] "nuestras"     "vuestro"      "vuestra"      "vuestros"     "vuestras"    
[116] "esos"         "esas"         "estoy"        "estás"        "está"        
[121] "estamos"      "estáis"       "están"        "esté"         "estés"       
[126] "estemos"      "estéis"       "estén"        "estaré"       "estarás"     
[131] "estará"       "estaremos"    "estaréis"     "estarán"      "estaría"     
[136] "estarías"     "estaríamos"   "estaríais"    "estarían"     "estaba"      
[141] "estabas"      "estábamos"    "estabais"     "estaban"      "estuve"      
[146] "estuviste"    "estuvo"       "estuvimos"    "estuvisteis"  "estuvieron"  
[151] "estuviera"    "estuvieras"   "estuviéramos" "estuvierais"  "estuvieran"  
[156] "estuviese"    "estuvieses"   "estuviésemos" "estuvieseis"  "estuviesen"  
[161] "estando"      "estado"       "estada"       "estados"      "estadas"     
[166] "estad"        "he"           "has"          "ha"           "hemos"       
[171] "habéis"       "han"          "haya"         "hayas"        "hayamos"     
[176] "hayáis"       "hayan"        "habré"        "habrás"       "habrá"       
[181] "habremos"     "habréis"      "habrán"       "habría"       "habrías"     
[186] "habríamos"    "habríais"     "habrían"      "había"        "habías"      
[191] "habíamos"     "habíais"      "habían"       "hube"         "hubiste"     
[196] "hubo"         "hubimos"      "hubisteis"    "hubieron"     "hubiera"     
[201] "hubieras"     "hubiéramos"   "hubierais"    "hubieran"     "hubiese"     
[206] "hubieses"     "hubiésemos"   "hubieseis"    "hubiesen"     "habiendo"    
[211] "habido"       "habida"       "habidos"      "habidas"      "soy"         
[216] "eres"         "es"           "somos"        "sois"         "son"         
[221] "sea"          "seas"         "seamos"       "seáis"        "sean"        
[226] "seré"         "serás"        "será"         "seremos"      "seréis"      
[231] "serán"        "sería"        "serías"       "seríamos"     "seríais"     
[236] "serían"       "era"          "eras"         "éramos"       "erais"       
[241] "eran"         "fui"          "fuiste"       "fue"          "fuimos"      
[246] "fuisteis"     "fueron"       "fuera"        "fueras"       "fuéramos"    
[251] "fuerais"      "fueran"       "fuese"        "fueses"       "fuésemos"    
[256] "fueseis"      "fuesen"       "siendo"       "sido"         "tengo"       
[261] "tienes"       "tiene"        "tenemos"      "tenéis"       "tienen"      
[266] "tenga"        "tengas"       "tengamos"     "tengáis"      "tengan"      
[271] "tendré"       "tendrás"      "tendrá"       "tendremos"    "tendréis"    
[276] "tendrán"      "tendría"      "tendrías"     "tendríamos"   "tendríais"   
[281] "tendrían"     "tenía"        "tenías"       "teníamos"     "teníais"     
[286] "tenían"       "tuve"         "tuviste"      "tuvo"         "tuvimos"     
[291] "tuvisteis"    "tuvieron"     "tuviera"      "tuvieras"     "tuviéramos"  
[296] "tuvierais"    "tuvieran"     "tuviese"      "tuvieses"     "tuviésemos"  
[301] "tuvieseis"    "tuviesen"     "teniendo"     "tenido"       "tenida"      
[306] "tenidos"      "tenidas"      "tened"       

stopwords (continúa)

"ante" "la" "necesidad" "de" "hacer" "frente" "la" "degradac ...
"el" "presente" "artículo" "analiza" "el" "devenir" "históri ...
"durante" "el" "primer" "semestre" "de" "2010" "se" "estudió ...
"hoy" "en" "día" "en" "la" "batalla" "por" "la" "defensa" "d ...
"hay" "una" "unidad" "socio" "cultural" "entre" "los" "habit ...
"este" "artículo" "discute" "algunos" "aspectos" "políticos" ...
"el" "presente" "ensayo" "centra" "su" "análisis" "en" "la"  ...
"el" "presente" "artículo" "discute" "los" "cambios" "social ...

Modificación de tokens - n-grams


"ant_la_necesidad" "la_necesidad_de" "necesidad_de_hacer" "d ...
"el_present_artículo" "present_artículo_analiza" "artículo_a ...
"durant_el_primer" "el_primer_semestr" "primer_semestr_de" " ...
"hoi_en_día" "en_día_en" "día_en_la" "en_la_batalla" "la_bat ...
"hai_una_unidad" "una_unidad_socio" "unidad_socio_cultur" "s ...
"est_artículo_discut" "artículo_discut_alguno" "discut_algun ...
"el_present_ensayo" "present_ensayo_centra" "ensayo_centra_s ...

Los números: frecuencias

Sacando números - Frecuencia de términos

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,]    0    0    0    1    0    0    0    0    0     0     0
[2,]    0    0    0    0    0    0    0    0    0     0     0
[3,]    0    0    0    0    0    0    0    0    0     0     0
[4,]    0    0    0    0    0    0    0    0    0     0     0

Sacando números: frecuencia de términos - inverso de la frecuencia en documentos (tf-idf)

     [,1] [,2] [,3]   [,4] [,5] [,6] [,7] [,8]
[1,]    0    0    0 0.1592    0    0    0    0
[2,]    0    0    0 0.0000    0    0    0    0
[3,]    0    0    0 0.0000    0    0    0    0
[4,]    0    0    0 0.0000    0    0    0    0

Con qué se hace

Paquetes programáticos

lenguaje R

CRAN task view Natural Language Processing

tm, openNLP, tidytext, topicmodels, textrecipes, qdap, udpipe

python

NLTK, spaCy

Software de interfaz gráfica

Cortex de la universidad Gustave Eiffel