インストール: SpamAssassin 3.2.5 + 日本語パッチ

考えた末に、結局日本語パッチもあてることにする。 フィルタによる選別結果を転送の基準付けに使用しているので、やはり精度が高いことが望ましいからだ。 まず、すでに(なぜか)インストールされている、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 + 日本語パッチ自体のインストール自体は完了。

このブログ記事について

このページは、norが2010年4月 9日 11:28に書いたブログ記事です。

ひとつ前のブログ記事は「スパムフィルタの検討」です。

次のブログ記事は「SpamAssassinのルール設定」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アーカイブ

ウェブページ

Powered by Movable Type 6.8.5