2011年8月21日日曜日

rails profanity_filterを試してみたけれどうまくいかない

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
不適切発言をフィルターして見えなくするprofanity_filterを試してみた。

https://github.com/intridea/profanity_filter
本家

・gemfileに記述でbundleインストール
gem install profanity_filter
bundle install

モデルに以下を追加。:foo,:berは変えたい文字列(カラム)
profanity_filter :foo, :bar


準備はこれだけフィルターのmethodを設定すると置き換わり方を変えることができる。


profanity_filter :foo, :bar
  #=>禁止ワード→@#=>$%に置き換わる

profanity_filter :foo, :bar, :method => 'dictionary'
  #=>禁止ワード→config/dictionary.ymlの言葉に置き換わる

profanity_filter :foo, :bar, :method => 'vowels'
  #=>禁止ワード→母音だけ置き換える fuck→f*ck

profanity_filter :foo, :bar, :method => 'hollow'
  #=> 禁止ワード→最初と最後だけ残す。fuck→f**k

profanity_filter :foo, :bar, :method => 'stars'
  #=> 禁止ワード→*に置き換える

以下のようなメソッドもある
ProfanityFilter::Base.clean('frak')               #=> '@#$%'
ProfanityFilter::Base.clean('frak', 'dictionary') #=> 'fr*k

_originalをつけると元の言葉を表示
post.title          #=> '@#$% title'
post.title_original #=> 'Fraking title'

置き換わるのは3語以上必要?

すでに200語くらいの不適切ワードがdicrionary.ymlファイルに登録されているのですぐに使えるけど
アルファベットなので、日本語もできるか試してみた。
そのままymlファイルに同じように記述してもうまくいかない。アルファベットであれば問題なく追加できる。うーん、わからん。

0 件のコメント:

コメントを投稿