Hacking mozilla
戻る

新規投稿 日付順表示 ツリー順表示 [スレッド順表示]


(41) Use bayesian filters for other features than spam by junnno' at 2005/01/22 05:59:20 レス投稿

あった。

https://bugzilla.mozilla.org/show_bug.cgi?id=181866



(39) scrap by junnno' at 2005/01/22 04:31:16 レス投稿

なんて分かり易い例えだろうか。

http://www.messagen.ne.jp/lab/gnupg/gnupg.html
山のわき水を誰もが自由に採取できても,それを製品として売るビジネスが成り立つ



(37) できたらいいな by junnno' at 2005/01/21 19:16:05 レス投稿

たぶんもう何処かで誰かが考えているだろうけど、

1. ユーザによるサブフォルダへのメールの移動を監視する。
2. 移動が行われる度にメールの内容と移動先を学習する。
3. 学習に基づいて新規受信メールを各フォルダに自動分配する。

というようなことができたらいいなあ。

POPFileは試しに使う気も起きないほど面倒だし。



(28) 複雑怪奇 by junnno' at 2005/01/19 16:55:13 レス投稿

複雑怪奇だー。

nsIJunkMailPlugin::classfyMessage()
 nsBayesianFilter::ClassifyMessage()
  nsBayesianFilter::tokenizeMessage
   msgService->StreamMessage

TokenStreamListener::OnStartRequest
TokenStreamListener::ProcessHeaders
 mTokenizer.tokenizeHeaders
TokenStreamListener::HandleAttachment
 mTokenizer.tokenizeAttachment
TokenStreamListener::OnDataAvailable
 mTokenizer.tokenize
TokenStreamListener::OnStopRequest
 mTokenizer.tokenize
 mAnalyzer->analyzeTokens(mTokenizer)



(26) 太陽風 by junnno' at 2005/01/19 10:47:11 レス投稿

http://www2.nict.go.jp/dk/c231/shino/swnews/swnews.html

特大太陽フレアで観測機が正常動作しないぐらいに太陽風がきてるらしい。



(25) 構文解析 by junnno' at 2005/01/19 05:14:48 レス投稿

さらにブレインストーミング。

構文解析の前提は文章が文法的に正しく書かれている、ということなので、そうではない文章では良く適用できない可能性があります。

形態素に正しく分解できたとして、それがベイジアンフィルタにとって良いかどうかも未知数です。ポイントは、どれだけ良い特徴ベクトルを抽出するか。

バイグラム、トリグラムはバランス的に考えていいのかもなあ。実際に実用の適用例があるぐらいだし。にわかに考えつくことぐらいは、どこかで既に考えられているのだろうし。



(23) ビルドできない by junnno' at 2005/01/19 04:23:12 レス投稿

とりあえず日本語トークンパッチが組み込まれたので、以降は最新のツリーで作業しようとおもってツリーを引っ張ってきたらビルドに失敗した。うーん、gccだから駄目なのか。

そもそもVC++6がまだサポートされているのかも分からない。時代は.NETコンパイラにいっているのかも。



(11) spamdump.xpi について by きよ at 2005/01/17 18:49:10 レス投稿

日本語トークンの話、面白いです。サンプル数が1万を超えれば英語と混ざっても抜群の効果はあると思います、現状でも日本語スパムの認識率は意外と高いのですから。

spamdump.xpi ですが、12MBほどの training.dat では「Load」ボタンを押しても表示されません。メモリー制限でも有るんでしょうか。
2MBほどの training.dat では同じようにスクリプトがどうのこうのと警告ダイアログが出ますが、これはキャンセルを押し続ければ表示されます。
training.dat は20MBを超えるので、表示出来るようになれば嬉しいのですが。

(12) Re: spamdump.xpi について by junnno' at 2005/01/18 03:51:55 レス投稿

> 日本語トークンの話、面白いです。サンプル数が1万を超えれば英語と混ざっても抜群の効果はあると思います、現状でも日本語スパムの認識率は意外と高いのですから。

日本語と英語のバランスが悪いときに、お互いに確率を「希釈」してしまうのは確実のようです。今時点の実験から見ると、英語メールと日本語メールを分離して認識すれば95%ぐらいまではいけると思っています。

spamdump.xpiは、Javascriptの制限により、トークン数が多くなると止まります。まともに使えるのは大体10万トークンぐらいまでのようです。

(19) Re: spamdump.xpi について by きよ at 2005/01/18 16:04:07 レス投稿

> 日本語と英語のバランスが悪いときに、お互いに確率を「希釈」してしまうのは確実のようです。今時点の実験から見ると、英語メールと日本語メールを分離して認識すれば95%ぐらいまではいけると思っています。
そんなもんなんですか? 日本語のメールに英単語が混ざっているようなメールならそういうことも有るかも知れませんが、(Eudoraのベイジアン・フィルタと同じなら)「1本のメールに現れる頻度」のはずだから、希釈されているという感じではなさそうですが。

ThunderbirdはEudoraと違って明示的にスパムは「J」非スパムは「Shift + J」にて学習させなければ自動的にはデータベースに新しいトークン(一部かも)を追加しないのですね。
かなり細かく学習させているので実行速度は犠牲になっていますが、後で見直さなくてもすむ程度の振り分けをやってくれています。

> spamdump.xpiは、Javascriptの制限により、トークン数が多くなると止まります。まともに使えるのは大体10万トークンぐらいまでのようです。
Javascriptに そんな制限が有ったんですか。うちは途中で止まって Bad のトークン数は見えませんが以下の数値です。
Number of good messages: 21007
Number of bad messages: 19319
Number of good tokens: 364310

これはEudoraのベイジアン・フィルタによって正しくスパム扱いされたメールと保存してある非スパムメールで学習させた結果ですが、一昨日作り直したので小さくなってしまいました。

(20) Re: spamdump.xpi について by junnno' at 2005/01/18 16:19:49 レス投稿

> そんなもんなんですか? 日本語のメールに英単語が混ざっているようなメールならそういうことも有るかも知れませんが、(Eudoraのベイジアン・フィルタと同じなら)「1本のメールに現れる頻度」のはずだから、希釈されているという感じではなさそうですが。

そうなのかも……。
実は確率計算の詳しいところはよく理解していないのです。
もしかすると、ヘッダの分析で躓いている?

Thunderbirdは判別したメールで再帰的に学習することはないようです。
これやりすぎると、途中でご主人様の趣味が変わったときにフォローできなくなる様な気がします。
リセットすれば良いのでしょうけどね。

Thunderbirdであんなに学習に時間がかかるのはなんででしょうねー。
ハッシュテーブルからの検索はほぼ一瞬みたいですけど。

(22) Re: spamdump.xpi について by きよ at 2005/01/18 19:01:07 レス投稿

> > そんなもんなんですか? 日本語のメールに英単語が混ざっているようなメールならそういうことも有るかも知れませんが、(Eudoraのベイジアン・フィルタと同じなら)「1本のメールに現れる頻度」のはずだから、希釈されているという感じではなさそうですが。
>
> そうなのかも……。
> 実は確率計算の詳しいところはよく理解していないのです。
私も数学は嫌いです。
なんか、いろんなところを見てみると難しそうな計算式で表現してありますが、スパムでの出現回数と非スパムでの出現回数をトークン毎に登録しておき、その差をポイント制にして発見されたトークンのポイントを合計して、ユーザーが指定した閾値で決めているっていう感じなんでしょうね (^^;)
(Thunderbirdでは閾値は90に設定されていますね)

> もしかすると、ヘッダの分析で躓いている?
でも英語のトークンを見てもヘッダからの情報はまともな物じゃないですしね。
私はSubject:ヘッダの分析は期待していません。偽装レベルの高いスパムのヘッダは「Re:」だけとかブランクや「口が堅い人ですよね?秘密厳守でお願いしたいのですが…。」とか(^^;)、規則性を取っても面倒なものばかりです。
ここも、Eudoraのベイジアン・フィルタではヘッダにはヘッダ専用の正規表現のフィルタ定義が用意されています。(私は追加設定していませんが)


> Thunderbirdは判別したメールで再帰的に学習することはないようです。
> これやりすぎると、途中でご主人様の趣味が変わったときにフォローできなくなる様な気がします。
> リセットすれば良いのでしょうけどね。
そうですね、そのためにThunderbirdにはリセットを用意してあるんだと思います。
Eudoraのベイジアン・フィルタにはリセットが有りません。たぶん趣味が変わると出現頻度の数値が逆転するのでしょう。
データベースは膨れ上がるままで、30MBを超えることも有ります。スパムから非スパムへの突然の変更は自動的な非スパムのアドレス登録で対処します。(Thunderbirdは自動ではアドレス登録しませんね)

> Thunderbirdであんなに学習に時間がかかるのはなんででしょうねー。
> ハッシュテーブルからの検索はほぼ一瞬みたいですけど。
結果を書き込むところでは直接ファイルに書いているから遅いんでしょうね。読み込みは単語のグループ毎にメモリーにインデックスを展開しているとか工夫されていると思うのですが...
Eudoraはテキストファイルなので もっと時間がかかります。(検索も遅い)


現状のままでもEudoraよりも Thunderbirdのベイジアン・フィルタが優れているのは、日本語がutf-8なので「トークンとして認識した文字列はそのままデータベースに保存され利用される」という点でしょう。
Eudoraのベイジアン・フィルタは日本語のトークンは一切登録&利用されません。(無理やり登録しましたが効果無しでした)

ちょっと長くなりますが、
以下は training.dat の中身を スパムに典型的な「エッチ」という言葉と、仕事やメーリングリストで流れてくる「データ」という言葉で検索して出てきた全てです。

”エッチ”で検索した場合
エッチビデオ
エッチング <---------これだけはスパムではないですね
エッチフレンド
エッチトーク
エッチメール
エッチテープ
チャットエッチ
エッチ・・・
カーエッチ
エッチー
[tab]エッチ <--------- [tab]も日本語?
エッチポーズ

”データ”で検索した場合(スパムからの登録は全くなし)
フォームデータ
データバックアップ
バイナリーデータ
ログデータ
データセンタ
データベース・テーブル
データ・ウエアハウス
データベー
オンライン・リアルタイム・データベース
データベースアクセス
データベースアーキテクト
・コンピュータデータソース
データベースマネージメントシステム
・データアクセス
データファイル
レコードデータ
オープンソースデータベースサーバー
データベースデータベース
データベース・クラスター
リテラルデータ
ネットワークアドレスデータ
メッセージデータ

たったこれだけの長さのカタカナ文字列に頻度パラメータが設定されているだけでも かなりのフィルタ効果は出ていると思うのです。この上 漢字仮名混じりの熟語や例文をトークンにした場合のベイジアン・フィルタっていうのは最強だと思います。

おそらく、熟語や例文だけを予め登録しておいて トークンとして扱える「切れ目」だけの考慮のロジックを入れておくだけで日本語のベイジアン・フィルタとしては他にないほどの品質を出せるのではないでしょうか。
# たとえトークンを新たに追加する機能がなくても、です


先の投稿に書くのを忘れたんですが、junnnoさんのexeセットを試させていただきました。しかし、最初の起動時にエラーダイアログが出たり 私にとって重要なextension(Enigmailなど)がなぜか使えなくなったので、少しの間 試しただけで利用を断念してしまったのです。

長くなってすみませんでした。



(21) ジャンクの数 by junnno' at 2005/01/18 16:24:19 レス投稿

私は日あたり大体、

 50通の英語スパム、
 50通のウィルス、
 2,3通の日本語スパム、
 10通のメールマガジン、
 0.1通ぐらいの個人的なメールを受け取ってます。

S/Nでいうと0.1ぐらい?
メールマガジンを除くと0.001ぐらい?
まだましな方。



(18) 確率分布計算 by junnno' at 2005/01/18 05:32:12 レス投稿

少なくともThunderbird 1.0ではトークンごとの確率分布計算をやっているみたい。
不完全ガンマ関数がどうのこうのと書いてある。
理解できない、フォローできないけど。

http://www.idsia.ch/~marcus/ai/smimiss.pdf




次の10件を表示
削除ID パスワード
BBS mozilla, which is administered by junnno