Skip to content

Análisis de texto usando Python

Published: at 09:02 PM

Análisis de texto

El análisis cualitativo se puede apoyar en software, que busca mejorar la eficiencia al analizar, extraer y registrar la codificación que se obtiene al analizar los textos cualitativos [1].

Coding

Proceso de categorización de la información cualitativa para facilitar su análisis.

Normalización de textos [3].

Es el proceso mediante el cual se convierte u organiza el texto a una forma más manejable y estandarizada.

tokenization

Es el proceso de separar las frases en conceptos o más comunmente en palabras. Estos segmentos se llaman tokens. Para el español o el inglés las palabras se separan con espacios, pero en algunos casos los conceptos tienen más de una palabra.

lemmatization

Es el proceso de determinar la raíz de las palabras, obviando las diferenticas superficiales.

stemming

Es una versión más sencilla de lemmatizaation en la que sólo se retirn los sufijos de las palabras.

sentence segmentation

Dividir un texto en diferentes fraces, usando generalmente símbolos de puntuación.

Tokenization en Python [4]

Python tiene diferentes librerías para análisis cualitativo. Aquí vamos a hablar de NLTK. Se llama de la siguiente forma:

import nltk

La primera vez que se use se pueden actualizar un conjunto de ejemplos del libro [4]:

nltk.download()

La lista de textos que están en el conjunto de documentos de ejemplo se puede obtener con la instrucción

texts()

Ejemplo

Supongamos que tenemos una base de textos cortos, que hemos organizado en un dataframe llamado text_df. El conjunto de datos puede tener diferentes variables, pero el texto está explícitamente en la columna content.

El primer texto se puede leer de esa base de textos con:

text_df.content[0]

Que en este caso es:

'Desde el frío pero bello #PáramoDeSanturbán escuchamos @RadNalCo @RadNalSantander hoy en el #DiaDelCampesino.\n#OrgullosamenteCampesinos \n@jacobolozano @Angelicablancor @AgroColombia_ \n\n#Santurbán #GranSantander https://t.co/Vji7EIdb7H'

Si queremos automáticamente tokenizarlo por frases, primero debemos llamar las librerías:

from nltk.tokenize import word_tokenize
from nltk.tokenize import sent_tokenize

Para tokenizar por frases se usa:

sent_tokenize(tweets_df.content[0])

Obteniendo:

p['Desde el frío pero bello #PáramoDeSanturbán escuchamos @RadNalCo @RadNalSantander hoy en el #DiaDelCampesino.',
 '#OrgullosamenteCampesinos \n@jacobolozano @Angelicablancor @AgroColombia_ \n\n#Santurbán #GranSantander https://t.co/Vji7EIdb7H']

Se obtiene una lista con dos palabras.

Para tokenizar por palabras, se usa:

word_tokenize(tweets_df.content[0])

Obteniendo:

['Desde',
 'el',
 'frío',
 'pero',
 'bello',
 '#',
 'PáramoDeSanturbán',
 'escuchamos',
 '@',
 'RadNalCo',
 '@',
 'RadNalSantander',
 'hoy',
 'en',
 'el',
 '#',
 'DiaDelCampesino',
 '.',
 '#',
 'OrgullosamenteCampesinos',
 '@',
 'jacobolozano',
 '@',
 'Angelicablancor',
 '@',
 'AgroColombia_',
 '#',
 'Santurbán',
 '#',
 'GranSantander',
 'https',
 ':',
 '//t.co/Vji7EIdb7H']

Stemming en Python [4]

Para hacerlo usando NLTK se requiere definir el paquete e indicar el idioma:

from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer("spanish")

Primero hacemos la lista de palabras. Aquí lower indica que el content se pasa inicialmente a minúsculas.

palabras = word_tokenize(tweets_df.content[0].lower())

Ahora se debe hacer el stemming a cada palabra. Lo hacemos con un ciclo for. Si lo queremos imprimir, lo hacemos así:

for palabra in palabras:print(stemmer.stem(palabra))

¿cómo generaría una nueva lista de palabras?

Usando textos en formato Word [5]

En sus casos de uso, importarán sus textos por ejemplo con el paquete docx (se documenta en [5]):

import docx

Bibliografía

  1. https://en.wikipedia.org/wiki/Qualitative_research#Computer-assisted_qualitative_data_analysis_software_(CAQDAS)

  2. https://en.wikipedia.org/wiki/Coding_(social_sciences)

  3. https://web.stanford.edu/~jurafsky/slp3/

  4. https://www.nltk.org/book/ch01.html

  5. https://python-docx.readthedocs.io/en/latest/


Previous Post
Transcripciones usando Python
Next Post
2024 S2 D.iv Google Gemini