MulaiMulai sekarang secara gratis

Entity extraction with regex

Now you'll use another simple method, this time for finding a person's name in a sentence, such as "hello, my name is David Copperfield".

You'll look for the keywords "name" or "call(ed)", and find capitalized words using regex and assume those are names. Your job in this exercise is to define a find_name() function to do this.

Latihan ini adalah bagian dari kursus

Building Chatbots in Python

Lihat Kursus

Petunjuk latihan

  • Use re.compile() to create a pattern for checking if "name" or "call" keywords occur.
  • Create a pattern for finding capitalized words.
  • Use the .findall() method on name_pattern to retrieve all matching words in message.
  • Call your find_name() function inside respond() and then hit 'Submit Answer' to see how the bot responds to the provided messages.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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")
Edit dan Jalankan Kode