辞書を司るDictionaryクラスに、学習と保存のメソッドを追加しました。
def study(input)
# 入力がランダム辞書に含まれていれば追加しない
return if @random.include?(input)
@random.push(input)
end
def save
open('dicts/random.txt', 'w') do |f|
f.puts(@random)
end
end
果てしなくシンプルです。
studyを呼び出せば、Dictionaryクラスのインスタンス変数@randomにユーザの入力がストアされ、saveを呼び出すと、ストアされた内容をファイルに書き出します。
学習も保存も、基本的には外部からのアクションによって呼び出されるものになるので、Munohクラスから呼び出されるべきです。
#〜略〜
def dialogue(input)
#〜略〜
response = @responder.response(input, @emotion.mood)
# 入力を学習させる
# 応答を決める前に学習させると、オウム返しな返答をしてしまうので
# 先に返答を決めてから学習させる
@dictionary.study(input)
return response
end
#〜略〜
# Dictionaryクラスのメソッドへのつなぎ
# Munohクラスを利用する側からは、Munohクラスのオブジェクトを通してコールすべき
def save
@dictionary.save
end
#〜略〜
という風になる感じです。
オブジェクトが破棄されるときに自動的に書き出してくれたりするともっといいんだろうなと思いつつ、今日はここまで。

0 コメント:
コメントを投稿