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 te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
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 :)