Reudy on Ruby1.9             @Glass_saga
自己紹介•   大学生•   神奈川県民•   Ruby歴もうすぐ1年•   Twitter: @Glass_saga•   #pasratce@irc.friend-chat.jpにいます•   http://pasra.tk/•   htt...
ロイディとは• 日本語人工無脳• 東京工業大学 ロボット技術研究会の  市川 宙(Gimite)さんが中心となって作成• Rubyで書かれていて、オープンソース• 1.9系では動作しない
基本的な仕組みログから相手の発言に似た発言を探す                            「Railsってどうよ?」それに対する返事をベース発言とする                             過去ログ※右の例では「...
加えた変更• まず動くように ・Ruby1.9では廃止された$KCODEを使っていた ・マジックコメントでエンコーディングを与えれば起動はした• 文字列のエンコーディングの変換 ・NKFを使っていたので、String#encodeを使うようにし...
新機能• Twitterに対応 ・タイムラインから学習してtweet• Lingrに対応 ・Sinatraを使っている• 形態素解析エンジンMeCabを使えるように ・従来の単語抽出は正規表現で行っていた ・MeCabとmecab-rubyがイ...
新機能• 辞書の保持に使うDBMの追加/変更が可能 ・デフォルトのDBMをRuby/GDBMからPStoreに ・[],[]=などのいくつかのメソッドを定義したスクリプトを書けば  その他のDBMも利用可能• 設定ファイルを.txtからYAML...
今後の課題• ログと単語の保存の一本化  ・現在はログや単語を内部(バイナリ)と外部(可読)に  分けて保存している ・YAML::Storeで1ファイルにまとめてみたが、遅い• アルゴリズムの改善 ・IRCでの使用を前提としているので、Twi...
ご清聴ありがとうございました
Reudy on Ruby1.9
Reudy on Ruby1.9
Upcoming SlideShare
Loading in …5
×

Reudy on Ruby1.9

1,508 views

Published on

Chatterbot Reudy on Ruby1.9

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,508
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Reudy on Ruby1.9

  1. 1. Reudy on Ruby1.9 @Glass_saga
  2. 2. 自己紹介• 大学生• 神奈川県民• Ruby歴もうすぐ1年• Twitter: @Glass_saga• #pasratce@irc.friend-chat.jpにいます• http://pasra.tk/• http://glasssaga.dip.jp/で りむられったーなどのサービスを運営
  3. 3. ロイディとは• 日本語人工無脳• 東京工業大学 ロボット技術研究会の 市川 宙(Gimite)さんが中心となって作成• Rubyで書かれていて、オープンソース• 1.9系では動作しない
  4. 4. 基本的な仕組みログから相手の発言に似た発言を探す 「Railsってどうよ?」それに対する返事をベース発言とする 過去ログ※右の例では「Rubyサイコー!」 <A>Rubyってどうよ? <B>Rubyサイコー!相手の発言中の単語で 「Railsサイコー!」ベース発言中の単語を置換して発言 参考: http://gimite.net/archive/RubyKaigi2006Reudy.pdf
  5. 5. 加えた変更• まず動くように ・Ruby1.9では廃止された$KCODEを使っていた ・マジックコメントでエンコーディングを与えれば起動はした• 文字列のエンコーディングの変換 ・NKFを使っていたので、String#encodeを使うようにした• コードの見た目 ・forをeachにしたり、if !hoge?をunless hoge?にしたり ・メソッド名をスネークケースに変えたいが、こちらはまだ
  6. 6. 新機能• Twitterに対応 ・タイムラインから学習してtweet• Lingrに対応 ・Sinatraを使っている• 形態素解析エンジンMeCabを使えるように ・従来の単語抽出は正規表現で行っていた ・MeCabとmecab-rubyがインストールされていれば、 コマンドラインオプション-m,-mecabでMeCabを使える
  7. 7. 新機能• 辞書の保持に使うDBMの追加/変更が可能 ・デフォルトのDBMをRuby/GDBMからPStoreに ・[],[]=などのいくつかのメソッドを定義したスクリプトを書けば その他のDBMも利用可能• 設定ファイルを.txtからYAMLへ• コマンドラインオプションのパースにoptparse ・利用するDBMやMeCabの使用の有無など
  8. 8. 今後の課題• ログと単語の保存の一本化 ・現在はログや単語を内部(バイナリ)と外部(可読)に 分けて保存している ・YAML::Storeで1ファイルにまとめてみたが、遅い• アルゴリズムの改善 ・IRCでの使用を前提としているので、Twitterのような 多数の発言者がいる環境に対しては改善が必要
  9. 9. ご清聴ありがとうございました

×