.
Solución al Ejercicio: Frecuencia de palabras
📋 Copiar código
import re
from collections import Counter
def frecuencia_palabras(texto):
"""
Calcula la frecuencia de cada palabra en un texto.
Args:
texto: La cadena de texto de entrada.
Returns:
Un diccionario donde las claves son las palabras y los valores son sus frecuencias.
"""
texto = texto.lower()
texto = re.sub(r'[^\w\s]', '', texto) # Eliminar puntuación
palabras = texto.split()
return Counter(palabras)
# Ejemplos de uso
texto1 = "Esta es una frase. Esta frase es un ejemplo."
resultado1 = frecuencia_palabras(texto1)
print(f"Frecuencia de palabras en '{texto1}':\n{resultado1}")
texto2 = "El perro ladra y el gato maulla. El perro es feliz."
resultado2 = frecuencia_palabras(texto2)
print(f"\nFrecuencia de palabras en '{texto2}':\n{resultado2}")
texto3 = "Una palabra sola."
resultado3 = frecuencia_palabras(texto3)
print(f"\nFrecuencia de palabras en '{texto3}':\n{resultado3}")
texto4 = ""
resultado4 = frecuencia_palabras(texto4)
print(f"\nFrecuencia de palabras en '':\n{resultado4}")
texto5 = "Texto con varias varias palabras repetidas."
resultado5 = frecuencia_palabras(texto5)
print(f"\nFrecuencia de palabras en '{texto5}':\n{resultado5}")
Explicación del Código:
-
import re
:
- Importa el módulo
re
para
trabajar con expresiones regulares (para eliminar la puntuación).
-
from collections import Counter
:
- Importa la clase
Counter
del
módulo collections
. Counter
es una subclase de
diccionario especialmente diseñada para contar objetos hashables.
-
def frecuencia_palabras(texto):
:
- Define una función llamada
frecuencia_palabras
que toma una cadena de texto (texto
)
como entrada.
-
texto = texto.lower()
:
- Convierte el texto a minúsculas para que
las palabras se cuenten sin distinción de capitalización.
-
texto = re.sub(r'[^\w\s]', '',
texto)
:
- Utiliza una expresión regular para
eliminar cualquier carácter que no sea una letra (
\w
), un
número o un espacio en blanco (\s
). Esto elimina la
puntuación del texto.
-
palabras = texto.split()
:
- Divide el texto limpio en una lista de
palabras, utilizando los espacios en blanco como delimitadores.
-
return Counter(palabras)
:
- Crea un objeto
Counter
a
partir de la lista de palabras. El Counter
automáticamente
cuenta la frecuencia de cada palabra única en la lista y devuelve un
diccionario donde las claves son las palabras y los valores son sus
recuentos.
Ejemplos de Uso:
Los ejemplos muestran cómo la función calcula la
frecuencia de las palabras en diferentes textos. El resultado es un diccionario
que indica cuántas veces aparece cada palabra (en minúsculas y sin puntuación)
en el texto.