簡単なボットチャットを作ってみましょう!
といっても、いきなり精巧なモノは出来ないので、コマンドプロンプトで、入力に対して、何か一言返答してくれるものにします。一般的には、「人工無能」と呼ばれているモノです。人工知能の類語で、あまりいい響きではありませんね。
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
では、コマンドラインで動かしてみましょう。
いかがです、会話になっていませんが、それらしくはありますね。
