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)