正規表現による意図分類 I
まず、非常にシンプルな手法で意図(インテント)を認識する方法を実装しましょう。キーワードの有無を調べる方法です。
ディクショナリ keywords はすでに定義されています。キーには "greet"、"goodbye"、"thankyou" という意図が設定されており、対応する値にはキーワードのリストが格納されています。たとえば、keywords["greet"] には "["hello","hi","hey"] が設定されています。
もう一つのディクショナリ responses も定義済みです。これは、各意図に対してボットがどのように応答すべきかを示しています。また、キー "default" にはデフォルトの応答も含まれています。
関数 send_message() とボット・ユーザーのテンプレートもすでに定義されています。この演習では、意図をキー、正規表現オブジェクトを値として持つディクショナリを作成しましょう。
この演習はコースの一部です
Python でチャットボットを作る
演習の手順
intentとkeysをイテレータ変数として使い、keywordsディクショナリを反復処理しましょう。'|'.join(keys)を使って、少なくとも1つのキーワードにマッチする正規表現を作成し、re.compile()に渡してパターンオブジェクトにコンパイルしましょう。その結果をpatternsディクショナリの値として格納してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define a dictionary of patterns
patterns = {}
# Iterate over the keywords dictionary
for ____, ____ in ____:
# Create regular expressions and compile them into pattern objects
patterns[intent] = ____
# Print the patterns
print(patterns)