第09回まっちゃ445勉強会資料

無事帰宅しました。
講師のみなさん、おつかれさまでした。たくさんのお話が聞けて刺激を受けました。最後はちょっとばたばたとしてしまいましたが、大変いい機会をいただいて、楽しめました。ぜひ定期的に集まりたいですね!
スタッフのみなさんも、タイトなスケジュールの中でいろいろと調整をいただき、ありがとうございました。
参加者のみなさんもご清聴ありがとうございました。自己紹介の雰囲気では、メールサーバの管理をされている方が多く、クライアント系の POPFile の話がどれだけ参考になったかはわかりませんが、何か役に立つことがあれば幸いです。
とりあえず資料あげておきます(OOo Impress 版PDF 版)。もう少しネタをしぼるべきだったかなと反省です。

質問や要望いただいたことメモ

  • 初期に既存のメールを用いて学習させるツール

標準では、「insert.pl」というユーティリティ・スクリプトが用意されていて、機械的に学習させることができます。ですが、このツールは「とにかく学習させる」だけなので、コーパスの肥大化を招いたり、学習させるメールの量によってはアンバランスな状態になってしまう可能性があります。また、Perlスクリプトが用意されているだけなので、誰にでも使えるというものではありません。
一方、サードパーティ(といっても、これを書いた Joseph は POPFile Core Team のメンバーですが)のスクリプトには、「xmltraintest.py」というものがあり、KakasiMeCab、内蔵パーサの分類精度比較はこのスクリプトを若干改造したものを用いて行いました。このスクリプトは非常に便利なのですが、こちらは Python で書かれており、標準のスクリプトよりも敷居が高い感じです。
もっと簡単に使えるように……ということで、考えてみます。とりあえず、xmltraintest.py と同じように、XMLRPC インターフェースを使う方向でしょうか。

  • ある程度学習済みのコーパス(分類ごとの単語のデータベース)を提供する

これは私が使っているものを少し整理すれば簡単に実現できそうですが、考えてみると、このコーパスで「非スパム」に分類されている単語を大量にメールに含めたメールを送られたりすると、見逃しが起こる可能性が出てきてしまいます。日本語スパムの状況を見る限りでは、そこまで手をかけたことをしてくるとは思えませんが、若干気になるところではあります。
コーパスの内容は関係なく、)一般的な単語の羅列を本文に含めるという手法は、Word Salad というテクニックとして知られていますが、POPFile では、個々のコーパスの内容は異なるため、あまり意味をなしません。ですが、共通で使われているコーパスがあれば、この手法はより有効に働くことになります。
とはいえ、初期状態では上記のような危険性はあっても、学習を続けていくことでその影響は小さくなっていくはずですから、導入の敷居を下げるという意味では有効かもしれません。