Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Active ModelとNaive Bayes
を仲良くする

baby_faceを使ってみた
@chezou
Who?

•

@chezou / github.com/chezou

•

Software Engineer at Cookpad
baby_face
•

@yoshiori さんが作ったgem

•

https://github.com/yoshiori/baby_face

•

ナイーブベイズとActive Modelをつないでくれ
る便利なGem

•

Rai...
デモアプリ作ってみた

•

2chのゲームスレッドをもとに分類

•

https://github.com/chezou/merone
デモ
Model
def segment(text)	
@tagger ||= TinySegmenter.new	
@tagger.segment(text, ignore_punctuation: true)	
end	

!
class Ent...
サンプルデータ

•

neconeco_gen用に用意されたデータを使用

•

2chのDQ, モンハン, Skyrimのスレッドのコメ
ント
データの取得と学習
#neconeco_gen用テストデータを取得	
mkdir data	
cd data	
wget -i http://www.udp.jp/misc/2ch_data/	
cd ..	
# テストデータをDBに追加・学習...
学習スクリプト(抜粋)

!
!
!

def self.execute	
categories = {	
dragon_quest: "dragon_quest",	
monster_hanter: "mhf",	
skyrim: "skyr...
実際に使う上でのポイント
•

既に分類したいものがたまっている方が楽

•

学習していないカテゴリがあると正常に予測し
ない

•

MeCabはgemで使いづらいからHerokuでやる
ならTinySegmenterおすすめ
Upcoming SlideShare
Loading in …5
×

Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみた

  • Login to see the comments

  • Be the first to like this

Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみた

  1. 1. Active ModelとNaive Bayes を仲良くする
 baby_faceを使ってみた @chezou
  2. 2. Who? • @chezou / github.com/chezou • Software Engineer at Cookpad
  3. 3. baby_face • @yoshiori さんが作ったgem • https://github.com/yoshiori/baby_face • ナイーブベイズとActive Modelをつないでくれ る便利なGem • Railsでお手軽に分類ができる!
  4. 4. デモアプリ作ってみた • 2chのゲームスレッドをもとに分類 • https://github.com/chezou/merone
  5. 5. デモ
  6. 6. Model def segment(text) @tagger ||= TinySegmenter.new @tagger.segment(text, ignore_punctuation: true) end ! class Entry < ActiveRecord::Base include BabyFace baby_face_for features: [:comment], categories: [:dragon_quest, :monster_hanter, :skyrim], tokenizer: ->(text) { segment(text) } end
  7. 7. サンプルデータ • neconeco_gen用に用意されたデータを使用 • 2chのDQ, モンハン, Skyrimのスレッドのコメ ント
  8. 8. データの取得と学習 #neconeco_gen用テストデータを取得 mkdir data cd data wget -i http://www.udp.jp/misc/2ch_data/ cd .. # テストデータをDBに追加・学習 bundle exec bin/rails runner -e development Tasks::CreateBatch.execute
  9. 9. 学習スクリプト(抜粋) ! ! ! def self.execute categories = { dragon_quest: "dragon_quest", monster_hanter: "mhf", skyrim: "skyrim" } categories.each do |category, file| self.open_and_create("./data/#{file}.txt", category) end Entry.where.not(comment: nil).first.baby_face.save end def self.create_with_train(text, category) e = Entry.create(comment: text) method = "train_#{category}".intern e.baby_face.send(method) end
  10. 10. 実際に使う上でのポイント • 既に分類したいものがたまっている方が楽 • 学習していないカテゴリがあると正常に予測し ない • MeCabはgemで使いづらいからHerokuでやる ならTinySegmenterおすすめ

×