search

adsense



ブロとも申請フォーム

Ads by Google

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Ruby]ギョーカイ用語変換機をつくってみた

R-1グランプリおもしろかった。
かなりレベルが高かったように思います。
僕の中ではCOWCOW山田與志さんが優勝でした。
http://www.youtube.com/watch?v=nO_ycifUJG8


でR-1サバイバルステージより夙川アトムさんが健闘してたと思うんですが、
ギョーカイ用語変換機をつくってみた。
http://sportare.jp/gyokai_yogo/

※かなりむりやりな変換してます。

c = MeCab::Tagger.new("")
@sentence.gsub!(/\s| /, "")
n = c.parseToNode(@sentence)

@converted_sentence = ""
while n do
unless n.surface.blank?
feature = n.feature.split(/\,/)
word = feature.pop
chars = word.split(//)
word_size = chars.size

converted_word = ""
noun_one_changed ||= false
noun_one_changed = noun_one_changed

if feature[0] == "名詞"
if feature[1] == "数"
elsif feature[1] == "接尾"
else
if word_size == 1
vowel = vowel(chars[0])
unless vowel == "?"
converted_word = vowel + "ー" + chars[0]
noun_one_changed = true
end
elsif word_size == 2
converted_word = chars[1] + "ー" + chars[0]
elsif word_size == 3
if chars[1] == "ン"
converted_word = chars[2] + chars[0] + chars[1]
else
converted_word = chars[1] + chars[2] + chars[0]
end
elsif word_size == 4
converted_word = chars[2] + chars[3] + chars[0] + chars[1]
elsif word_size == 5 && chars[4] == "ン"
converted_word = chars[2] + chars[3] + chars[0] + chars[1]
end
end
elsif feature[0] == "形容詞"
if feature[1] == "自立" && word_size == 3
converted_word = chars[1] + chars[2] + chars[0] + "ー"
end
elsif feature[0] == "助詞"
if noun_one_changed
n = n.next
next
end
end

unless converted_word.blank?
@converted_sentence += converted_word
else
@converted_sentence += n.surface
end
end

n = n.next
end

@converted_sentence.gsub!(/おねえちゃん/, "チャンネー")
@converted_sentence.gsub!(/六本木/, "ギロッポン")
@converted_sentence = @converted_sentence + " ハイきたドーン!"

「おねえちゃん」と「六本木」だけはルール外だけど変換したかったから最後に変換してみた。

<変換例>
「ラーメンがうまい。」→「メンラーがマイウー。」
「ドラえもん」→「エモドラ」

作成には以下のサイトを参考にさせていただきました。
http://mecab.sourceforge.net/
http://i-am.web777.net/2007/02/mecabruby.html
http://d.hatena.ne.jp/aike/20080105
http://www.kobayashiakira.com/blog/index.php?c=8-&page=1

すべてのコトバを変換できるようにするには、なかなかしんどそうなのでこの辺で。

[Ruby]rails2以降のTextHelper#sanitize

rails2以降のTextHelper#sanitizeはホワイトリストだそうです。

ここです。
rails/actionpack/lib/action_view/helpers/sanitize_helper.rb

environment.rbにこんな感じで記述して利用できます。
Rails::Initializer.run do |config|
config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td'
config.action_view.sanitized_allowed_attributes = 'id', 'class', 'style'
end

以上っす。

[Ruby]Heroku Gardenを使ってみた

ずーっと前にHerokuというサービスを聞いていたんですが、先日やっと使ってみました。
http://heroku.com/

以前作ったアカウントでログインしようとすると、、、できない。。。。
ついさっきもやってみたら500 Internal Server Errorに。。。

でHeroku Gardenっていうのに移行してるみたいなんでそっちを使ってみた。
※ Herokuで作ったアカウントが利用できました。
http://herokugarden.com/

# それにしてもページランク6のドメインをあっさり使わないという潔さはスゴイな。
# 現在、herokugarden.comはできたてなのかページランクなしみたい。


で、Heroku Garden(以下、Heroku)はどんなサービスかというと、
ブラウザでRailsアプリが作れちゃうというスグレモノ。

でもbetaですよ。
「このしたでんきあぶない!」と日本語のイメージで注意してました。(コワイ)
http://herokugarden.com/beta

リアルに急に利用できなくなったんで、ソースのダウンロードはちょいちょいした方がよさそうです。
僕はたまたまダウンロードしてたんで助かりました。


で、さっそく使ってた。
ここを参考にさせていただきました。
http://webos-goodies.jp/archives/51287729.html

Railsのバージョンは2.2.2。
僕が使ってたのは1.2.6。

レガシーな僕からしたら、ちょっとRESTfulと言われる2.2.2に戸惑いを感じつつ、なんとか完成。

こんな感じ。
http://peslab.herokugarden.com/

以下のプラグインを利用してます。
・acts_as_taggable_redux
(http://www.tkrb.jp/guide/2007/12/rails_acts_as_taggable_redux.html)
・attachment_fu
(http://www13.atwiki.jp/maimuzo/pages/29.html)
※ Rmagickは普通に利用可能でした。
・will_paginate

標準機能からpaginateがなくなったのはどっかでみたことあったんでプラグインを探してみました。
最近はmislav-will_paginateなんですね。

でもHerokuでのインストールの仕方がわからなかったんで、will_paginateを利用してます。
diggとflickrとAppleタイプのスタイルシートも用意してあって至れり尽くせりでした。
スバラシイ。


Herokuはブラウザでの開発で修正ファイルの切り替えにちょっと時間がかかったりしますが、
railsを練習するにはいいと思います。
環境を作る時間を惜しんで、アイデアをカタチにできちゃうのはすばらしいですね!
便利な世の中になったものです。

というわけでおつかれさまでした。


参考にさせていただいたサイトの皆様やプラグイン制作者の方々、Herokuのスタッフさんに感謝です!

[web]Cuilを使ってみた

少し前に元Google技術者が作ったという検索エンジンCuilというのが紹介されてました。
http://web2-marketing.net/article6/

で使ってみました。
http://www.cuil.com/

なんか検索結果の表示がかっこいー。
見やすい気がするー。
早く日本語対応してくれないかなー。

[diary]あけましておめでとうございます


2009年がはじまりました。
今年もこのブログを続けるようがんばります!