make_kaiseki_data
大まかな概要と出力ファイル、使用プログラムを記載
使用プログラムと出力ファイルは出現順に並んでいるものとする。
make_kaiseki_data.csh
ip.pl
cat $z |perl make_matching_table.pl
maildir下にあるmailをmake_matching_table.plに投げる
time_table_plain にmailファイル名を出力
"making matching table..."
table_sort.pl
(subject_table_plain from_table_plain time_table_plain をtable_sort/.plに渡す)
"rename mail data..."
rename フォルダを作成
rename.pl
ip_data_sort.pl
"making data"
renamedir下にあるファイル名を kaiseki_data_header kaiseki_data_len に出力
renamedir下にあるファイル名をmake_data_header.plに渡す
renamedir下にあるファイル名をmake_data_body.plに渡す
"making data sc..."
make_data_body_sc.csh
"making maiseki data...."
make_kaiseki_data.pl
mv (renameとbodyとtmp_bodyをoutput_dataに移動 *_plainとkaiseki_data_*とip_data_renameとip_rename_sorted をoutput_data直下に移動)
mv(*_tableをoutput_data/table/に移動)
find(output_data/tmp_body/base64_6*の空ファイルを削除)
find(output_data/tmp_body/decode_base64_6*の空ファイルを削除)
find(output_data/tmp_body/quoted_6*の空ファイルを削除)
find(output_data/tmp_body/tmp_base64_6*の空ファイルを削除)
rm(output_data/tmp_body/tmp_base64*_6を削除)
"finished"
ip.pl
ipを出力
maildir.csvを弄る
maildir下にあるディレクトリ名を取得する
spamの場合の処理
ip_table_plainにはipを出力
ip_dataにはfullpathとipを出力
hamの場合の処理も同様???
make_matching_table.pl
題名と送信者とUNIX時間の抽出
subject_table_plainにsubjectを出力
from_table_plainにfromを出力
time_table_plainにtimeを出力(UNIX TIMEに変換)
table_sort.pl
subject_table_plainをソートしsubject_tableに出力
from_table_plainをソートしfrom_tableに出力
time_table_plainをソートしtime_tableに出力
ip_table_painをソートしip_tableに出力
rename.pl
time_tableの中身のファイル名を抜き取り行順を$iとし
$i,ファイル名をname_tableとして出力
ip_dataの中身をname_tableの順番でipを並べてip_data_renameに出力
ip_data_sort.pl
ip_data_renameを昇順?にしてソートしてip_rename_sortedを出力
make_data_header.pl(よくわからない)
mailのheaderから情報を抜く
subjectcountに20001を足してるsubject_numberとする
formには30001を足してfrom numberとする
Message-ID Content-type を抽出しfrom とMessage-IDを比較して一致度を測る。
テキスト形式の抜粋、添付の有無を抽出
Message-IDとfromの一致度,kaiseki_data_header、subjectのマッチングNO,fromのマッチングno、テキスト形式、添付の有無 をkaiseki_data_headerに出力
make_data_body.pl
content-length 文章の長さを測る
kaiseki_data_lenに出力する
make_data_body_sc.csh
renamedirのmailをutf8に変換し、rename_utf8に置く
kaiseki_word.pl
make_data_sc.plを呼んでスパム語とスパム単語、総スパム語byte数をkaiseki_data_scに出力
hit_words.datにf1とf2シソーラスワードを出力
make_data_body_http.plでURL個数、httpbyte数をhttp_lenに出力
make_data_per.plの呼び出し
base_64_* decode_* qupted_* tmp_base64_* rename_utf8/ body_words http_len kaiseki_data_sc をtmp_bodyに移動
make_data_body_http.plでURL個数、httpbyte数をhttp_lenに出力
-kaiseki_word.pl
titleと本文をtmpに移しつつbody_$iに移管
-make_data_sc.pl
スパム語とスパム単語、総スパム語byte数をkaiseki_data_scに出力
-make_data_body_http.pl
URL個数、httpbyte数をhttp_lenに出力
-make_data_per.pl
rename後のファイル名、URL個数、URL出現率、スパム単語の出現率をkaiseki_data_bodyに出力
make_kaiseki_data.pl
kaiseki_data.arffを作成
ip_num,message_ID,$subject,$from,text_type,multipart(添付),url個数,urlbyte数,spam頻出,spam度数、スパム・非スパム(今中さんのp8-p9 2.4.1 数値として扱う入力属性を参照)
以上、抜けもれあるかも