DBが要らなくて単体で(Rubyは要るけど)動作するのでお手軽で楽しい! でも、たまにエラーで落ちてしまう。いろんな文章をまとめて入れちゃいたいので、エラーは痛いなぁ。
./sixamo.rb:491:in `learn': undefined method `empty?' for nil:NilClass (NoMethodError)
これって、たぶん Java でいうところの NullPointerException かしらん。
対話モードでファイルを流すこともできるみたい(標準出力ですから ruby sixamo.rb -im data_directory < input_text_file な感じで)だけど、なぜか途中で止まってしまうことがあるので、スクリプトを作成。
以下のスクリプトで、テキストファイルから文章をまとめて Sixamo に学習させることができる。NoMethodError が起きたら、そのインスタンスでは何度も例外が発生するみたいなので、インスタンスを生成しなおすことにした。ちゃんと学習できてるかはイマイチ不安だけど……
#!/usr/bin/env ruby
#
# usage: ruby sf.rb data_directory < input_text_file
#
require 'sixamo'
$KCODE = 'e'
sixamo = Sixamo.new(ARGV[0])
while line = STDIN.gets
print 'STDIN> ', line.chomp
puts
begin
sixamo.memorize(line.chomp)
rescue Exception
print 'ERROR> ', $!
puts
# recreate instance if a exception raised
sixamo = Sixamo.new(ARGV[0])
end
# for display sixamo responses
#res = sixamo.talk
#print 'SIXAMO> ', res
#puts
end
うまくいくといいなぁ。
tags: Zura zurazure
Posted by NI-Lab. (@nilab)

