#はじめに
この記事は、SLP KBIT AdventCalendar2021 21日目の記事です。(物凄く遅れました…)
Python学習のチュートリアルとして簡単な対話botを作りました。
(といっても会話が支離滅裂なので期待しているようなbotではありません)
#目次
・環境
・コードの解説
・実行結果
・おわりに
##環境
Python 3.9.7
Spyder
#コードの解説
responder.pyはユーザーの入力した文字列に対して反応を示すためのプログラムです。あらかじめユーザーに返すフレーズをリストにまとめて置き、それをランダムに出力することで会話をしているように見せています。
import random
class Responder(object):
def __init__(self, name):
self.name = name
def response(self, input):
return ''
class RepeatResponder(Responder):
# オウム返しのためのサブクラス
def response(self, input):
return '{}ってなに?'.format(input)
class RandomResponder(Responder):
#ランダムな応答のためのサブクラス
def __init__(self, name):
super().__init__(name)
self.responses = ['おなかすいた', 'ねむい', 'ご飯作って',
'元気だねー', 'いい天気だね', 'お疲れ様ー']
def response(self, input):
return (random.choice(self.responses))
import responder
class Pityna(object):
#本体クラス
def __init__(self, name):
self.name = name
self.responder = responder.RandomResponder('Random')
def dialogue(self, input):
#response()を呼び出して入力した文字列を取得
return self.responder.response(input)
def get_responder_name(self):
# responderに格納されているオブジェクト名を戻り値にする
return self.responder.name
def get_name(self):
return self.name
##実行結果
実行してみると下の様な会話をすることができました。しかし、会話をしているように見えてもリストからランダムにフレーズを取り出しているだけなのでぎこちないですね。
#おわりに
作業中にエラーが大量発生したことでなかなか進みませんでした…
今回はbotとの会話が少しぎこちない状態で終わりましたが、この後も本を読み進めながら学習をして会話がちゃんと成立するぐらいのbotを作りたいと思います。
最後まで記事を見ていただきありがとうございました。
参考にした本
・金城 俊哉『Pythonプログラミングパーフェクトマスター』(秀和システム、2020)