Začněte nyníZačněte zdarma

Extrakce entit pomocí regexu

Teď vyzkoušíš další jednoduchou metodu – tentokrát pro vyhledání jména osoby ve větě, například „hello, my name is David Copperfield".

Budeš hledat klíčová slova "name" nebo "call(ed)" a pomocí regexu vyhledávat slova začínající velkým písmenem, která budeš považovat za jména. Tvým úkolem v tomto cvičení je definovat funkci find_name().

Toto cvičení je součástí kurzu

Building Chatbots in Python

Zobrazit kurz

Pokyny k cvičení

  • Pomocí re.compile() vytvoř vzor, který zkontroluje, zda se ve zprávě vyskytují klíčová slova "name" nebo "call".
  • Vytvoř vzor pro vyhledávání slov začínajících velkým písmenem.
  • Použij metodu .findall() na name_pattern k získání všech odpovídajících slov ve message.
  • Zavolej svou funkci find_name() uvnitř respond() a klikni na 'Submit Answer', abys viděl/a, jak bot reaguje na zadané zprávy.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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")
Upravit a spustit kód