ベイジアンフィルタを利用し、文章を分類する為の汎用のライブラリです。ス パム用のフィルタとして使われる事を想定しておりますが、スパムか、そうで ないか、と云った二択ではなく、文章を数種類から数十種類のタイプに分類す る事が出来ます。POPFileを御存知の方は、POPFileの『バケツ』と同じ概念で あると考えて下さい。
navi2ch-unifile.el
Unifileの中心部です。C++で書かれています。
libunifileをEmacs Lispから取り扱う為のファイルです。Emacs LispではC++ は元より、Cのライブラリも呼ぶ事は出来ませんから、代わりにサブプロセス を立ち上げてパイプで通信します。
2chブラウザのnavi2ch上で動作するスパムフィルタです。
アーカイブはこちらです。
% tla register-archive http://ccm.sherry.jp/arch/pho@cielonegro.org--2005
% tla get pho@cielonegro.org--2005/unifile--mainline--0.1 unifile
このアーカイブは次のOpenPGP公開鍵で署名しています。
ID = 1024D/1A86EF72
指紋 = 5F3E 5B5F 535C CE27 8254 4D1A 14E7 9CA7 1A86 EF72
http://ccm.sherry.jp/pgp-pubkey.html
% ./configure
% make
% make install
但しnavi2ch-unifile.elをインストールする場合は、
% ./configure --enable-navi2ch-spamfilterとして下さい。
APIドキュメントは未だ有りません。 src/main.cpp, libunifile/interpreter.[hc]pp, libunifile/engine.hpp辺り を読んで下さい。
ドキュメントは未だ有りません。各関数のdocstringや、navi2ch-unifile.el を読んで下さい。
まず ~/.navi2ch/init に次のように書いて下さい。
(require 'navi2ch-unifile)次に適当なスレを開いて、スパムを d で隠し、スパムでないレスは表示した 状態で M-x navi2ch-unifile-register-to-corpus を実行します。これでコー パスに単語が溜まりますので、ある程度溜まったら ~/.navi2ch/init に
(navi2ch-unifile-enable)と追記します。するとスレを開いた時に自動的にフィルタリングされ、スパム と判定されたレスが隠れます。以後、レスを隠すと、そのレスはスパムに分類 され、隠れているレスを再表示させると、そのレスは非スパムに分類されます。
注意: スパムと非スパムの双方に少なくとも1つの単語が無ければ、
(navi2ch-unifile-enable)
しても自動分類は行われません。
また、articleモードには次のキーマップが追加されます。
パブリックドメインです。 商用、非商用を問わず、あらゆる変更や再利用に際し、制限がありません。 作者に連絡する必要も無く、元の作者名を表記する必要もありません。 詳しくは以下のページを御覧下さい。
http://creativecommons.org/licenses/publicdomain/
libunifile のエンジン部は、 POPFile の Classifier::Bayes を大変参考に して書きました。
http://popfile.sourceforge.net/
navi2ch-unifile.el は、 navi2ch-spamfilter.el を参考にして書きました。