Cálculo de frecuencias con NLTK y diccionarios en Python
Clase 8 de 24 • Curso de Fundamentos de Procesamiento de Lenguaje Natural con Python y NLTK
Resumen
¿Cómo calcular la frecuencia de palabras en un texto?
Calcular la frecuencia de palabras en un texto es clave para entender su estructura y obtener información valiosa. Imagina poder identificar las palabras que más se repiten de una manera eficiente y visualmente atractiva. En este recorrido, aprenderemos a utilizar diccionarios y el paquete NLTK para lograr este objetivo.
¿Cómo se crean diccionarios para calcular palabras?
Un diccionario en Python es una estructura de datos formidable para almacenar pares de clave-valor. Cuando se trata de textos, las claves son las palabras y los valores son sus frecuencias de aparición. Esta técnica inicial te permite visualizar la cantidad de veces que cada palabra aparece en tu texto.
Primero, debes definir un diccionario vacío y recorrer el vocabulario de tu texto. Durante este proceso, estableces relaciones entre cada palabra y el número de veces que aparece en el texto. Sin embargo, este método no es el más eficiente.
# Diccionario manual para contar frecuencias
diccionario_frecuencias = {}
for palabra in texto_vocabulario:
diccionario_frecuencias[palabra] = texto.count(palabra)
¿Por qué no es ideal el método manual?
Hacer un recuento manual utilizando un for
sobre todo el texto puede ser problemático. La principal desventaja de emplear este método manual es su escasa escalabilidad. Ejecuciones largas sobre textos extensos resultan computacionalmente pesadas. Por ejemplo, un texto con 260,000 tokens puede convertirse en un proceso tedioso y largo.
Este método también carece de eficiencia, lo que puede no ser viable si buscas resultados rápidos y precisos. Afortunadamente, existen soluciones más optimizadas.
¿Cómo utilizar NLTK para mejorar el proceso?
La biblioteca NLTK en Python ofrece una función llamada FreqDist
que simplifica en gran medida el cálculo de frecuencias. Al usarla, ahorraremos tiempo y recursos computacionales.
¿Cómo funciona FreqDist
?
-
Creación de FrecDist: La función
FreqDist
recibe como entrada el texto tokenizado sobre el cual deseas trabajar. Este método es directo y eficaz.from nltk import FreqDist distribucion_frecuencia = FreqDist(texto_tokens)
-
Identificación de las palabras más comunes: Una vez creada la distribución de frecuencias, se pueden listar las palabras más comunes con
most_common
. Esto te permite ver, por ejemplo, las 20 palabras más frecuentes.# Top 20 palabras top_palabras = distribucion_frecuencia.most_common(20)
-
Visualización con gráficos: Otra función poderosa es
plot
, que permite visualizar las frecuencias en forma de gráficos basados en Matplotlib.# Grafica las 20 palabras más frecuentes distribucion_frecuencia.plot(20)
¿Qué beneficios aporta NLTK?
Utilizar FreqDist
no solo optimiza el rendimiento, sino que también simplifica el trabajo del analista. Con NLTK
, puedes:
- Reducir el tiempo de ejecución: Procesar textos largos de manera más eficiente.
- Facilitar la comprensión visual: Generar gráficos de frecuencias aclaradores.
- Flexibilidad de consulta: Consultar la frecuencia específica de cualquier palabra de manera directa.
Reflexiones finales sobre la frecuencia de palabras
Entender la frecuencia de palabras en los textos es solo el comienzo. Las palabras más frecuentes en los textos no siempre son las más significativas lingüísticamente. Identificarlas es crucial para ir más allá y aplicar filtros que ofrezcan histogramas más reveladores. La próxima etapa implica profundizar en métodos que extraigan un conocimiento más significativo de los datos textuales. ¡Sigue adelante y descubre el mundo de análisis textual!