“V / A G R A “のように字間にスペースが入りダミーとして指輪物語が入っているのが問題だとしたら、bogofilter を使いの解決方法は、「字間を詰めてbogofilter に通し、”V/AGRA” の spam 率を極端に上げる」ことだ。それに気付いて、nkf, kakasi を使用している shell script をサクっと改良してみた。
#!/bin/sh
TEMPFILE1=/tmp/kakasi-bogo1.$$
TEMPFILE2=/tmp/kakasi-bogo2.$$
/usr/local/bin/nkf -Zme > $TEMPFILE1
cat $TEMPFILE1 | tr -d ' ' | grep -v -E ".{20,}" > $TEMPFILE2
cat $TEMPFILE1 $TEMPFILE2 | /usr/local/kakasi/bin/kakasi -w | /usr/local/bogofilter/bin/bogofilter $@
RET=$?
rm -f $TEMPFILE1 $TEMPFILE2
exit $RET
ポイントは 「grep -v -E “.{20,}”」 とし、20文字以上長い行は無視させることで、無駄に DB を喰わないようにしている。とりあえずこれで使ってみよう。