LoginSignup
0
0

More than 3 years have passed since last update.

基礎から学ぶ 人工知能の教科書 第2章 章末問題

Last updated at Posted at 2020-07-08

はじめに

機械学習の勉強として、「基礎から学ぶ 人工知能の教科書」 を読んでいます。

この本の特徴は、章末問題に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では、こういう処理が無いので新鮮です。
但し、コマンドプロンプトのバグ対応で、レガシ コンソールを選択する必要があります。
20200709.png

まとめ

  • 第2章まで読んだ
  • G検定は難しかった
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0