ComenzarEmpieza gratis

Extracción de entidades con regex

Ahora vas a usar otro método sencillo, esta vez para encontrar el nombre de una persona en una frase, como "hello, my name is David Copperfield".

Buscarás las palabras clave "name" o "call(ed)", y localizarás palabras con mayúscula inicial usando regex y asumirás que son nombres. Tu tarea en este ejercicio es definir una función find_name() para hacerlo.

Este ejercicio forma parte del curso

Creación de chatbots en Python

Ver curso

Instrucciones del ejercicio

  • Usa re.compile() para crear un patrón que compruebe si aparecen las palabras clave "name" o "call".
  • Crea un patrón para encontrar palabras con mayúscula inicial.
  • Usa el método .findall() sobre name_pattern para recuperar todas las palabras que coincidan en message.
  • Llama a tu función find_name() dentro de respond() y luego pulsa "Enviar respuesta" para ver cómo responde el bot a los mensajes proporcionados.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Define find_name()
def find_name(message):
    name = None
    # Create a pattern for checking if the keywords occur
    name_keyword = ____
    # Create a pattern for finding capitalized words
    name_pattern = ____
    if name_keyword.search(message):
        # Get the matching words in the string
        name_words = ____
        if len(name_words) > 0:
            # Return the name if the keywords are present
            name = ' '.join(name_words)
    return name

# Define respond()
def respond(message):
    # Find the name
    name = ____
    if name is None:
        return "Hi there!"
    else:
        return "Hello, {0}!".format(name)

# Send messages
send_message("my name is David Copperfield")
send_message("call me Ishmael")
send_message("People call me Cassandra")
Editar y ejecutar código