Dルートで行こう

ハック日記

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下にあるディレクトリ名を取得する

dir名,spam(s-1,spam など)

 

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 数値として扱う入力属性を参照)

 

以上、抜けもれあるかも