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

ELIZA II: Extrakce klíčových frází

Opravdu chytrá věc na ELIZe je způsob, jakým program zdánlivě rozumí tomu, co jsi mu řekl/a – občas totiž do svých odpovědí zahrne fráze ze vstupu uživatele.

V tomto cvičení budeš porovnávat zprávy s běžnými vzory a extrahovat z nich fráze pomocí re.search(). Je již definován slovník rules, který odpovídá těmto vzorům:

  • "do you think (.*)"
  • "do you remember (.*)"
  • "I want (.*)"
  • "if (.*)"

Před začátkem cvičení si tento slovník prohlédni v Shellu.

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

Building Chatbots in Python

Zobrazit kurz

Pokyny k cvičení

  • Iteruj přes slovník rules pomocí jeho metody .items() a jako proměnné iterátoru použij pattern a responses.
  • Pomocí re.search() s argumenty pattern a message vytvoř objekt match.
  • Pokud shoda existuje, použij random.choice() k výběru hodnoty response.
  • Pokud se '{0}' nachází v dané hodnotě response, použij metodu .group() objektu match s indexem 1 k získání fráze.

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 match_rule()
def match_rule(rules, message):
    response, phrase = "default", None
    
    # Iterate over the rules dictionary
    for ____, ____ in ____:
        # Create a match object
        match = ____
        if match is not None:
            # Choose a random response
            response = ____
            if '{0}' in response:
                phrase = ____
    # Return the response and phrase
    return response.format(phrase)

# Test match_rule
print(match_rule(rules, "do you remember your last birthday"))
Upravit a spustit kód