トップ «前の日記(2008-12-20) 最新 次の日記(2008-12-22)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2008-12-21 :-)

_ 朝ッ

1000起床

_ [MeCab][NetBSD]MeCab の ruby バインディングを入れる

% cd /usr/pkgsrc/textproc/ruby-mecab
% sudo make install clean-depends

文字コード変更

特に指定しない限り, euc が使用されます. もし, shift-jis や utf8 を 使いたい場合は, 辞書の configure オプションにて charset を変更し, 辞書を再構築してください. これで, shift-jis や, utf8 の辞書が作成されます.

手元では UTF-8 を使っているので UTF-8 を使うように変更する。

% cd /usr/pkgsrc/textproc/mecab-ipadic
% env MECAB_CHARSET=utf8 sudo make install clean-depends

--enable-utf8-only を指定する方法が分からない。

_ [MeCab][tdiary][tagcloud][タグクラウド]MeCab で tdiary 日記の頻出単語を調べてタグクラウドを作る

参考

準備

ruby-mecab を入れておく

コード

@akio0911 のコードをそのまま使ったら以下のように怒られた

% ./tagcloud.rb ~/diary/2008/200812.td2 2008
./tagcloud.rb:32:in `main': stack level too deep (SystemStackError)
        from ./mecabtagcloud.rb:14:in `[]'
        from ./mecabtagcloud.rb:14:in `each'
        from ./mecabtagcloud.rb:15:in `each'
        from ./mecabtagcloud.rb:31:in `main'
        from ./mecabtagcloud.rb:29:in `each'
        from ./mecabtagcloud.rb:29:in `main'
        from ./mecabtagcloud.rb:28:in `open'
        from ./mecabtagcloud.rb:28:in `main'
        from ./mecabtagcloud.rb:55
module MeCab
  class Node
    def category
      return self.feature.split(/,/)[0]
    end

    def each(&b)    ← この辺
      b[self]
      self.next.each(&b) if self.next
    end
  end
end

ちょっと変更しておく。

出来たコードはこんな。

#!/usr/pkg/bin/ruby -KU

require 'MeCab'
require 'kconv'
require 'tagcloud'
require 'cgi'

module MeCab
  class Node
    def category
      return self.feature.split(/,/)[0]
    end

    def each
      yield self.next if self.next
    end
#    def each(&b)
#      b[self]
#      self.next.each(&b) if self.next
#    end
  end
end

def main( argv )

  diary = argv[0]
  year = argv[1]

  m = MeCab::Tagger.new
  h={}

  File.open(diary){ |f|
    f.each{ |text|
      node = m.parseToNode(text)
      node.each do |node|
        next unless node.category == '名詞' # 名詞以外はカウント対象としない
        next if  node.surface =~ /^\d+$/ # 数字も対象としない
        next if  node.surface =~ /^[[:punct:]]/ # tdiary wiki形式の記号も対象としない
        if h[node.surface]
          h[node.surface] += 1
        else
          h[node.surface] = 1
        end
      end
    }
  }

  cloud = TagCloud.new
  h.each{ |tag, count|
    cloud.add(tag, "http://www.area51.gr.jp/~rin/diary/?category=#{CGI.escape(tag)};year=#{year}", count)
  }
  print cloud.html_and_css(200)

end

main ARGV

実行

tdiary のテキストをかき集めて

% find ~/diary/2008/ -name "*.td2" | while read file; do cat $file >> td2008;done

実行

% tagcloud.rb ./td2008 2008 > td2008tagcloud.txt

出来上がり

Apr C CD Copyright DLL DQ Date Dir Disk Does Doing ERROR F FF File Format G Installing Last MACHINE Microsoft NetBSD Oct PNP Package Partition Plagger Ruby Should Starting Stop TDIARY THE The Title Visible WARNING WWW Warning Windows a abcd aho amazon base begin body bsd build c cat cd config cp cpan cpu cvs cylinders def drwxr echo else end exec exit export f for fwohci gcc gpio http if img include inet int ja load main make miwarin mixi mkdir module my name ok options p parser pci piixide plugin print printf private public puts r raise read ref require rescue return rin ruby sd server set span start sub sudo t tdiary test time total uhci uhub umass usb using wd while xorg あと いま きのこ ここ こちら これ それ ふう ぶり オブジェクト オレ カルボナーラ カレー クラシック ゲーム コード コーヒー ゴーヤー スイートポテト ステージ ナポリ ファイナル ファイル プロキオンスタジオ プログラム ベイクドチーズケーキ ホテル リッジレーサー 今回 今年 今日 仕事場 以下 以前 作曲 作業 先日 冒頭 冷や 北海道 参加 古代 名前 場所 実行 店員 手元 日記 昨日 最初 最後 最近 月餅 東京 植松 検索 環境 細江 結局 肉じゃが 講師 起動

_ それ category_to_tagcloud.rb で出来るよ

いやタグを書いてない日記も対象にしてみたかったのでね。

_ はてなダイアリーにはアーカイブの URI があるんすね

たとえばオレ http://d.hatena.ne.jp/rin51/archive

tdiary にもあるんだろかあとで調べる

_ [ナポリタン][おひる]おひる

ナポリタン

_ 狼と香辛料

20081221_0.jpg

読む

_ ちょっと休憩

20081221_1.jpg

@神田ベローチェ

頭が痛くなってきた

_ ベローチェでコーヒーのサイズを「ショートサイズでよろしく」と言ってしまった

ショートじゃなくてスモールとかラージだよなあ

スターバックスに通っている癖か

_

20081221_2.jpg

蔵で飯

miwarin goju TAB BAT cerbe プースケ fujiwara NOB

_ ウルトラオレンジがいくつか

20081221_3.jpg

ども

久しぶりに見た

_ LINEAR vol.30 のチケットが 12/20 発売らしいので買った

特設ページとか出来てるんですが。

音楽CD「アルカナハート2 リミックス」情報とかなんとか。

「アルカナハート2」「すっごい!アルカナハート2~転校生あかねとなずな~」の楽曲を様々なアーティストが大胆リミックスしたCDが発売決定しました!

参加アーティストはリッジレーサーシリーズなどを手がけるゲームミュージックの父、“細江慎治”を始め、佐宗綾子、斎藤博人、矢野雅士、相原隆行、来兎、quad、Atsushi Oharaとゲームミュージックファンなら「ピン!」と来る豪華メンバー勢ぞろい。さらに原曲制作者の吉平元治と、ゲームミュージック界のカリスマ「佐野電磁」も緊急参戦決定!

これはひどい。買う