Unifile

Indexへ戻る

Unifileとは

ベイジアンフィルタを利用し、文章を分類する為の汎用のライブラリです。ス パム用のフィルタとして使われる事を想定しておりますが、スパムか、そうで ないか、と云った二択ではなく、文章を数種類から数十種類のタイプに分類す る事が出来ます。POPFileを御存知の方は、POPFileの『バケツ』と同じ概念で あると考えて下さい。

スクリーンショット

navi2ch-unifile.el
screenshot of the navi2ch-unifile

構成

libunifile

Unifileの中心部です。C++で書かれています。

unifile.el

libunifileをEmacs Lispから取り扱う為のファイルです。Emacs LispではC++ は元より、Cのライブラリも呼ぶ事は出来ませんから、代わりにサブプロセス を立ち上げてパイプで通信します。

navi2ch-unifile.el

2chブラウザのnavi2ch上で動作するスパムフィルタです。

ダウンロード

アーカイブ

アーカイブはこちらです。

Arch レポジトリ

% 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
として下さい。

使い方

libunifile

APIドキュメントは未だ有りません。 src/main.cpp, libunifile/interpreter.[hc]pp, libunifile/engine.hpp辺り を読んで下さい。

unifile.el

ドキュメントは未だ有りません。各関数のdocstringや、navi2ch-unifile.el を読んで下さい。

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モードには次のキーマップが追加されます。

C-c C-g
現在のレスをgoodに分類します。
C-c C-b
現在のレスをbadに分類します。
C-c C-s
現在のレスの分類について詳細な情報を表示します。

ライセンス

パブリックドメインです。 商用、非商用を問わず、あらゆる変更や再利用に際し、制限がありません。 作者に連絡する必要も無く、元の作者名を表記する必要もありません。 詳しくは以下のページを御覧下さい。

http://creativecommons.org/licenses/publicdomain/

参考

POPFile

libunifile のエンジン部は、 POPFile の Classifier::Bayes を大変参考に して書きました。

http://popfile.sourceforge.net/

navi2ch-spamfilter.el

navi2ch-unifile.el は、 navi2ch-spamfilter.el を参考にして書きました。

http://navi2ch.sourceforge.net/