Contar palabras con Python - Frecuencia con que se repiten
En este post de programación en Python vamos a ver un ejercicio para contar la frecuencia con la que aparecen las palabras en un texto; es decir, contar cuántas veces aparece cada palabra.
Todo esto lo haremos con Python usando diccionarios, ciclo for y funciones de manejo de cadenas.
Para sacar la frecuencia de palabras con Python necesitamos primero tener un texto y a ese texto quitarle todos los signos de puntuación, ya que queremos las palabras limpias.
Después, hacemos un split
para convertir la cadena en un arreglo, separándola por espacios. Ahora vamos a tener una lista con todas las palabras del texto; vamos a convertirlas a minúsculas para que cuenten como la misma palabra.
Finalmente declaramos un diccionario y recorremos la lista de palabras. Si la palabra no existe en el diccionario, la agregamos por primera vez con un valor de 1. En caso de que ya exista, aumentamos la frecuencia.
Recuerda que para este caso vamos a usar un diccionario en donde la clave será la palabra, y el valor será la frecuencia con la que aparece en el texto.
Aquí el código explicado en un vídeo en caso de que lo prefieras:
Comenzamos eliminando los caracteres que no vamos a tomar en cuenta:
texto = """Hola, mundo. Esto es una cadena, se supone que debe tener varias palabras pues
vamos a realizar un conteo de frecuencia de las mismas usando el lenguaje de programación Python.
Ya no sé qué escribir pero sigo escribiendo para que poco a poco la cadena sea más larga y el
ejercicio de programación sea demostrable. Creo que con todo esto que he escrito es suficiente"""
# Los caracteres que no contamos como palabras
quitar = ",;:.\n!\"'"
for caracter in quitar:
texto = texto.replace(caracter,
"") # Remplazarlo por "nada"; es decir, removerlo
Después convertimos a minúsculas con la función lower, y separamos por espacios para convertir la cadena a arreglo usando split:
# Lo convertimos a minúsculas pues una palabra mayúscula y minúscula cuenta como una sola
texto = texto.lower()
# Las palabras están separadas por un espacio así que convertimos la cadena a arreglo
palabras = texto.split(" ")
Finalmente declaramos el diccionario, almacenamos las frecuencias y las imprimimos.
# Ahora vamos a contar las palabras creando un diccionario. En este caso la clave del diccionario
# será la palabra, y el valor será el conteo
diccionario_frecuencias = {}
for palabra in palabras:
if palabra in diccionario_frecuencias:
diccionario_frecuencias[palabra] += 1
else:
diccionario_frecuencias[palabra] = 1
for palabra in diccionario_frecuencias:
frecuencia = diccionario_frecuencias[palabra]
print(f"La palabra '{palabra}' tiene una frecuencia de {frecuencia}")
El código completo se ve así:
"""
____ _____ _ _ _
| _ \ | __ \ (_) | | |
| |_) |_ _ | |__) |_ _ _ __ _____| |__ _ _| |_ ___
| _ <| | | | | ___/ _` | '__|_ / | '_ \| | | | __/ _ \
| |_) | |_| | | | | (_| | | / /| | |_) | |_| | || __/
|____/ \__, | |_| \__,_|_| /___|_|_.__/ \__, |\__\___|
__/ | __/ |
|___/ |___/
____________________________________
/ Si necesitas ayuda, contáctame en \
\ https://parzibyte.me /
------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Creado por Parzibyte (https://parzibyte.me). Este encabezado debe mantenerse intacto,
excepto si este es un proyecto de un estudiante.
"""
texto = """Hola, mundo. Esto es una cadena, se supone que debe tener varias palabras pues
vamos a realizar un conteo de frecuencia de las mismas usando el lenguaje de programación Python.
Ya no sé qué escribir pero sigo escribiendo para que poco a poco la cadena sea más larga y el
ejercicio de programación sea demostrable. Creo que con todo esto que he escrito es suficiente"""
# Los caracteres que no contamos como palabras
quitar = ",;:.\n!\"'"
for caracter in quitar:
texto = texto.replace(caracter,
"") # Remplazarlo por "nada"; es decir, removerlo
# Lo convertimos a minúsculas pues una palabra mayúscula y minúscula cuenta como una sola
texto = texto.lower()
# Las palabras están separadas por un espacio así que convertimos la cadena a arreglo
palabras = texto.split(" ")
# Ahora vamos a contar las palabras creando un diccionario. En este caso la clave del diccionario
# será la palabra, y el valor será el conteo
diccionario_frecuencias = {}
for palabra in palabras:
if palabra in diccionario_frecuencias:
diccionario_frecuencias[palabra] += 1
else:
diccionario_frecuencias[palabra] = 1
for palabra in diccionario_frecuencias:
frecuencia = diccionario_frecuencias[palabra]
print(f"La palabra '{palabra}' tiene una frecuencia de {frecuencia}")
También te invito a que expandas tu conocimiento de Python en mi blog.
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.
Ver comentarios
Gracias, muy útil la información !
Gracias por sus comentarios. Le invito a suscribirse al blog y compartirlo
Saludos :)