Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
Communications
>
Email
>
Filters
>
bsfilter
>
Forums
>
users
>
Windows上で日本語メールを処理させるには?
bsfilter
Description
Project Summary
Developer Dashboard
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
CVS
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
FrontPage
Title index
Recent changes
Communication
List of Forums
users (627)
Forums:
users
(Thread #7849)
Return to Thread list
RSS
Windows上で日本語メールを処理させるには? (2005-06-11 17:13 by
Anonymous
#14630)
Reply
Create ticket
はじめまして、水口と申します。 bsfilterには大変お世話になっています。
快調なのですが、もう少し快適にならないかと思い質問をさせて頂くことにしました。
WindowsXP + Meadow2.10 + Mew4.2 の環境で、Windowsバイナリ版の bsfilterw をローカルpopモードで使用していますが、気になるのは「始めてのパターンのSpamメールの識別率」が、日本語のメールが英語のものより低いことです。
直接の原因は jtokenizer がデフォルトの bigram になっている為で、他のアルゴリズムにすれば解決すると予想していますが、これはWindowsバイナリ版にもあてはまるでしょうか? あるいは、ruby 版に変えた方が良いのでしょうか?
まずは以前使用した経験のある kakasi を試してみました。 kakasi-2.3.4 の Windows版バイナリとソースのCygwin環境でのコンパイルと両方試してみましたが、うまく行きません。 例えばkakasiのWinバイナリをインストールして bsfilterw.exe を jtokenizer kakasi のモードで起動しようとしても、以下の内容の例外ダイアログが出て起動できません。
No such file to load -- kakasi
bsfilter:2813:in `require'
bsfilter:2813:in `get_options'
bsfilter:2918:in `setup'
bsfilter:3065
このとき、kakasi.dll は PATHで見えるところには置いています。(特に根拠の無い当てずっぽうです)
一方、使用するPCは Cygwin環境をフルインストールしている WindowsXP なので、ruby版の bsfilter も基本的には動きます。 しかし試そうとしたら、bsfilter以前に Ruby/kakasi のコンパイルでつまづいてしまいました。
という訳なので、まずは使用する bsfilter としては Windows版バイナリと ruby版のどちらが得策かのあたりから、アドバイスをお願いできますでしょうか?
Reply to #14630
×
Subject
Body
Reply To Message #14630 > はじめまして、水口と申します。 bsfilterには大変お世話になっています。 > > 快調なのですが、もう少し快適にならないかと思い質問をさせて頂くことにしました。 > > > WindowsXP + Meadow2.10 + Mew4.2 の環境で、Windowsバイナリ版の bsfilterw をローカルpopモードで使用していますが、気になるのは「始めてのパターンのSpamメールの識別率」が、日本語のメールが英語のものより低いことです。 > > 直接の原因は jtokenizer がデフォルトの bigram になっている為で、他のアルゴリズムにすれば解決すると予想していますが、これはWindowsバイナリ版にもあてはまるでしょうか? あるいは、ruby 版に変えた方が良いのでしょうか? > > > まずは以前使用した経験のある kakasi を試してみました。 kakasi-2.3.4 の Windows版バイナリとソースのCygwin環境でのコンパイルと両方試してみましたが、うまく行きません。 例えばkakasiのWinバイナリをインストールして bsfilterw.exe を jtokenizer kakasi のモードで起動しようとしても、以下の内容の例外ダイアログが出て起動できません。 > > No such file to load -- kakasi > > bsfilter:2813:in `require' > bsfilter:2813:in `get_options' > bsfilter:2918:in `setup' > bsfilter:3065 > > このとき、kakasi.dll は PATHで見えるところには置いています。(特に根拠の無い当てずっぽうです) > > > 一方、使用するPCは Cygwin環境をフルインストールしている WindowsXP なので、ruby版の bsfilter も基本的には動きます。 しかし試そうとしたら、bsfilter以前に Ruby/kakasi のコンパイルでつまづいてしまいました。 > > > という訳なので、まずは使用する bsfilter としては Windows版バイナリと ruby版のどちらが得策かのあたりから、アドバイスをお願いできますでしょうか?
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Windows上で日本語メールを処理させるには? (2005-06-11 19:56 by
nabeken
#14631)
Reply
Create ticket
1.
win32用のRuby/kakasiはインストールされてますでしょうか。コンパイル済みバイナリを見つけられなかったので、動作するのかは試せてません。
2.
cygwinで、
kakasi本体は configure & make & make install
Ruby/KAKASIは ruby extconf.rb & make & make install
で普通に呼び出せることを確認しました。
3.
初めてのパターンのspamの認識率が悪いという問題にについては、私の直感ですが、tokenizerを変更しても改善しないと思います。
spam/hamの判定ではないのですが
http://nabeken.tdiary.net/20041214.html
という話もあります。
誤認識したメールに対して、
bsfilter.exe -d ...
を実行し、単語ごとのspam確率を表示して(EUCで出ます)、過去の学習に問題ないか確認する
もしくは
少し時間を割いて、積極的にspamデータベースを拡充してみるのがいいのではないかと思います。
http://nabeken.tdiary.net/20040410.html
や、
spam込みで公開されているMLアーカイブが使用できるはずです。
http://www.jp.freebsd.org/ml.html#FreeBSD-users-jp
Reply to
#14630
Reply to #14631
×
Subject
Body
Reply To Message #14631 > 1. > win32用のRuby/kakasiはインストールされてますでしょうか。コンパイル済みバイナリを見つけられなかったので、動作するのかは試せてません。 > > 2. > cygwinで、 > kakasi本体は configure & make & make install > Ruby/KAKASIは ruby extconf.rb & make & make install > で普通に呼び出せることを確認しました。 > > 3. > 初めてのパターンのspamの認識率が悪いという問題にについては、私の直感ですが、tokenizerを変更しても改善しないと思います。 > > spam/hamの判定ではないのですが > http://nabeken.tdiary.net/20041214.html > という話もあります。 > > 誤認識したメールに対して、 > bsfilter.exe -d ... > を実行し、単語ごとのspam確率を表示して(EUCで出ます)、過去の学習に問題ないか確認する > もしくは > 少し時間を割いて、積極的にspamデータベースを拡充してみるのがいいのではないかと思います。 > http://nabeken.tdiary.net/20040410.html > や、 > spam込みで公開されているMLアーカイブが使用できるはずです。 > http://www.jp.freebsd.org/ml.html#FreeBSD-users-jp
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Windows上で日本語メールを処理させるには? (2005-06-12 01:19 by
Anonymous
#14633)
Reply
Create ticket
水口です。 ありがとうございます。
教えて頂いた bsfilter.exe -d のおかげで、認識率が低い原因のひとつが判った様です。
保存していた Spamメールから X-Spam-Probability が不自然に低いものを選んで見てみたら、本文が SJIS でした。 (Meadow の自動判定は SJIS で、実際にも間違い無く SJIS でした)
このメールを bsfilter.exe -d (ファイル名) で見てみると、日本語文字が無い代りに不自然に短い ascii 文字の tokenizer が大量にありました。 (これは bsfilter 1.0.7 の結果です)
例えば I, E, u, i, ', p, t, v, A, B, I, I, V, h という 1文字の tokenizer です。 これらは、多分 SJIS 2バイト文字中の 第2バイトなんだと思います。
これと同じことは、popモードの bsfilterw.exe でも起っているんですよね? SJISと判定されるメッセージは SJISとして処理させる方法は無いんでしょうか?
これまでも popモードで判定された Spam-Probability が不自然に低い上に learn-spam しても再評価で spam と判定されないメッセージが時々あって気になっていましたが、SJIS だったのかも知れません。 これからは気をつけて観察しておきます。
一方、非Spamと誤判定される Spam の SJIS率はそんなに高くも無い気がします。
tokenizer 変更に成功しても認識率UP は疑問という点で多少がっかりしたことは否定できませんが、興味もあるので tokenizer 変更には引き続きトライしようと思います。
kakasi は現在てこずっている上に新聞種類判定にも bigram より成績が悪かったとのことなので、別のものにするかも知れません。
ところで、 Winバイナリの bsfilterw.exe は Ruby 不要ということなので、 Ruby/kakasi の有無は tokenizer kakasi の可否に無関係かと思ったのですが、私の勘違いだった訳ですね。
また、kakasi本体はご指摘のとおりの方法でインストールに成功しました。 Ruby/kakasiのWinバイナリが見付からないのも同じです。 ソースからコンパイルしようとすると、 Ruby/kakasi の make がエラーになるところが NABEYA さんと違うところです。 kakasi 本体を Winバイナリに差し替えてもやはり make ができません。 このところ、なぜか Cygwin binutils の最新版がダウンロードできないので、追及は後回しにしようかと思っています。 (Kakasi 本体をバイナリ版とソース版で交互に試したので、現象の整理からやり直す必要もあるのです)
Reply to
#14630
Reply to #14633
×
Subject
Body
Reply To Message #14633 > 水口です。 ありがとうございます。 > > 教えて頂いた bsfilter.exe -d のおかげで、認識率が低い原因のひとつが判った様です。 > > 保存していた Spamメールから X-Spam-Probability が不自然に低いものを選んで見てみたら、本文が SJIS でした。 (Meadow の自動判定は SJIS で、実際にも間違い無く SJIS でした) > > このメールを bsfilter.exe -d (ファイル名) で見てみると、日本語文字が無い代りに不自然に短い ascii 文字の tokenizer が大量にありました。 (これは bsfilter 1.0.7 の結果です) > 例えば I, E, u, i, ', p, t, v, A, B, I, I, V, h という 1文字の tokenizer です。 これらは、多分 SJIS 2バイト文字中の 第2バイトなんだと思います。 > > これと同じことは、popモードの bsfilterw.exe でも起っているんですよね? SJISと判定されるメッセージは SJISとして処理させる方法は無いんでしょうか? > > これまでも popモードで判定された Spam-Probability が不自然に低い上に learn-spam しても再評価で spam と判定されないメッセージが時々あって気になっていましたが、SJIS だったのかも知れません。 これからは気をつけて観察しておきます。 > > > > 一方、非Spamと誤判定される Spam の SJIS率はそんなに高くも無い気がします。 > > tokenizer 変更に成功しても認識率UP は疑問という点で多少がっかりしたことは否定できませんが、興味もあるので tokenizer 変更には引き続きトライしようと思います。 > > kakasi は現在てこずっている上に新聞種類判定にも bigram より成績が悪かったとのことなので、別のものにするかも知れません。 > > > ところで、 Winバイナリの bsfilterw.exe は Ruby 不要ということなので、 Ruby/kakasi の有無は tokenizer kakasi の可否に無関係かと思ったのですが、私の勘違いだった訳ですね。 > > また、kakasi本体はご指摘のとおりの方法でインストールに成功しました。 Ruby/kakasiのWinバイナリが見付からないのも同じです。 ソースからコンパイルしようとすると、 Ruby/kakasi の make がエラーになるところが NABEYA さんと違うところです。 kakasi 本体を Winバイナリに差し替えてもやはり make ができません。 このところ、なぜか Cygwin binutils の最新版がダウンロードできないので、追及は後回しにしようかと思っています。 (Kakasi 本体をバイナリ版とソース版で交互に試したので、現象の整理からやり直す必要もあるのです)
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Windows上で日本語メールを処理させるには? (2005-06-12 02:10 by
nabeken
#14635)
Reply
Create ticket
spamは、ISO-2022-JPと名乗りながら実際にはshift jisというのが多いので、ヘッダのcharset等は信用していません。nkfでの自動コード変換後にtokenizeしてます。基本的にはshift jisの規約違反のメールも正しくspam判定出来るはずです。ただ、日本語のメールか否かという判定はbsfilterでad hocにやっており、日本語と判断したもののみ、nkf、日本語tokenizerにかけています。unicodeの場合も日本語扱いです。
-d オプションにより、
lang ja char_ja
のように、どういう理由で何語と判断したか出ますので、それを教えて下さい。
lang C ...のように、日本語とは判断されていない表示が出る気がします。その場合は、実際のspamを見せてもらって検討したいと思います。
lang ja ...の場合はnkfの誤変換が考えられます。この場合の救済は難しいです。
bsfilter.exe, bsfilterw.exeはbsfilterからexerbで作ったバイナリですので、rubyインタープリタとbsfilterスクリプトが一緒になっているイメージです、おそらく。処理のアルゴリズムはどれも変りません。bsfilter.exeとbsfilterw.exeは、コンソールアプリか、windowsアプリ?かの違いだけです。
Reply to
#14633
Reply to #14635
×
Subject
Body
Reply To Message #14635 > spamは、ISO-2022-JPと名乗りながら実際にはshift jisというのが多いので、ヘッダのcharset等は信用していません。nkfでの自動コード変換後にtokenizeしてます。基本的にはshift jisの規約違反のメールも正しくspam判定出来るはずです。ただ、日本語のメールか否かという判定はbsfilterでad hocにやっており、日本語と判断したもののみ、nkf、日本語tokenizerにかけています。unicodeの場合も日本語扱いです。 > > -d オプションにより、 > lang ja char_ja > のように、どういう理由で何語と判断したか出ますので、それを教えて下さい。 > > lang C ...のように、日本語とは判断されていない表示が出る気がします。その場合は、実際のspamを見せてもらって検討したいと思います。 > > lang ja ...の場合はnkfの誤変換が考えられます。この場合の救済は難しいです。 > > bsfilter.exe, bsfilterw.exeはbsfilterからexerbで作ったバイナリですので、rubyインタープリタとbsfilterスクリプトが一緒になっているイメージです、おそらく。処理のアルゴリズムはどれも変りません。bsfilter.exeとbsfilterw.exeは、コンソールアプリか、windowsアプリ?かの違いだけです。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: Windows上で日本語メールを処理させるには? (2005-06-19 00:17 by
nabeken
#14778)
Reply
Create ticket
サンプルを送って頂いたところ、言語の判定に問題があることが分かりましたので、revision 1.70.2.*で調整します。
Reply to
#14635
Reply to #14778
×
Subject
Body
Reply To Message #14778 > サンプルを送って頂いたところ、言語の判定に問題があることが分かりましたので、revision 1.70.2.*で調整します。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel