Rubyで日本語の形態素解析しようと思って調べてみると、
MeCab互換のigo-rubyというものがあったので使ってみました。
(java/commonlispで実装されたigoのrubyへの移植版とのことです)

形態素解析器IgoのRuby版を作った
 http://kyow.cocolog-nifty.com/blog/2010/12/igoruby-9726.html

分析対象は、なんでも良かったのですが、
とりあえず自分のtwitterのログをtwilogから取得して、
口癖分析もどきをしてみることにしました。

インストール~igo-ruby使ってみるところまでは、
ほぼほぼ、参考サイトの通りです。

◆インストール

まずは、igo-rubyのgemをインストールします。

$ gem install igo-ruby

◆解析用の辞書作り

次に、解析用の辞書を作ります。
※解析用の辞書作りにはjavaが必要になります。

# 辞書の作り方はこちらを参考にします。
# Igo - Java形態素解析器 (ver 0.4.3)
# http://igo.sourceforge.jp/

以下から、igoをダウンロード
URL: http://sourceforge.jp/projects/igo/releases/
ダウンロードするファイル: igo-0.4.5.jar

以下から、IPA辞書をダウンロード
URL: http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download
ダウンロードするファイル: mecab-ipadic-2.7.0-20070801.tar.gz

ダウンロードした2ファイルを同じディレクトリにおき、
以下のコマンドを入力して、解析用辞書を作ります。

$ tar zxf mecab-ipadic-2.7.0-20070801.tar.gz
$ java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

実行が終わると、「ipadic」というディレクトリができます。
これが解析用の辞書です。

◆igo-ruby使ってみる

以下のrubyプログラム(sample.rb)を作り、
ipadicディレクトリと同じ場所で実行します。

sample.rb

# encoding: utf-8
require 'rubygems'
require 'igo-ruby'
tagger = Igo::Tagger.new('../../ipadic')  # 解析用辞書のディレクトリを指定
t = tagger.parse('吾輩は猫である。名前はまだ無い。')
t.each{|m|
puts "#{m.surface} #{m.feature} #{m.start}"
}

次のように、形態素解析を実施した結果が出力されます。

$ ruby sample.rb
吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ 0
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 2
猫 名詞,一般,*,*,*,*,猫,ネコ,ネコ 3
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ 4
ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル 5
。 記号,句点,*,*,*,*,。,。,。 7
名前 名詞,一般,*,*,*,*,名前,ナマエ,ナマエ 8
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 10
まだ 副詞,助詞類接続,*,*,*,*,まだ,マダ,マダ 11
無い 形容詞,自立,*,*,形容詞・アウオ段,基本形,無い,ナイ,ナイ 13
。 記号,句点,*,*,*,*,。,。,。 15

◆twilogからログ取得して、いざ口癖分析

twilog(http://twilog.org/)にログインして、
設定画面に行くと、過去の自分のtweetをcsvでダウンロードできるので、
「CSV(UTF-8)」というやつを選んで、ダウンロードします。
 http://twilog.org/settings.cgi

ダウンロードしたファイルを展開。
(ファイル名はダウンロードした人のIDになっていると思います)

$ gunzip takemikami121114.csv.gz

ファイルを見てみると、
「tweetのID」、「tweetした日時」、「tweet内容」のCSVだとわかります。

“268397964475641857”,“121114 020035”,“うしほ”
“268005264798654464”,“121113 000009”,“よるほ”

これをrubyで読み込み、頻出単語を数えてみることにします。
まずはこんなプログラム(tweetcount1.rb)書きました。

tweetcount1.rb

# encoding:utf-8
require 'rubygems'
require 'igo-ruby'
require 'csv'

tagger = Igo::Tagger.new('./ipadic')
word_count = {}

CSV.foreach("takemikami121114.csv") do |row|
tweet_text = row[2]
t = tagger.parse(tweet_text)
t.each{|m|
word_count[m.surface] = 0 unless word_count[m.surface]
word_count[m.surface] += 1
}
end

sorted_wc = word_count.sort {|(k1, v1), (k2, v2)| v2 <=> v1 }
sorted_wc.each { |txt| puts txt.join(',') }

結果はこんな感じ。

$ ruby tweetcount1.rb
、,15361
。,14175
の,13073
て,10361
に,9558
が,8288
な,7981
た,7470
は,7393
と,5534
で,5352
し,5292
か,5170
@,4970
ない,4405
を,4152
だ,3857
ん,3850
も,3030
って,2726
= 以下、省略 =

やっぱり品詞見ないとダメですね(お約束ww)
で、修正したのが、次のプログラム(tweetcount2.rb)。

以下をカウント対象から除外しています
・mentionした時のID (@ではじまる単語)
・URL (http:で始まる単語)
・1文字の単語
・「助詞」「助動詞」「記号」及び「名詞」のうち「数」「サ変接続」「非自立」のもの

tweetcount2.rb

# encoding:utf-8
require 'rubygems'
require 'igo-ruby'
require 'csv'

tagger = Igo::Tagger.new('./ipadic')
ignore_type = %(助詞 助動詞 記号)
ignore_subtype = %(名詞,数 名詞,サ変接続 名詞,非自立)

word_count = {}
CSV.foreach("takemikami121114.csv") do |row|
# 「@」「http:」で始まるものを除外
tweet_text_list = []
row[2].split(' ').each do |txt|
next if txt =~ /^@/
next if txt =~ /^http:/
tweet_text_list << txt
end
t = tagger.parse(tweet_text_list.join(' '))
t.each{|m|
# 1文字、無視する品詞を除外
next if m.surface.length <= 1
next if ignore_type.include?(m.feature.split(',').slice(0,1).join(','))
next if ignore_subtype.include?(m.feature.split(',').slice(0,2).join(','))
word_count[m.surface] = 0 unless word_count[m.surface]
word_count[m.surface] += 1
}
end

sorted_wc = word_count.sort {|(k1, v1), (k2, v2)| v2 <=> v1 }
sorted_wc.each { |txt| puts txt.join(',') }

で、結果はこんな感じ。

$ ruby tweetcount1.rb
RT,1385
そう,1159
いい,1006
なんか,876
ない,756
自分,668
ww,654
感じ,485
無い,459
YUI,448
ちょっと,444
会社,413
さん,406
それ,401
gt,381
なん,378
この,376
時間,375
今日,370
tweet,361
= 以下、省略 =

まだまだですが、なんとなく口癖っぽいものが見えてきた気がします。
「なんか」「ちょっと」あたりはかなりtweetしている自覚がありますww

twilogには発言した時間などの情報があるので、
・月ごとで分析傾向をみて、マイブーム分析とか
・時間帯別の口癖分析(夜は下ネタ多い?)とか
やってみると面白いかもしれません。