Analizador de frecuencia de palabras
Mira Hola. Me encargaron extraer información de los registros de misión y hay cientos de ellos. Necesito algo que tome un archivo de texto, cuente cuántas veces aparece cada palabra y me muestre los resultados principales. Quiero descubrir qué temas se repiten sin tener que leer todo manualmente.
Lo que vas a construir
Enter text, or a filename to read from: sample.txt
Top 10 words:
the 42
and 31
python 18
is 16
you 14
...Lo que vas a necesitar
- Cadenas — dividir texto en palabras, eliminar puntuación, convertir a minúsculas
- Diccionarios — contar cuántas veces aparece cada palabra
- Listas — ordenar y obtener los resultados principales
- Archivos y excepciones — leer desde un archivo de texto
- Lambda, comprensiones y zip — las comprensiones de listas y
sorted()con un key funcionan muy bien aquí
Pistas
Normaliza antes de contar. Convierte todo a minúsculas y elimina la puntuación antes de hacer el conteo. De lo contrario, "Python", "python" y "Python," se cuentan como palabras diferentes.
Un diccionario hace el conteo. Recorre las palabras. Si la palabra ya es una clave, incrementa su conteo. Si no lo es, agrégala con un conteo de 1. .get() con un valor predeterminado lo hace más limpio.
Ordenar un diccionario por valor. sorted() acepta un argumento key=. Pasa una lambda que retorne el valor de cada clave para ordenar por frecuencia.
Yendo más allá
Una vez que el análisis básico funcione:
- Palabras vacías. Ignora palabras comunes como "the", "and", "is". Define un conjunto de palabras vacías y omite cualquier palabra que aparezca en él.
- N principales configurable. Permite al usuario especificar cuántos resultados mostrar en lugar de mostrar siempre 10.
- Salida visual. Imprime cada palabra con una barra hecha de caracteres repetidos proporcionales a su conteo. Incluso una versión simple hace que la salida sea mucho más legible.

