title: Analizador de frecuencia de palabras description: Lee un bloque de texto e informa las palabras más comunes.
Analizador de frecuencia de palabras
Mira Hola. Me han encargado extraer información de los registros de misión y hay cientos de ellos. Necesito algo que tome un archivo de texto, cuente con qué frecuencia aparece cada palabra y me muestre los resultados principales. Quiero descubrir qué temas se repiten sin leer todo manualmente.
Lo que estás construyendo
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 necesitarás
- Strings - dividir texto en palabras, eliminar puntuación, convertir a minúsculas
- Dictionaries - contar cuántas veces aparece cada palabra
- Lists - ordenar y segmentar los resultados principales
- Files and exceptions - leer desde un archivo de texto
- Lambda, comprehensions, and zip - las comprensiones de lista y
sorted()con un argumento key funcionan bien aquí
Sugerencias
Normaliza antes de contar. Convierte todo a minúsculas y elimina la puntuación antes de construir tu conteo. De lo contrario, "Python" y "python" y "Python," contarían como palabras diferentes.
Un diccionario hace el conteo. Itera a través de 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 limpio.
Ordenar un diccionario por valor. sorted() acepta un argumento key=. Pasa una lambda que devuelva el valor para cada clave para ordenar por frecuencia.
Llevándolo más lejos
Una vez que el análisis principal funcione:
- Palabras vacías. Ignora palabras comunes como "the", "and", "is". Define un conjunto de palabras vacías y salta cualquier palabra que aparezca en él.
- Top N configurable. Permite que el usuario especifique cuántos resultados mostrar en lugar de mostrar siempre 10.
- Salida visual. Imprime cada palabra con una barra hecha de caracteres repetidos proporcional a su conteo. Incluso una versión simple hace que la salida sea mucho más legible.

