Monday, March 27, 2006

Hasil sementara email mining

Satu minggu saya off dari menulis blog ini, karena lagi di Bandung. Selama seminggu tersebut, saya akhirnya dapat merangkum beberapa hasil pekerjaan yang dapat saya selesaikan. Berikut beberapa catatan tentang penelitian tentang Email Mining saya:

  1. Untuk 'pembersihan' email yang sudah dilakukan:
    • menerapkan stop word list
    • menerapkan stemming baik indonesia maupun inggris
    • membuang header dari suatu original message
    • body html dikonversi ke text dengan menggunakan links
    • membuang attachment dari MAILER-DAEMON, karena terlalu besar tidak sesuai dengan main bodynya
    • membuang signature
    • membuang bagian yang dibuat oleh PGP

  2. untuk ekstraksi informasi yang sudah diterapkan:
    • mengambil informasi URI, baik URL maupun email
    • mengambil informasi tanggal dan jam
    • mengambil informasi nomor telepon

  3. untuk feature selection, saya menggunakan stop word list dan stemming, baik untuk bahasa inggris maupun bahasa indonesia

  4. untuk searching, sudah diterapkan dengan menerapkan algoritma ranking dimana akan dihitung berdasar bobot (TF/IDF) dari masing-masing kata yang sesuai dengan yang dicari.

  5. sudah dicoba untuk menerapkan modul Mail::Thread untuk dapat melihat keterkaitan antar email berdasar referensinya (References, In-Reply-to, message-id)

  6. menstrukturkan informasi header email selengkap mungkin:
    • mencatat field From (name dan email addrs), Subject, message-id, body, id bahasa
    • mencatat informasi header yang menyangkut mailing list
    • mencatat header received
    • menyimpan attachment
Perubahan pada modul yang tersedia:
Pada modul Mail::Thread (/usr/lib/perl5/site_perl/5.8.5/Mail/Thread.pm) ada penambahan baris perintah agar dapat tetap running, yaitu pada fungsi _msgid()

sub _msgid {
my ($class, $msg) = @_;
my $id= $msg->isa("Mail::Message") ? $msg->messageId :
$class->_get_hdr($msg, "Message-ID");
$id = $class->_get_hdr($msg, "X-UIDL") if (!$id); ## <-- tambahan die "attempt to thread message with no id" unless $id; chomp $id; $id =~ s/^<([^>]+)>.*/$1/; # We expect this not to have <>s
return $id;
}

No comments: