4 usuarios conectados

Extraer menciones de personas. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada extraer_menciones_mayusculas que tome una cadena de texto en español como entrada y devuelva una lista de todas las palabras que comienzan con una letra mayúscula y están seguidas de una o más letras (minúsculas o mayúsculas).



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Extraer menciones de personas

📋 Copiar código

import re

def extraer_menciones_mayusculas(texto):
  """
  Extrae palabras que comienzan con una letra mayúscula
  seguida de una o más letras de un texto en español.

  Args:
    texto: La cadena de texto de entrada en español.

  Returns:
    Una lista de palabras que comienzan con mayúscula.
  """
  menciones = re.findall(r'\b[A-Z][a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]+\b', texto)
  return menciones

# Ejemplos de uso
texto1 = "Hola soy Juan y ella es María."
resultado1 = extraer_menciones_mayusculas(texto1)
print(f"Menciones con mayúscula en '{texto1}': {resultado1}")

texto2 = "El Rey Felipe VI visitó Madrid."
resultado2 = extraer_menciones_mayusculas(texto2)
print(f"Menciones con mayúscula en '{texto2}': {resultado2}")

texto3 = "La profesora Ana Gómez explicó el tema."
resultado3 = extraer_menciones_mayusculas(texto3)
print(f"Menciones con mayúscula en '{texto3}': {resultado3}")

texto4 = "TEXTO EN MAYÚSCULAS."
resultado4 = extraer_menciones_mayusculas(texto4)
print(f"Menciones con mayúscula en '{texto4}': {resultado4}")

texto5 = "palabra en minúsculas."
resultado5 = extraer_menciones_mayusculas(texto5)
print(f"Menciones con mayúscula en '{texto5}': {resultado5}")

texto6 = "Número 123 y símbolo $."
resultado6 = extraer_menciones_mayusculas(texto6)
print(f"Menciones con mayúscula en '{texto6}': {resultado6}")

texto7 = ""
resultado7 = extraer_menciones_mayusculas(texto7)
print(f"Menciones con mayúscula en '': {resultado7}")

texto8 = "Un nombre compuesto como José Luis."
resultado8 = extraer_menciones_mayusculas(texto8)
print(f"Menciones con mayúscula en '{texto8}': {resultado8}")

Explicación del Código:

  1. Importa el módulo re: Se utiliza para trabajar con expresiones regulares.

  2. Función extraer_menciones_mayusculas(texto):

    • re.findall(r'\b[A-Z][a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]+\b', texto): Utiliza re.findall() para encontrar todas las coincidencias del patrón en el texto. El patrón busca:
      • \b: Un límite de palabra para asegurar que coincida con palabras completas.
      • [A-Z]: Una letra mayúscula del alfabeto inglés.
      • [a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]+: Una o más letras (minúsculas o mayúsculas) del alfabeto español (incluyendo acentos y la 'ñ').
      • \b: Otro límite de palabra.
    • La función devuelve una lista de todas las cadenas que coinciden con este patrón, que se consideran posibles menciones de personas según esta regla simple.

Ejemplos de Uso:

Los ejemplos muestran cómo la función extrae palabras que comienzan con mayúscula y están seguidas de más letras. Ten en cuenta que esta es una simplificación y puede incluir palabras que no son nombres de personas (como la primera palabra de una oración). Para una identificación más precisa de nombres de personas, se requerirían técnicas de procesamiento de lenguaje natural más avanzadas (como el reconocimiento de entidades nombradas).