Tidak mudah untuk membersihkan sampah dalam email karena klien dan manusia perangkat lunak mengirim email menandai bagian-bagian email dengan cara yang mudah, tetapi untuk membersihkan pesan saya akan mulai dengan:
Respons dapat membuat teks dicampur dengan tanda kutip, sebelum, sesudah, atau dicampur dengan tanda kutip. Dalam beberapa kasus, seperti yang Anda sebutkan beberapa elemen dapat dibersihkan secara langsung:
- header tersembunyi;
- meneruskan dan membalas tajuk dari klien email utama
- blockquotes dari klien email utama
Tidak banyak, tetapi merupakan awal.
Anda dapat meningkatkan ini dengan merantai pesan dengan utas dan menggunakan algoritma diff dengan cara yang sama seperti yang dilakukan git untuk kode sumber
Pesan E-Mail memiliki header tersembunyi yang dapat digunakan untuk mengaitkan balasan dan meneruskan secara bersamaan. Dengan itu Anda dapat memasang grafik percakapan yang diarahkan. Saya tidak tahu seberapa andal ini, tapi saya curiga itu akan mengelompokkan banyak percakapan. Banyak server daftar memiliki navigasi "utas" yang berfungsi dengan baik dan saya menduga mereka mengaitkan pesan dengan cara itu.
Anda dapat meningkatkan ini dengan langsung membandingkan email dari sumber yang sama untuk mengisolasi tanda tangan
Tanda tangan otomatis ada di sebagian besar surel dari sumber yang sama. Bukan hanya itu, tetapi tagline dan dekorasi lainnya sering digunakan oleh seorang penulis. Dengan membandingkan beberapa email dari orang yang sama, dekorasi itu dapat ditemukan dan redup tidak signifikan pada konten. Intuisi saya memberi tahu saya bahwa diperlukan penyetelan untuk mengisolasi dekorasi pada awal dan akhir email dan menghindari ekspresi umum dalam teks yang digunakan oleh penulis.
Anda dapat meningkatkan ini dengan langsung membandingkan email dengan database email untuk menemukan teks yang sama
Ini akan sulit untuk dikembangkan, tetapi mungkin terbukti menjadi alat audit yang fantastis.
Intuisi saya adalah bahwa dengan memotong sebuah pesan, menemukan pesan yang memiliki kata-kata yang sama dan membandingkannya, akan mungkin untuk menggunakan pencarian teks lengkap database PostgreSQL untuk memberikan kinerja yang masuk akal pada itu.
[chunk 1][chunk 3][chunk 5][chunk 7]
[chunk 2][chunk 4][chunk 6]
chunk 1: 0-50; chunk 2: 25-75; chunk 3: 50-100 ...
Idenya adalah untuk membuat daftar kata-kata dalam chunk, mengidentifikasi kata-kata yang kurang digunakan dan query database e-mail yang memilikinya. Kemudian bandingkan e-mail melalui algoritma diff untuk melihat bagian mana yang sama.
Ini akan memungkinkan untuk melampaui chaining langsung dengan id pesan. Misalnya, ia akan mengenali salin dan rekat.
Namun beberapa penyempurnaan akan diperlukan di sini
Anda dapat meningkatkan kecocokan melalui teknik penambangan teks
Penambangan teks standar (seperti yang dijelaskan dalam banyak tesis), termasuk langkah pembersihan di mana teks disederhanakan. Konektivitas dihapus dari teks (a, is, and, atau, dll.) Dan kata-kata ditransformasikan seperti (misalnya: diubah, dapat diubah untuk berubah). Teks yang dikonversi ini tidak dapat dibaca, tetapi untuk pencocokan teks bagus.
Pembersihan seperti itu akan mengisolasi masalah pencocokan yang biasanya terjadi ketika orang memformat ulang email, atau email dikonversi dari html dari / ke teks biasa. Ini juga akan mencegah koreksi ejaan sederhana untuk memutus rantai.
Kesimpulan
Ini masalah yang keren. Saran saya murni berdasarkan intuisi, belum teruji dan spekulatif. Ini adalah jalur awal yang akan mulai saya teliti jika dihadapkan pada masalah seperti ini. Saya percaya itu akan sulit untuk dikembangkan, tetapi mungkin menjadi alat komunikasi dan audit yang kuat.
Solusi seperti ini mungkin akan membuat arsip email yang baik. Dengan merantai pesan dan hanya menyimpan diff dan chunk, Anda mungkin akan memiliki faktor kompresi yang sangat besar melebihi apa pun yang dapat dilakukan zip.
Juga, ini akan menjadi alat audit yang kuat. Itu akan menjadi jelas ketika seseorang memalsukan blockquote, balasan atau penerusan. Blockquote yang dimodifikasi akan diidentifikasi sebagai teks asli dan tidak akan dibersihkan oleh solusi.