方針

  • 設定ファイルはyamlで記述する。

IO.eachとString#splitで読み込みルーチンを逐一書くのは面倒くさい。
yamlで記述すればYAML.load_file(filename)で一発。

スクリプト単品で使うことがあまりない。また親スクリプトから呼び出す際にコマンドライン引数を逐一指定してやるより、子スクリプトが設定ファイルを読んでくれる方が楽なので。`ruby script/child.rb file1 file2 file 3...`などとやるのは面倒くさい!

require "yaml"
config = YAML.load_file("config")
#後はご自由に

などとやって、
カレントディレクトリにconfigがおいてある状態で

ruby script/child.rb config

すっきり。

実験を再現できないと困りそうなので。

  • grepとwcを活用

一行一エントリで、先頭にマークをつけてデバッグ情報と区別できるようにする。正解なら正解マークをつける。
正解率の計算はこんな感じで、標準コマンドを活用

n_all = `grep "正解マーク" file | wc -l`.to_i
n_correct = `grep "先頭マーク" file | wc -l`.to_i
puts n_correct.to_f / n_all

実験は終わっていて、評価だけもう一度実行したい、ということが結構あるので。