Hacking mozilla
戻る

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


(74) 現状の問題点 by junnno' at 2005/01/31 08:37:30 レス投稿

トイザらス。
ドラえもん。
ぁゃιぃ。

こういうのを辞書なしで分析できるような構文解析方法はどう考えてもないよなあ。
もし出来れば論文の一つや二つは作れそうな勢い。



(64) バージョン情報 by junnno' at 2005/01/26 16:52:47 レス投稿

バージョン情報、日付がmail.dllで決まるというのは嘘でした……。
バージョン情報ダイアログで出る日付のは普通にthunderbird.exeのビルド日時のようです。

単にHTMLを書くときに日付を間違えていた説が有力。

(67) Re: バージョン情報 by きよ at 2005/01/26 17:02:21 レス投稿

> バージョン情報ダイアログで出る日付のは普通にthunderbird.exeのビルド日時のようです。

へぇ〜 なるほど。
nightlyを追いかけていたときは気付きませんでした。



(66) ジャンクフィルタの教育と確認 by きよ at 2005/01/26 16:58:06 レス投稿

オリジナルとjunnno'版のThunderbirdの切り替えは以下の方法
1.Mozilla Thunderbird_junnno
2.Mozilla Thunderbird_original
二つのフォルダのうち使用状態にしたい方を「Mozilla Thunderbird」に変えてメニューから起動する。
(拡張機能は全く同じ状態にしてある)

「一日以内」という名前で検索フォルダに7日以内に受信した非ジャンクメールを表示させてある。
「_Junk sample」という名前のフォルダにジャンクメールを保管してある。


非ジャンクの教育と確認は
「一日以内」フォルダから迷惑メールフィルタを実行し、迷惑メールフォルダに振り分けられたメールに対して「shift+j」押下で非ジャンクとして教育する。

ジャンクの教育と確認は
「_Junk sample」フォルダから迷惑メールフィルタを実行し、迷惑メールフォルダに振り分けられずに残ったメールに対して「j」押下でジャンクとして教育する。迷惑メールフォルダの全てのメールを削除してゴミ箱へ移動させ、以降はゴミ箱が空っぽになるまで繰り返す。

オリジナルtraining.dat
Number of good messages: 607
Number of bad messages: 435
Number of good tokens: 25169
Number of bad tokens: 14387


training.2.dat
Number of good messages: 19
Number of bad messages: 521
Number of good tokens: 1174
Number of bad tokens: 11307

Number of good messages: 4102
Number of bad messages: 217
Number of good tokens: 87842
Number of bad tokens: 2236

これ、今日の結果ですがおかしいですね。開始時点が違うのかな。
時間をみつけてゼロからやってみます。



(61) (無題) by きよ at 2005/01/26 02:29:24 レス投稿

ヘッダについては残しておいた方が良かったのが有るのかも知れません。
なぜかと言うと、本文のないメールもジャンク扱いさせていたんですが、junnno'版ではジャンクと決めつけることが出来なくなったから。(手動で設定しても次回は必ず非ジャンクとなる)これはトークン数が一定数を超えてからの現象かも知れませんが。
# 本文のないメールはジャンク判定以前の問題として削除しても構わないんですが(本文がないこと自体Thunderbirdのバグなのかも)


受信時と手動時の動作については
やはり、どこか違うような感じがあります。手動ではジャンクと認識出来るメールも受信させると非ジャンクになる場合があります。
mailnews.ui.junk.firstuse の設定のせいかも。どういう訳かjunnno'版では"false"がデフォルトになっています。この状態ではメッセージフィルタが先に走行します。
ここのところの確認は「メーラーdeネットニュース」というソフトを使えば出来ると思いますし、時間が出来たら試します。


ほかにも有りますが、(時間の関係で現象の説明が出来ないので)今はここまで。
ジャンクメールは後で試すために削除せずに別フォルダに保管するようにしました。

とりあえず、作り直した直後ですが以下の状態です。

Number of good messages: 1
Number of bad messages: 518
Number of good tokens: 77
Number of bad tokens: 11299
Number of good messages: 4102
Number of bad messages: 213
Number of good tokens: 87842
Number of bad tokens: 1962
Creating master table...
Updating view...
done.
これは上半分が英語、下半分が日本語ですよね?


# 結果の training.2.dat を提出しても良いかなと考えたんですが、中身を見ると私自身のプライベートや仕事関連の情報が多すぎて困ります。(例えばせっかく暗号化された情報やパスワードまで記録されている)

この先、重ならない4文字熟語を大量に入れて試すとか、、、時間を作ってやってみようかな

(62) Re: (無題) by junnno' at 2005/01/26 04:02:04 レス投稿

> ヘッダについては残しておいた方が良かったのが有るのかも知れません。
> なぜかと言うと、本文のないメールもジャンク扱いさせていたんですが、junnno'版ではジャンクと決めつけることが出来なくなったから。(手動で設定しても次回は必ず非ジャンクとなる)これはトークン数が一定数を超えてからの現象かも知れませんが。

従来は、メールに固有のIDを登録していたために、一度学習したメールの成功率が引き上げられていたのだと思います。
再帰テストの成績は下がるかもしれませんが、予測フィルタの動作としては正しいのではないかと思います。

> # 本文のないメールはジャンク判定以前の問題として削除しても構わないんですが(本文がないこと自体Thunderbirdのバグなのかも)

関係ないことを思い出しました。
本文が空で添付ファイルがWORD形式で一つ、
というとんでもないメールを送る偉い人がいました。
(さらにTo:には100人分ぐらいのメールアドレスが)


> mailnews.ui.junk.firstuse の設定のせいかも。どういう訳かjunnno'版では"false"がデフォルトになっています。この状態ではメッセージフィルタが先に走行します。
> ここのところの確認は「メーラーdeネットニュース」というソフトを使えば出来ると思いますし、時間が出来たら試します。

そんな設定があったのですね。
よろしくお願いします。

> Number of good messages: 1
> Number of bad messages: 518
> Number of good tokens: 77
> Number of bad tokens: 11299
> Number of good messages: 4102
> Number of bad messages: 213
> Number of good tokens: 87842
> Number of bad tokens: 1962
> Creating master table...
> Updating view...
> done.
> これは上半分が英語、下半分が日本語ですよね?

そうです。
学習数が多いですが、動作が遅くなりませんか?

> # 結果の training.2.dat を提出しても良いかなと考えたんですが、中身を見ると私自身のプライベートや仕事関連の情報が多すぎて困ります。(例えばせっかく暗号化された情報やパスワードまで記録されている)

一方向関数でハッシュ化すればデータの共有ができるかも。
役に立つかどうかはともかく…。

(65) Re: (無題) by きよ at 2005/01/26 16:52:54 レス投稿

> 従来は、メールに固有のIDを登録していたために、一度学習したメールの成功率が引き上げられていたのだと思います。
> 再帰テストの成績は下がるかもしれませんが、予測フィルタの動作としては正しいのではないかと思います。
そうですね。ただThunderbirdにはアドレス設定によるジャンク特定の機能がないのでジャンクと決めつけることが出来ないのが残念です。


> そんな設定があったのですね。
> よろしくお願いします。
メーラーdeネットニュース は継続して使う気がなかったので期限切れになっていました (^^;)

mailnews.ui.junk.firstuse は上に書いたようなメッセージフィルターにてアドレスでのジャンク特定に使えます。最初はこの機能を使っていました。


> 学習数が多いですが、動作が遅くなりませんか?
遅いですよ。Eudoraはもっと時間がかかります。

> > # 結果の training.2.dat を提出しても良いかなと考えたんですが、中身を見ると私自身のプライベートや仕事関連の情報が多すぎて困ります。(例えばせっかく暗号化された情報やパスワードまで記録されている)
>
> 一方向関数でハッシュ化すればデータの共有ができるかも。
> 役に立つかどうかはともかく…。
人間は読めないってことですね。
ジャンクフィルタデータベースとして流通させるならばサニタイズするツールが有れば良いのかも。



(63) Thunderbird by junnno' at 2005/01/26 10:42:32 レス投稿

ビルドガイドにアップした手順ではThunderbirdしかビルドできないことが判明。
comdef.hが曲者。
ヘッダファイルだけあってライブラリがないとはどういうことだ。



(60) 新規受信時の動作 by junnno' at 2005/01/25 01:13:16 レス投稿

新規受信時に自動的に実行される場合と、メニューから手動で実行する場合とで、ジャンクフィルタの動作が違う気がする。
自動だといくつか偽陰性が残る。
その後に手動で実行すると殆ど偽陰性がなくなる。
前からそうだったかなあ。


ヘッダからreferenceを消すのを忘れてた。



(48) フリーMSVCビルド by junnno' at 2005/01/24 10:35:00 レス投稿

ネット上にあるリソースだけでmsvcビルドに成功。
ひゃっほう。



(47) フィルタ by junnno' at 2005/01/23 04:26:17 レス投稿

自分で完璧に非ジャンクとして分類したはずの所から、
ベイジアンフィルタがさらに真のジャンクを発見する場合がある。
人間より精度がいいかも。
いや、単に人間の精度が悪いのか。




(42) 言語別カウンタ by とおりすがり at 2005/01/22 06:25:57 レス投稿

言語別にカウンタを分けるんじゃなくて、
別のトークンと思えばいいんじゃないんでしょうか?
日本語メールなら、ja_JP:というプレフィックスをつけるとか。

(43) Re: 言語別カウンタ by junnno' at 2005/01/22 06:48:22 レス投稿

> 言語別にカウンタを分けるんじゃなくて、
> 別のトークンと思えばいいんじゃないんでしょうか?
> 日本語メールなら、ja_JP:というプレフィックスをつけるとか。

現在のパッチでは、別のトークンとして認識させています。
具体的には、JA:というプレフィックスを付けています。

問題は、確率計算にこれまでに学習したメールの数を使うところにあります。
通常、トークンの数は学習メールの数に比例すると考えられます。
ですが、英語メールの学習は、日本語のトークンを増やさずに学習メール数だけを増やすことになります。
結果として、日本語トークンのジャンク確率の希釈が起こり、陰性になってしまいます。

で、結局次の式の分母を大きくしてしまうようです。

 (spamcount×ngood)
---------------------------------------
 (hamcount×nbad + spamcount×ngood)

ここで、
spamcountがジャンクとして学習したメールの数、
hamcountが非ジャンクとして学習したメールの数、
nbadがジャンク中に出現した回数、
ngoodが非ジャンク中に出現した回数。


あ。

ということは、別に辞書は分けなくても、言語毎にメールの数だけ数えていればいいのか……。

(45) Re: 言語別カウンタ by junnno' at 2005/01/22 06:55:27 レス投稿

間違えた。
正しくは、

 (spamcount×ngood)
---------------------------------------
 (hamcount×nbad + spamcount×ngood)

spamcountがジャンク中に出現した回数、
hamcountが非ジャンク中に出現した回数、
nbadがジャンクとして学習したメールの数、
ngoodが非ジャンクとして学習したメールの数。



(44) 時計 by junnno' at 2005/01/22 06:51:03 レス投稿

この掲示板の記録時刻はUTCです。




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