1 usuario conectado

Analizador de palabras clave. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada analizar_palabras_clave que tome dos argumentos:

  1. texto: Una cadena de texto en la que se buscarán palabras clave.
  2. palabras_clave: Una lista de cadenas que representan las palabras clave a buscar.

La función debe realizar lo siguiente:

Ejemplo de uso:

Python
 
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(resultado)  # Salida esperada: {'perro': 3, 'corre': 1, 'feliz': 1}

Pista: Puedes utilizar métodos de cadena como lower(), split(), y trabajar con diccionarios para almacenar los resultados.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. 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).
  2. 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).
  3. 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.
  4. 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.
  5. 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.
  6. for palabra_clave in palabras_clave_en_minusculas::

    • Iteramos sobre cada palabra_clave en la lista de palabras clave convertidas a minúsculas.
  7. 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.
  8. 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.
  9. 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.
  10. 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.