AI メール to CSV

前回の記事では、NNConsole でメールを学習させるんは、メールを CSV に変換するというところまで書きました。

AI ことはじめ(スパムメール判定)



NNConsole  学習用 CSV

NNConsole が読み込む CSV は2種類です。データ CSV とデータセット CSV です。これらには、次のような条件があります。この条件は、他にもあるのですが、私が学習させてメールをCSVに変換した時の条件として書きます。

  • 1メールを 1CSV ファイルにする → これをデータ CSV と言います
  • 学習には数万のメールを使うので、CSV も数万ファイルになります
  • 数万のメールすべてが、Spam か正常メールかあらかじめわかっている必要があります。この判定は、私がコツコツコツコツコツコツコツコツと振り分けたものです
  • その数万ファイルの一覧を別な1つの CSV にする→データセット CSV と言います
  • データセット CSV1 つとデータ CSV 数万(数百でもいいのです)全体で1つのデータセットとして NNConsole に登録します
  • データ CSV は、すべて同じ行数、列数でなければなりません。私が今回作成したのは、1行x約100列のものです。
  • データ CSV の各列には、そのメールの属性を数値化していれます
  • NNConsoleの推奨数値は、-1.0~1.0 なので、メールの各属性をこの数値に変換することになります
  • データセット CSV は、数万行x2列のものです
  • データセット CSV の1列目は、データ CSV のパスです
  • データセット CSV の2列目は、そのデータ CSV の元となったメールが Spam か正常なメールかと言う2値(1または0)が入ります。

このデータセットの塊をどう作るかが AI 学習の要です。データセットさえできてしまえが、学習させる時間は、3分でした。いや、その前にニューラルネットワークを定義しなければならなかったです。このニューラルネットワークの定義と言うか設計は、素人にはかなり敷居が高いです。プロに聞いても、経験と勘が物を言うと言われるくらいです。

学習用 CSV の中身

データセット CSV の中身については、すでに上で説明しました。データ CSV の行/列数も説明しましたが、メールの属性がどう変換されて CSV に配置されているかと言うことについてはまだ説明していませんので、ここで簡単に説明します。簡単というのは、この中身が実は試行錯誤で苦労したノウハウであり、大っぴらにはできない部分なので、さわりだけ説明します。

メールの構造としては、ヘッダー、本文、添付ファイルの大きく3つに分けることができます。ヘッダーには、宛先、送信者、Subject、送信日付などが入っています。本文には、普通に文章が入っています。添付ファイルは、ファイル名とエンコードされたファイルの中身が入っています。これらの情報を数値化するのです。

例えば、「送信者のドメインは、jpか」と言ったことをデータCSVに落とすわけです。jpドメインであれば、1。それ以外であれば0と言った具合です。このように様々な観点でメールの中身を0~1に置き換えるのです。データCSVに落とした属性を一部ご紹介します。

  • 添付ファイルの有無
  • 添付ファイルが実行形式か
  • Subject は日本語か
  • 本文はあるか
  • 本文は日本語か
  • 本文は HTML か
  • 本文に URL が記述されているか

などなど、全部で100項目くらいをデータ CSV に落としています。例示はしましたが、他の項目については企業ノウハウなので、ここでは開示することはできません。悪しからず。

今回は、ここまでです。いかがでしたでしょうか。AI や 人口知能に興味はわいてきましたでしょうか。



 

AI ことはじめ(スパムメール判定)

ただいま2018年。ここ数年で世の中 AI ブームが起きています。ブームに乗らないわけにはいかないのでとりあえず乗ってみましょう。

SONY の Neural Network Console に乗っかる?

Python だの Chainer、TensorFlow だの敷居が高そうなものはたくさんあります。そんな中で、ふと目に入ったのがSONY の Neural Network Console(以後 NNConsole と書きます)です。コーディング不要でビジュアルにAIができるみたいなキャッチですっかりそれに傾倒しました。しかも無料とくれば試すしかありません。ただいま2018年ですが、これに乗っかたのは2017年8月からです。

NNConsole に乗っかって何する?

宝くじでも予想させるか、競馬の予想させるか。頭の中は煩悩でいっぱいですが、そこはぐっとこらえてスパムメールを AI で判定させてみみることに決定。たまに Loto だのBIG だのに寄り道しましたが、スパムメール判定に成功しました。そこまでの道のりをご紹介します。

スパムメールの学習はどうやってするのか

AIなんだから、メールをファイルに落として読み込ませりゃ学習してくれるんでしょ? と思ったあなた。それは甘いです。NNConsole が学習データとして受け入れてくれるのは、2つ。

  • CSVファイル
  • 画像ファイル

これだけです。

メールなので、とりあえず画像として学習させるにはちょっと無理があります。CSVで学習させるしかないのです。メールを CSV に変換してそれを学習させるのです。ここまでの話だと、メールがどう CSV に化けるのかわかりませんね。その話は、また次回。

AI メール to CSV

どうでしょうか、AI や 人口知能に興味はわいてきましたでしょうか。