簡単なボットチャットを作ってみましょう!
といっても、いきなり精巧なモノは出来ないので、コマンドプロンプトで、入力に対して、何か一言返答してくれるものにします。一般的には、「人工無能」と呼ばれているモノです。人工知能の類語で、あまりいい響きではありませんね。
rubyでいきます。
インクルードの箇所は、分割せずにそのまま書いても問題ありません。
proto.rb
#! -ruby Ks require './unmo' def prompt(unmo) return unmo.name + ':' + unmo.responder_name + '>' end puts('Unmo System prototype : proto') proto = Unmo.new('proto') while true print('> ') input = gets input.chomp! break if input == '' response = proto.dialogue(input) puts(prompt(proto) + response) end
unmo.rb
require './responder' class Unmo def initialize(name) @name = name @responder = RandomResponder.new('Random') end def dialogue(input) return @responder.response(input) end def responder_name return @responder.name end def name return @name end end
responder.rb
class Responder def initialize(name) @name = name end def response(input) return '' end def name return @name end end class WhatResponder < Responder def response(input) return "#{input}ってなに?"; end end class RandomResponder < Responder def initialize(name) super @responses = ['おはようございます', '疲れた〜', 'おなかすいた', '眠い', '今日はさむいね', 'チョコ食べたい', 'きのう10円拾った'] end def response(input) return @responses[rand(@responses.size)] end end
では、コマンドラインで動かしてみましょう。
いかがです、会話になっていませんが、それらしくはありますね。