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.