Solución al Ejercicio: Analizador de palabras clave
def analizar_palabras_clave(texto, palabras_clave):
"""
Analiza un texto y cuenta la frecuencia de las palabras clave especificadas.
Args:
texto: La cadena de texto en la que se buscarán palabras clave.
palabras_clave: Una lista de cadenas que representan las palabras clave a buscar.
Returns:
Un diccionario donde las claves son las palabras clave encontradas en el texto
y los valores son el número de veces que aparecen.
"""
texto_en_minusculas = texto.lower()
palabras_en_texto = texto_en_minusculas.split()
palabras_clave_en_minusculas = [clave.lower() for clave in palabras_clave]
conteo_palabras_clave = {}
for palabra_clave in palabras_clave_en_minusculas:
conteo = palabras_en_texto.count(palabra_clave)
if conteo > 0:
conteo_palabras_clave[palabra_clave] = conteo
return conteo_palabras_clave
# Ejemplo de uso:
texto_para_analizar = "El perro ladra fuerte. El perro corre rápido. El perro juega feliz."
lista_de_palabras_clave = ["perro", "corre", "feliz", "gato"]
resultado = analizar_palabras_clave(texto_para_analizar, lista_de_palabras_clave)
print(texto_para_analizar)
print(lista_de_palabras_clave)
print(resultado)
Explicación de la solución:
-
def
analizar_palabras_clave(texto, palabras_clave)::
- Definimos una función llamada
analizar_palabras_clave que acepta dos argumentos: texto
(la cadena a analizar) y palabras_clave (una lista de
palabras que queremos buscar).
-
texto_en_minusculas =
texto.lower():
- Convertimos el
texto de
entrada a minúsculas utilizando el método lower(). Esto
asegura que la búsqueda de palabras clave no distinga entre mayúsculas y
minúsculas (por ejemplo, "Perro" y "perro" se considerarán la misma
palabra).
-
palabras_en_texto =
texto_en_minusculas.split():
- Dividimos el
texto en una
lista de palabras utilizando el método split(). Por
defecto, split() divide la cadena por espacios en blanco.
Esto nos da una lista individual de las palabras presentes en el texto.
-
palabras_clave_en_minusculas =
[clave.lower() for clave in palabras_clave]:
- Utilizamos una comprensión de lista para
crear una nueva lista llamada
palabras_clave_en_minusculas.
Recorremos cada clave en la lista original
palabras_clave y la convertimos a minúsculas usando lower().
Esto asegura la comparación sin distinción de mayúsculas y minúsculas
con las palabras del texto.
-
conteo_palabras_clave = {}:
- Inicializamos un diccionario vacío
llamado
conteo_palabras_clave. Este diccionario se
utilizará para almacenar las palabras clave encontradas en el texto como
claves y su frecuencia de aparición como valores.
-
for palabra_clave in
palabras_clave_en_minusculas::
- Iteramos sobre cada
palabra_clave
en la lista de palabras clave convertidas a minúsculas.
-
conteo =
palabras_en_texto.count(palabra_clave):
- Para cada
palabra_clave,
utilizamos el método count() de la lista
palabras_en_texto para contar cuántas veces aparece esa
palabra_clave en la lista de palabras del texto.
-
if conteo > 0::
- Verificamos si el
conteo de
la palabra_clave es mayor que cero. Esto asegura que solo
incluyamos en el diccionario las palabras clave que realmente se
encontraron en el texto.
-
conteo_palabras_clave[palabra_clave] = conteo:
- Si la
palabra_clave se
encontró en el texto (es decir, su conteo es mayor que 0),
la agregamos al diccionario conteo_palabras_clave. La
palabra_clave (en minúsculas) se convierte en la clave del
diccionario y el conteo se convierte en su valor.
-
return conteo_palabras_clave:
- Finalmente, la función devuelve el
diccionario
conteo_palabras_clave, que contiene las
palabras clave encontradas en el texto y su respectiva frecuencia.
En el ejemplo de uso, el texto contiene la
palabra "perro" 3 veces, "corre" 1 vez y "feliz" 1 vez. La palabra clave "gato"
no aparece en el texto, por lo que no se incluye en el diccionario resultante.