Bagaimana cara memangkas email hanya untuk tubuh, ketika menggunakan email sebagai input ke sistem eksternal?

8

Ketika suatu aplikasi mengizinkan email untuk dikirim ke sana untuk membalas komentar atau menambahkan todos, memangkas email-email itu hanya untuk teks yang relevan menjadi masalah, karena ada banyak standar yang berbeda. Sering kali Anda akhirnya melihat hal-hal seperti ini:

Hei Joe, senang mendengar darimu. Beri tahu saya kapan Anda akan kembali ke kota.
Diposting oleh Bob, 30 menit yang lalu


Saya akan kembali pada tanggal 13.

-
Hormat kami, Mitra Senior
Joseph R. Roberts

Komunikasi ini bersifat rahasia dan merupakan milik dari Apapun Law Firm.
Diposting oleh Joe, 10 detik yang lalu

Tanda tangan mungkin yang paling sulit untuk dihilangkan, dan teks kutipan paling mudah. Saya membayangkan setiap strategi komprehensif untuk pemangkasan akan multi-fakta, dan idealnya, pembelajaran. Saya pikir sistem yang baik harus:

  1. Hapus tubuh yang dikutip
  2. Hapus header kutipan ("Pada 15 Oktober, Joe menulis:")
  3. Hapus tanda tangan
  4. Simpan apa pun yang diketik secara manual.

Langkah-langkah apa yang perlu diambil suatu sistem untuk mencapai hal ini, dan perangkap apa yang harus disadari?


Jawaban ini adalah contoh yang bagus dari jawaban yang berguna untuk pertanyaan serupa

Nicole
sumber
Berhati-hatilah dengan menghapus informasi aktual saat mem-parsing karena menghapus konteks, mungkin lebih baik menandai / indeks garis yang dapat dibuang daripada menghapusnya.
Carlo Kuip
Ada pembatas tanda tangan standar tidak tertulis, yang merupakan dua tanda hubung dan spasi pada baris dengan sendirinya.
Blrfl
Tetapi dua tanda hubung tidak selalu berarti seperti itu, misalnya ketika pengirim ingin membagi sesuatu tetapi bagian kedua berakhir. Itu menyakitkan ...
Erica Xu
1
"-" digunakan karena perangkat lunak eMail biasanya membuang spasi tambahan, sehingga seharusnya hanya muncul sebagai pemisah .sig. Seperti halnya HTML dan MIME pada umumnya, YMMV, tapi saya belum menemukan kejadian kebetulan dalam praktik ini. Antara lain, Evolution dan Gmail melakukan parsing "-".
BRPocock

Jawaban:

2

Tanda tangan yang diformat dengan benar mudah diidentifikasi oleh garis '-' (spasi dasbor) yang mendahuluinya. Semoga beruntung menemukan banyak. Meskipun netiket membutuhkan tanda tangan tidak lebih dari tiga baris, banyak organisasi memiliki tanda tangan standar dan penafian yang jauh melebihi ini.

Teks kutipan yang diformat dengan benar akan dimulai dengan lebih dari satu karakter. Ini mengasumsikan bahwa Anda memiliki salinan teks dari tubuh untuk mengambil data.

Pesan berformat HTML mungkin memiliki gaya CSS yang akan membantu melakukan apa yang Anda inginkan.

BillThor
sumber
1

Anda bisa memotong email seperti yang biasanya dilakukan orang dengan laser mata mereka. Abaikan bagian dan tanda tangan yang dikutip.

Tapi pastikan untuk menyimpan salinan kalau-kalau pemangkasan berantakan. Atau Anda dapat membiarkan pelanggan memotong beberapa email terlebih dahulu dan mengikuti kebiasaannya.

Namun hati-hati dan penuh pertimbangan, saya tidak berpikir ada cara untuk memastikan semua email dipangkas properti. Beberapa hal aneh yang ditulis secara manual akan terpotong.

(Atau Anda dapat mengubah cara penulisan email - membuat tanda sementara orang benar-benar mengetik atau menyalin dan menempel dan mempertahankan bagian-bagian itu. Tetapi perubahan ini mungkin memakan waktu lama ...)

Erica Xu
sumber
1

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.

Lucas
sumber
0

Kebenaran obyektif adalah bahwa di sini tidak ada cara yang aman untuk melakukan itu - bukan untuk email / diskusi umum.

JIKA email yang Anda ingin parsing SELALU mengikuti beberapa aturan ketat, Anda mungkin beruntung.

JIKA email bisa datang dari siapa saja yang menggunakan klien email apa pun, Anda selalu menghadapi risiko membuang data yang baik dan menyimpan sampah.

Tanda tangan: mereka datang dalam segala bentuk dan bentuk, dari hilang seluruhnya menjadi sangat singkat, untuk mengandung skrip dan animasi yang kompleks.

"Header" dan "footer" juga dapat memiliki semua jenis konten / kata kunci.

Apa yang "terbaik": itu adalah kebiasaan bahwa jika email awal berisi daftar pertanyaan, jawaban dalam email baru akan benar-benar diedit bertautan dengan garis-garis email lama.

virolino
sumber