diary/Kojima/2004-04-22
の編集
http://plamo.linet.jp/?diary/Kojima/2004-04-22
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
・4月の頭から spam を貯めてたところ、そろそろ 6000 通くらい貯ったので、メールを読み書きしている Plamo-3.1 ベースのマシンに bogofilter を導入してみた。 bogofilter 自体は http://bogofilter.sourceforge.net/ あたりからダウンロード。 bogofilter が GSL(GNU Science Library)を必要とするようなので、GNU のサイトから gsl-1.4.tar.gz をダウンロードして configure & install. さて、bogofilter を、、と思って configure すると、Berkeley DB のヘッダとライブラリのバージョンが違う、旨のエラーに。あれれ、、と思って /usr/include を見ると、db.h はシンボリックリンクで db3/db.h を指しているのに、/usr/lib/libdb.so は libdb-4.0.so を指している模様。なぜこうなったんだろう、と首をひねりつつ、d1/bsd_db4.tgz のヘッダー部分を取り出して /usr/include/db.h を置き換え。そう言えば、Plamo-3.x だと、berkeley-db3 がa1/complibs.tgz に入ってたから、それがシンボリックリンクを作ってしまうと後からインストールしたパッケージがおかしくなる気がする。 db.h を置き換えると configure も通ったので bogofilter をビルドしてインストール。 bogofilter はベイズ理論に基づいて spam と非 spam(ham と言うらしい)を区別するから、ある程度まとまった量の spam メールが必要になるので spam を捨てずに貯めてたんだよなぁ。。 さっそく ~/Mail/Spam に行って、bogofilter のデータベースに spam に使われている単語を登録。ただ、bogofilter は単語の区切りに空白を必要とするようなので日本語の spam はそのままでは扱えないため、一度 kakasi を通して単語を切り出す処理が必要になるらしい。そのため、一つシェルスクリプトを作ってみた。 #!/bin/sh nkf -m -e $* | kakasi -w | bogofilter -sv 上記フィルタを実行可能にしておいて、~/Mail/Spam で find . -exec ~/bogofilter-spam.sh {} \; を実行すると bogofilter が ~/.bogofilter/wordlist.db を作り、そこに spam に使われている単語を登録した模様。 この状態で使えるのかな、と思ってたんだけど、実際に spam や ham を bogofilter -Iv で判定させてみると、どれも spamicity=0.52 になって区別が付かない模様。あれれ、、と思って spam でないメールを同じようなフィルター経由でデータベースに登録してやったら、無事 spam なメールと spam でないメールの bogocity に差がついて、spam と ham が区別できるようになりました。 kojima@celeron[~/Mail]% bogofilter -vI newspam/30 X-Bogosity: Yes, tests=bogofilter, spamicity=1.000000, version=0.17.5 kojima@celeron[~/Mail]% bogofilter -vI inbox/30097 X-Bogosity: No, tests=bogofilter, spamicity=0.500736, version=0.17.5 当然と言えば当然なんだけど、spam に出てくる単語だけではなく、ham に出てくる単語もデータベースに記録して、新しく届いたメールの単語が spam に使われているものか ham に使われているものかをチェックして spamicity を計算するみたい > bogofilter この後、fetchmail + procmail が bogofilter を起動するように設定する作業が必要だったんだけど、テキストの量がかなり多くなったので、続きは明日にでも :-) -しかし、4 月の頭(といっても一番古いので 4/5 だった)から溜め始めて、15日ほどで6000通溜ったってことは、一日400通くらい来ているのか、、面倒で手を付けてなかったけど、メールサーバレベルでの対策もちゃんとやらないといけないなぁ。。 -- [[kojima]] SIZE(10){2004-04-22 (木) 20:35:19} -db.h の問題はVersionによっても違うのでしょうか? (^_^;) http://www.linet.gr.jp/ML/plamo/200404/msg00059.htmlで既出ですが,ちょっと違う? -- [[加藤泰文]] SIZE(10){2004-04-23 (金) 11:08:09} -ウチのマシンは Plamo-3.1 のころから適宜手動でパッケージをアップデートしていたので、いつの間にか /usr/include/db.h がシンボリックリンクで /usr/include/db3/db.h を指していて、db-4.0.14 なヘッダーファイルは存在していませんでした。/usr/lib/libdb4.so とかは存在するので、なぜこうなったのかはよく分からないのだけど(苦笑) -- [[kojima]] SIZE(10){2004-04-23 (金) 16:46:30} -昨日の昼過ぎに bogofilter を設置してから、今までに届いた spam が120通くらいなので、400通と数字があわないなぁ、、と思って調べたら、spamを溜めだしてから、一度 +trash にあった spam を +Spam なフォルダに移したことを思い出しました。だから、1 ヶ月で6000通ということはなくて、一日100通くらいみたい。まぁ、それでも十分多い気はするが、、、(涙) -- [[kojima]] SIZE(10){2004-04-23 (金) 16:51:23} #comment
タイムスタンプを変更しない
・4月の頭から spam を貯めてたところ、そろそろ 6000 通くらい貯ったので、メールを読み書きしている Plamo-3.1 ベースのマシンに bogofilter を導入してみた。 bogofilter 自体は http://bogofilter.sourceforge.net/ あたりからダウンロード。 bogofilter が GSL(GNU Science Library)を必要とするようなので、GNU のサイトから gsl-1.4.tar.gz をダウンロードして configure & install. さて、bogofilter を、、と思って configure すると、Berkeley DB のヘッダとライブラリのバージョンが違う、旨のエラーに。あれれ、、と思って /usr/include を見ると、db.h はシンボリックリンクで db3/db.h を指しているのに、/usr/lib/libdb.so は libdb-4.0.so を指している模様。なぜこうなったんだろう、と首をひねりつつ、d1/bsd_db4.tgz のヘッダー部分を取り出して /usr/include/db.h を置き換え。そう言えば、Plamo-3.x だと、berkeley-db3 がa1/complibs.tgz に入ってたから、それがシンボリックリンクを作ってしまうと後からインストールしたパッケージがおかしくなる気がする。 db.h を置き換えると configure も通ったので bogofilter をビルドしてインストール。 bogofilter はベイズ理論に基づいて spam と非 spam(ham と言うらしい)を区別するから、ある程度まとまった量の spam メールが必要になるので spam を捨てずに貯めてたんだよなぁ。。 さっそく ~/Mail/Spam に行って、bogofilter のデータベースに spam に使われている単語を登録。ただ、bogofilter は単語の区切りに空白を必要とするようなので日本語の spam はそのままでは扱えないため、一度 kakasi を通して単語を切り出す処理が必要になるらしい。そのため、一つシェルスクリプトを作ってみた。 #!/bin/sh nkf -m -e $* | kakasi -w | bogofilter -sv 上記フィルタを実行可能にしておいて、~/Mail/Spam で find . -exec ~/bogofilter-spam.sh {} \; を実行すると bogofilter が ~/.bogofilter/wordlist.db を作り、そこに spam に使われている単語を登録した模様。 この状態で使えるのかな、と思ってたんだけど、実際に spam や ham を bogofilter -Iv で判定させてみると、どれも spamicity=0.52 になって区別が付かない模様。あれれ、、と思って spam でないメールを同じようなフィルター経由でデータベースに登録してやったら、無事 spam なメールと spam でないメールの bogocity に差がついて、spam と ham が区別できるようになりました。 kojima@celeron[~/Mail]% bogofilter -vI newspam/30 X-Bogosity: Yes, tests=bogofilter, spamicity=1.000000, version=0.17.5 kojima@celeron[~/Mail]% bogofilter -vI inbox/30097 X-Bogosity: No, tests=bogofilter, spamicity=0.500736, version=0.17.5 当然と言えば当然なんだけど、spam に出てくる単語だけではなく、ham に出てくる単語もデータベースに記録して、新しく届いたメールの単語が spam に使われているものか ham に使われているものかをチェックして spamicity を計算するみたい > bogofilter この後、fetchmail + procmail が bogofilter を起動するように設定する作業が必要だったんだけど、テキストの量がかなり多くなったので、続きは明日にでも :-) -しかし、4 月の頭(といっても一番古いので 4/5 だった)から溜め始めて、15日ほどで6000通溜ったってことは、一日400通くらい来ているのか、、面倒で手を付けてなかったけど、メールサーバレベルでの対策もちゃんとやらないといけないなぁ。。 -- [[kojima]] SIZE(10){2004-04-22 (木) 20:35:19} -db.h の問題はVersionによっても違うのでしょうか? (^_^;) http://www.linet.gr.jp/ML/plamo/200404/msg00059.htmlで既出ですが,ちょっと違う? -- [[加藤泰文]] SIZE(10){2004-04-23 (金) 11:08:09} -ウチのマシンは Plamo-3.1 のころから適宜手動でパッケージをアップデートしていたので、いつの間にか /usr/include/db.h がシンボリックリンクで /usr/include/db3/db.h を指していて、db-4.0.14 なヘッダーファイルは存在していませんでした。/usr/lib/libdb4.so とかは存在するので、なぜこうなったのかはよく分からないのだけど(苦笑) -- [[kojima]] SIZE(10){2004-04-23 (金) 16:46:30} -昨日の昼過ぎに bogofilter を設置してから、今までに届いた spam が120通くらいなので、400通と数字があわないなぁ、、と思って調べたら、spamを溜めだしてから、一度 +trash にあった spam を +Spam なフォルダに移したことを思い出しました。だから、1 ヶ月で6000通ということはなくて、一日100通くらいみたい。まぁ、それでも十分多い気はするが、、、(涙) -- [[kojima]] SIZE(10){2004-04-23 (金) 16:51:23} #comment
テキスト整形のルールを表示する