DebianにMecabを入れてみる.

研究の関係でDebian4.0にmecabを入れようとしたら,
どうも文字コードutf-8な辞書がないようで.
lenny用のdebパッケージをダウンロードして強制的に入れようとするも挫折.
結局,ソースからコンパイルして入れることにしたので,その時のメモです.*1

まずは,mecabと辞書,pythonバインディングwget

%wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.97.tar.gz
%wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
%wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-python-0.97.tar.gz

続いて解凍.

%tar xvfz mecab-0.97.tar.gz
%tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz
%tar xvfz mecab-python-0.97.tar.gz

mecabのインストール

%cd mecab-0.97
%./configure --enable-utf8-only
%make
%sudo make install

問題なし.

mecab-ipadicのインストール

%cd mecab-ipadic-2.7.0-20070801
%./configure --with-charset=utf8
%make
%sudo make install

ファイルが大きくて面倒だけど,こちらも問題なし.

mecab-pythonのインストール

%cd mecab-python-0.97
%sudo python setup.py install

OKOK.

pythonから利用できるか試してみる

インタラクティブシェルでインポート.

%python
>>> import MeCab
ImportError: libmecab.so.1: cannot open shared object file: No such file or directory

ぐぬぬ,
検索してみたらば,参考URL2を発見

%sudo emacs /etc/ld.so.conf
/usr/local/lib
%sudo ldconfig
%python
>> import MeCab
>> m = MeCab.Tagger()
>> print m.parse("こんにちわ世界")

こんにちわ      感動詞,*,*,*,*,*,こんにちわ,コンニチワ,コンニチワ
世界    名詞,一般,*,*,*,*,世界,セカイ,セカイ
EOS

嫌いではないけど,ちょっと面倒な作業でした.

*1:mecab本体は別にソースから入れることはなかったかもかも

有馬へ行ってきた

サークルの合宿で先週の日曜から有馬へ行ってきました.
1泊2日で昼は観光,夜は読書会といった内容でした.
ねぎや陵楓閣という旅館に泊まったのですが,
駅からも近く,料理もおいしく,気さくな仲居さんたちで,サークル員一同大満足でした.
無知なもので,温泉と言えば温泉卵かと思いきや,
有馬の炭酸泉を使った有馬サイダー(左)や炭酸煎餅(中)などが売っており,泉源(右)なども見ることができました.

肝心の読書会は先日から書いているナラタージュについて数時間議論.
「先生」の主人公に対する甘えは,(片親がいないことから)母性を求めているのでは?
と指摘した某女史の読みが秀逸.非常に盛り上がってめでたしめでたし.

・・・だったはずが,2日目の夜から,クーラーにやられてダウン.
体温調節の難しい時期,皆様風邪など引かれませぬよう.

ナラタージュ読了.

ナラタージュ

ナラタージュ


明日からのサークル合宿@有馬でこの作品について話し合ってきます.
著者の他の作品についても時間があったら読んでいこうと思ったけど,無理だったorz
以下,メモ的に感想.ネタバレもあるかも.

続きを読む

今更だけどvimperatorが便利すぎる.

dでタブを消したときにtabかescを押さないと
フォーカスがvimperatorを離れているような気がする.
そこだけ改善されたらいいのだけど,どこかに情報ないかしら.*1
以下,.vimperatorrcと入れてるプラグイン

[更新:2009/04/19]

echo "Loading...."

set titlestring=Fx3
set guioptions=
set hlsearch

set visualbell

set wildoptions=auto
set complete=sl
set focuscontent
set ignorecase
set ui.key.generalAccessKey=0
set verbose=1
set history=5000
set hintmatching=custom

let g:ex_ime_mode = "inactive"
let g:textarea_ime_mode = "inactive"

let g:hintsio="iO"
let g:hintchars="HJKLASDFGYUIOPQWERTNMZXCVB"

colorscheme sweets

noremap j 20j
noremap k 20k

noremap <C-j> gt
noremap <C-k> gT

cnoremap <C-j> <Tab>
cnoremap <C-k> <S-Tab>

map <C-C> :copy titleAndURL<CR>
map c :copy<Space>
map s :gsearch<Space>

" copy.js
javascript <<EOM
liberator.globalVariables.copy_templates = [
 { label: 'titleAndURL',    value: '%TITLE%\n%URL%' },
 { label: 'title',          value: '%TITLE%', map: ',y' },
 { label: 'url',            value: '%URL%' },
 { label: 'anchor',         value: '<a href="%URL%">%TITLE%</a>' },
 { label: 'selanchor',      value: '<a href="%URL%" title="%TITLE%">%SEL%</a>' },
 { label: 'htmlblockquote', value: '<blockquote cite="%URL%" title="%TITLE%">%HTMLSEL%</blockquote>' },
 { label: 'ASIN',           value: 'copy ASIN code from Amazon', custom: function() content.document.getElementById('ASIN').value},
 { label: 'hatena',         value: '[%URL%:title=%TITLE%]' },
];
EOM

" Google Reader
autocmd LocationChange .* js modes.passAllKeys = false
autocmd LocationChange www\\.google\\.(co\\.jp|com)/reader js modes.passAllKeys = true

" disable accesskey
" javascript <<EOM
" liberator.options.setPref(’ui.key.generalAccessKey’, 0);
" EOM

" Gmail
js <<EOF
autocommands.add('LocationChange',/mail\.google\.com\/(mail|a)\//,[
  'js plugins.feedKey.setup(',
  '"c / y j k n p o u e x s r a # [ ] z ? gi gs gt gd ga gc".split(/ +/).map(function(i) [i, "4" + i])',
  ');'
].join(''));
EOF

echo "done"
" vim: set ft=vimperator:
  • 入れたplugin
    • char-hints-mod.js
    • commandBookmarklet.js
    • copy.js
    • feedSomeKeys.js
    • googlesuggest.js
  • 入れたtheme
    • sweets

*1:ぐぐれかすですね,わかります

読む本,読んでいる本,読んだ本

ナラタージュ

9月のサークル合宿で行われる読書会の課題本.
Amazonであらすじを確認.甘い甘い,青い春の物語のよう.
こういう小説って背中のあたりがかゆくなる.
甘ったるいのは苦手なので,さっさと買ってさくっと読みたい.*1

ナラタージュ

ナラタージュ

サイ本

今更ながら,JavaScript絶賛入門中.
サイ本をひたすら読んでは,コードを書いている.
いつも通り「こう書けるんじゃないかな?」と思ったコードが書けたり書けなかったり.
もう慣れしかないですね.あとは,愛.

JavaScript 第5版

JavaScript 第5版

はがれん20巻

読んだ後に読まなくても良かったかなと思った.
その理由として,

  • この先に「転」があることがわかると,「承」になかなか価値を見いだせないからなのか
  • 単純に,読んで満足してしまったからなのか

よくわからない.でも,はがれんは良い作品です.
誇って輸出していい作品だと俺は思う.

鋼の錬金術師 20 (ガンガンコミックス)

鋼の錬金術師 20 (ガンガンコミックス)

*1:とか言いつつ,読んで切なくなってほろりときたりするんだろうなぁ

あっづい

連日の猛暑がすんごいですね.
大阪の家の僕の部屋には,エアコンがないのです;
そのため,扇風機で頑張っていましたが,
この暑さは集中力をそぎ落とすほどの力がある;

なんとかならないものかと,Google先生にお伺いを立ててみました.

どうやらキュウリを食べるのがいいらしい!(無知
キュウリかじりながらビールですかねこりゃ.

Pythonでのエンコーディングの設定

Pythonで,日本語を用いる場合や文字列処理を行う場合には,エンコーディングの設定めも

Pythonのsite-packagesの場所確認方法

site-packagesの場所はOSやPython のインストー ル場所によって異なるのでまずは場所の確認.
シェル上から以下のコマンドを実行する.

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Pythonのエンコーディング

site-packagesディレクトリ以下にsitecustomize.pyというファイルを作成する.
sitecustomize.pyの内容は、UTF-8の場合には下記のようにする.

import
sys
sys.setdefaultencoding('utf-8')

エンコード設定を行わない場合のエラー

Pythonをインストールした初期設定のままだと,'ascii'などが内部エンコーディングに使用される.

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinalnot in range(128)