考えた末に、結局日本語パッチもあてることにする。
フィルタによる選別結果を転送の基準付けに使用しているので、やはり精度が高いことが望ましいからだ。
まず、すでに(なぜか)インストールされている、3.3.1をアンインストールする。
# yum remove spamassassin
perl-Encode-Detect
すでにperl-Encode-Detect-1.01-1.el5.rf.i386がインストールされている。MeCab 0.93
MeCab関連のインストールはちょっとてこずった。 MeCab: Yet Another Part-of-Speech and Morphological Analyzerより、mecab-0.98.tar.gzをダウンロード、 "--with-charset=utf-8"をつけて、configureなのだが... src/mecab.h内の以下を修正しておく必要がある(数字に付いている括弧を外す)。#define MECAB_NOR_NODE 0
#define MECAB_UNK_NODE 1
#define MECAB_BOS_NODE 2
#define MECAB_EOS_NODE 3
#define MECAB_EON_NODE 4
#define MECAB_USR_DIC 1
#define MECAB_SYS_DIC 0
#define MECAB_UNK_DIC 2
これを直しておかないと、Text::MeCabのmake testでエラーになってしまう。
$ tar zxvf mecab-0.98.tar.gz
$ cd mecab-0.98
$ ./configure --with-charset=utf-8
$ make
$ sudo make install
(/usr/local/libが、/etc/ld.so.confに書いてあるのを確認して)
$sudo /sbin/ldconfig
MeCab IPA 辞書
やはり、MeCab: Yet Another Part-of-Speech and Morphological Analyzerからmecab-ipadic-2.7.0-20070801.tar.gzをダウンロード。 char.defのASCIIの部分をを以下のように編集。# ASCII
#0x0021..0x002F SYMBOL
#0x0030..0x0039 NUMERIC
#0x003A..0x0040 SYMBOL
#0x0041..0x005A ALPHA
#0x005B..0x0060 SYMBOL
#0x0061..0x007A ALPHA
#0x007B..0x007E SYMBOL
0x0021..0x007E ALPHA
$ ./configure --with-charset=utf-8
$ make
$ sudo make install
文字コードは当然utf-8。
Text::MeCab
cpanでインストール可能。 文字コードは当然utf-8。 # cpan Text::MeCab なお、前述のmecab.hの修正を行わないと、make testでエラーが発生するため、cpanはもちろん、http://search.cpan.org/~dmaki/Text-MeCab/からダウンロードしたtarballからもインストールできない。 最初、ぐぐってみた結果いくつか見つかったMakefile.PLのパスの修正をしたのだが、ダメだったので試行錯誤。日本語パッチ版SpamAssassin
SpamAssassinから、Mail-SpamAssassin-3.2.5.tar.gzをダウンロード、さらに日本SpamAssassinユーザ会から、spamassassin-3.2.5-ja-test1.patchをダウンロード、展開して日本語パッチをあてて、インストール。 $ cd Mail-SpamAssassin-3.2.5 $ patch -p1 < spamassassin-3.2.5-ja-test1.patch $ perl Makefile.PL $ make $ make test $ sudo make install このままだと、ログにwarningがでるので、/usr/lib/perl5/site_perl/5.8.8/Mail/SpamAssassin/Plugin/Tokenizer/MeCab.pmのsub tokenizeを以下のように修正。 参考: http://xoops.fens.net/modules/wiki/?Linux/cfg/Mail-SpamAssassin-3.2.5 for (my $node = $mecab->parse($text); $node; $node = $node->next) {
# push(@buf, $node->surface);
if ( defined $node->surface) {
push(@buf, $node->surface);
}
}
/etc/mail/spamassassin/lcoal.cfに次の行を追加。
normalize_charset 1
tokenizer.preを/etc/mail/spamassassin/にコピーして、以下の行をコメントアウトして、
loadplugin Mail::SpamAssassin::Plugin::Tokenizer::SimpleJA
以下の行のコメントを解除してMeCabを有効化。
loadplugin Mail::SpamAssassin::Plugin::Tokenizer::MeCab
これで、SpamAssassin 3.2.5 + 日本語パッチ自体のインストール自体は完了。