はじめに
機械学習の勉強として、「基礎から学ぶ 人工知能の教科書」 を読んでいます。
この本の特徴は、章末問題にPython
の簡単なプログラムが載っていてるところです。
第2章 章末問題
ELIZA.rb
LIMIT = 20
CYCLE = 5
count = 0
endcount = 0
puts('Dr>私はDoctor、お話を伺います')
while endcount < LIMIT
print('あなた>')
inputline = gets.chomp.encode("UTF-8", "CP932", :invalid => :replace)
if count >= CYCLE
puts 'Dr>' << inputline << '、ですか...'
count = 0
elsif inputline.include?('先生')
puts 'Dr>私のことでなくあなたのことを話しましょう'
elsif inputline.include?('母')
puts 'Dr>あなたのお母さんについて話してください'
elsif inputline.include?('父')
puts 'Dr>あなたのお父さんについて話してください'
elsif inputline.include?('意見')
puts 'Dr>私の意見を聞きたいのですか?'
elsif inputline.include?('が心配です')
puts 'Dr>' << inputline.sub(/が心配です/, 'は心配ですか?')
else
puts 'Dr>続けてください'
end
count += 1
endcount += 1
end
puts('Dr>それではそろそろ終了しましょう。おつかれさまでした。')
簡易版ELIZAを作成する問題です。
CP932.rb
inputline = gets.chomp.encode("UTF-8", "CP932", :invalid => :replace)
Windows10
の場合、文字コードを変換する処理が必要になっています。
AtCoder
では、こういう処理が無いので新鮮です。
但し、コマンドプロンプトのバグ対応で、レガシ コンソールを選択する必要があります。
まとめ
- 第2章まで読んだ
- G検定は難しかった