ELIZA I: 質問への対応
質問を使うことは、会話を弾ませる効果的な方法です。ここでは、ELIZAらしい個性の第一歩として、文には質問で返し、質問には答えで返す仕組みを作りましょう。
"question" と "statement" をキーとして、それぞれに適切な返答のリストを持つ辞書 responses がすでに定義されています。シェルで responses.keys() や responses["question"] を実行して確認してみましょう。
この演習はコースの一部です
Python でチャットボットを作る
演習の手順
messageを引数として受け取るrespond()関数を定義し、文字列の.endswith()メソッドを使ってmessageが疑問符で終わるかどうかを確認します。messageが疑問符で終わる場合は、responses辞書からランダムに"question"を選びます。そうでない場合は、responsesからランダムに"statement"を選びます。- 疑問符ありとなしの複数のメッセージをボットに送信します。これらはあらかじめ用意されています。シェルでさらに試してみたい場合は、先に「コードを実行する」をクリックしてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
import random
def respond(message):
# Check for a question mark
if ____:
# Return a random question
return ____(____["____"])
# Return a random statement
return ____(____["____"])
# Send messages ending in a question mark
send_message("what's today's weather?")
send_message("what's today's weather?")
# Send messages which don't end with a question mark
send_message("I love building chatbots")
send_message("I love building chatbots")