Python es un lenguaje de programación que se ha vuelto muy popular entre los analistas de datos debido a su facilidad de uso y su amplia gama de bibliotecas y herramientas de análisis de datos. En este tutorial, aprenderás cómo crear un programa en Python para analizar la frecuencia de palabras en un texto.
Paso 1: Preparar el archivo de texto
Lo primero que debes hacer es preparar el archivo de texto que deseas analizar. Puedes crear un archivo de texto desde cero o utilizar uno existente. Asegúrate de que el archivo esté en formato de texto plano (.txt) y que no contenga ningún otro tipo de formato como negrita o cursiva.
Paso 2: Cargar el archivo de texto
Una vez que tienes el archivo de texto, debes cargarlo en Python. Para hacer esto, utiliza la función «open» de Python para abrir el archivo y luego la función «read» para leer el contenido del archivo. Asegúrate de que el archivo esté en el mismo directorio que el archivo Python que estás utilizando.
archivo = open('nombre_del_archivo.txt', 'r')
contenido = archivo.read()
archivo.close()
En este código, «nombre_del_archivo.txt» debe ser reemplazado por el nombre de tu archivo de texto.
Paso 3: Limpiar el texto
Antes de analizar la frecuencia de palabras, debes limpiar el texto. Esto significa eliminar cualquier puntuación, caracteres especiales y espacios en blanco innecesarios. Utiliza las bibliotecas «re» y «string» de Python para hacer esto.
import re
import string
# Elimina los signos de puntuación
texto = contenido.translate(str.maketrans('', '', string.punctuation))
# Convierte todo a minúsculas
texto = texto.lower()
# Elimina los caracteres especiales
texto = re.sub(r'\d+', '', texto)
# Elimina los espacios en blanco innecesarios
texto = texto.strip()
Paso 4: Contar la frecuencia de las palabras
Una vez que el texto está limpio, puedes contar la frecuencia de cada palabra. Utiliza la biblioteca «collections» de Python para crear un diccionario que contenga la frecuencia de cada palabra en el texto.
from collections import Counter
palabras = texto.split()
frecuencia = Counter(palabras)
En este código, «palabras» es una lista que contiene todas las palabras del texto y «frecuencia» es un diccionario que contiene la frecuencia de cada palabra.
Paso 5: Mostrar los resultados
Finalmente, puedes mostrar los resultados en la consola de Python. Utiliza un bucle «for» para recorrer el diccionario de frecuencia y mostrar cada palabra y su frecuencia.
for palabra, frec in frecuencia.items():
print(palabra, frec)
Paso 6: Eliminar palabras vacías (stop words)
Las palabras vacías, también conocidas como stop words, son palabras que no aportan un significado importante al texto, como «el», «la», «de» o «y». Estas palabras pueden afectar la precisión del análisis de frecuencia de palabras, por lo que es recomendable eliminarlas del texto antes de contar su frecuencia.
Para hacer esto, puedes utilizar la biblioteca «nltk» de Python y su lista de palabras vacías en español. Primero, debes instalar la biblioteca utilizando el comando «pip install nltk». Luego, carga la lista de palabras vacías y elimina las palabras que se encuentran en ella del texto.
import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords
stop_words = set(stopwords.words('spanish'))
palabras_limp = [palabra for palabra in palabras if palabra not in stop_words]
En este código, «palabras_limp» es una lista que contiene todas las palabras del texto sin las palabras vacías.
Paso 7: Graficar los resultados
Una forma más visual de mostrar los resultados es a través de gráficos. Utiliza la biblioteca «matplotlib» de Python para crear un gráfico de barras que muestre las palabras más frecuentes en el texto.
import matplotlib.pyplot as plt
# Obtener las 10 palabras más frecuentes
palabras_frec = frecuencia.most_common(10)
# Convertir a dos listas separadas para graficar
palabras, frecuencias = zip(*palabras_frec)
plt.bar(palabras, frecuencias)
plt.title('Palabras más frecuentes')
plt.xlabel('Palabras')
plt.ylabel('Frecuencia')
plt.show()
En este código, «palabras_frec» es una lista de tuplas que contiene las 10 palabras más frecuentes y su frecuencia. Luego, se convierte en dos listas separadas para graficar.
Paso 8: Guardar los resultados en un archivo
Si deseas guardar los resultados en un archivo para su posterior uso, puedes hacerlo utilizando la función «write» de Python y el formato CSV. Primero, debes crear una lista que contenga cada palabra y su frecuencia. Luego, escribe esta lista en un archivo CSV.
import csv
# Crear una lista de tuplas con cada palabra y su frecuencia
palabras_frec = [(palabra, frecuencia[palabra]) for palabra in palabras_limp]
# Escribir en un archivo CSV
with open('resultados.csv', 'w', newline='') as archivo:
writer = csv.writer(archivo)
writer.writerow(['Palabra', 'Frecuencia'])
writer.writerows(palabras_frec)
En este código, «palabras_frec» es una lista de tuplas que contiene cada palabra y su frecuencia. Luego, se escribe esta lista en un archivo CSV llamado «resultados.csv».