Cuando una aplicación permite que se le envíen correos electrónicos para responder a los comentarios o agregar todos, recortar esos correos electrónicos solo para el texto relevante se convierte en un problema, ya que hay muchos estándares diferentes. Muchas veces terminarás viendo cosas como esta:
Hola Joe, es bueno saber de ti. Avísame cuando vuelvas a la ciudad.
Publicado por Bob, hace 30 minutos
Regresaré el 13.
-
Sinceramente,
Joseph R. Roberts
Socio principalEsta comunicación es confidencial y es propiedad de Whatever Law Firm.
Publicado por Joe, hace 10 segundos
Las firmas son probablemente las más difíciles de eliminar, y el texto citado es el más fácil. Me imagino que cualquier estrategia integral para recortar será multifacética, e idealmente, de aprendizaje. Creo que un buen sistema debería:
- Eliminar cuerpo citado
- Eliminar encabezados de comillas ("El 15 de octubre, Joe escribió:")
- Eliminar firmas
- Preserve todo lo que se escribió manualmente.
¿Qué pasos necesitaría dar un sistema para lograr esto y de qué dificultades debería ser consciente?
Esta respuesta es un buen ejemplo de una respuesta útil a una pregunta similar.
fuente
Respuestas:
Las firmas formateadas correctamente son fáciles de identificar por la línea '-' (espacio del guión) que las precede. Buena suerte encontrando muchos. Aunque la netiqueta requiere que las firmas no sean más de tres líneas, muchas organizaciones tienen firmas estándar y exenciones de responsabilidad que superan con creces esto.
El texto citado correctamente formateado comenzará con uno o más caracteres '>'. Esto supone que tiene una copia de texto sin formato del cuerpo para extraer datos.
Los mensajes con formato HTML pueden tener un estilo CSS que lo ayudará a hacer lo que desee.
fuente
Simplemente puede recortar el correo electrónico como suelen hacer las personas con sus láseres oculares. Ignorar las partes citadas y la firma.
Pero asegúrese de guardar una copia en caso de que el recorte se estropee. O puede dejar que el cliente corte primero algunos correos electrónicos y siga sus hábitos.
Sin embargo, con cuidado y consideración, no creo que haya ninguna manera de asegurarse de que todos los correos electrónicos sean propiedad recortada. Algunas cosas extrañas escritas manualmente se cortarán.
(O puede cambiar la forma en que se escriben los correos electrónicos: haga marcas mientras la gente escribe o copia y pega y conserva esas partes. Pero este cambio puede llevar mucho tiempo ...)
fuente
No será fácil limpiar la basura en correos electrónicos porque los clientes de correo electrónico de software y los humanos etiquetan las partes de correo electrónico de una manera conveniente, pero para limpiar los mensajes comenzaría por:
Las respuestas pueden tener el texto mezclado con comillas, antes, después o mezclado con comillas en bloque. En algunos casos, como mencionó, varios elementos se pueden limpiar directamente:
No es mucho, pero es un comienzo.
Puede mejorar esto encadenando los mensajes por hilo y usando un algoritmo diff de una manera similar a como lo hace git para el código fuente
Los mensajes de correo electrónico tienen encabezados ocultos que se pueden usar para encadenar las respuestas y reenviarlas. Usando eso puedes montar un gráfico dirigido de conversaciones. No sé qué tan confiable es esto, pero sospecho que eso agrupará muchas conversaciones. Muchos servidores de listas tienen una navegación de "hilo" que funciona bien y sospecho que encadenan los mensajes de esa manera.
Puede mejorar esto comparando directamente los correos electrónicos de la misma fuente para aislar firmas
Las firmas automatizadas están presentes en la mayoría de los correos electrónicos de la misma fuente. No solo eso, sino también lemas y otras decoraciones utilizadas a menudo por un autor. Al comparar varios correos electrónicos de la misma persona, esas decoraciones se pueden encontrar y atenuar sin importancia para el contenido. Mi intuición me dice que será necesario un poco de ajuste para aislar la decoración al inicio y al final del correo electrónico y evitar expresiones comunes en el texto utilizado por el autor.
Puede mejorar esto comparando directamente el correo electrónico con una base de datos de correo electrónico para encontrar textos similares.
Será difícil de desarrollar, pero puede resultar una herramienta de auditoría fantástica.
Mi intuición es que al fragmentar un mensaje, encontrar los mensajes que tienen las mismas palabras y compararlos, será posible utilizar una búsqueda de texto completo en la base de datos PostgreSQL para obtener un rendimiento razonable.
La idea es enumerar las palabras en un fragmento, identificar las que se usan menos y consultar en la base de datos los correos electrónicos que las tienen. Luego compare los correos electrónicos a través de un algoritmo diff para ver qué partes son iguales.
Esto permitirá ir más allá del encadenamiento directo por ID de mensajes. Por ejemplo, reconocerá copiar y pegar.
Sin embargo, será necesario hacer algunos ajustes aquí
Puedes mejorar la correspondencia mediante técnicas de minería de texto
La minería de texto estándar (como se describe en muchas tesis) incluye un paso de limpieza donde se simplifica el texto. Las conectivas se eliminan del texto (a, is, and, or, etc.) y las palabras se transforman como (por ejemplo: cambiado, modificable a cambio). Este texto convertido no es legible, pero para la coincidencia de texto es bueno.
Una limpieza como esa aislará los problemas de coincidencia que generalmente ocurren cuando la persona vuelve a formatear el correo electrónico o el correo electrónico se convierte de html de / a texto sin formato. Esto también evitará correcciones ortográficas simples para romper la cadena.
Conclusión
Este es un problema genial. Mi sugerencia se basa puramente en la intuición, no probado y especulativo en el mejor de los casos. Es el camino inicial que comenzaría a investigar si se me presentara un problema como este. Creo que será difícil de desarrollar, pero puede ser una poderosa herramienta de comunicación y auditoría.
Una solución como esta probablemente sea un buen archivo de correo electrónico. Al encadenar los mensajes y almacenar solo los diferenciales y fragmentos, probablemente tendrá un gran factor de compresión más allá de todo lo que un zip puede hacer.
Además, esta sería una poderosa herramienta de auditoría. Sería evidente cuando una persona falsificara una cita en bloque, una respuesta o un reenvío. La cita en bloque modificada se identificará como texto original y la solución no la limpiará.
fuente
La verdad objetiva es que aquí no hay una forma segura de hacerlo, no para correos electrónicos / debates genéricos.
SI los correos electrónicos que desea analizar SIEMPRE siguen algunas reglas estrictas, es posible que tenga suerte.
SI los correos electrónicos pueden provenir de alguien que usa un cliente de correo electrónico, siempre corre el riesgo de tirar buenos datos y guardar basura.
Firmas: vienen en todas las formas y formas, desde fallar por completo hasta ser muy breves, para contener scripts y animaciones complejas.
Los "encabezados" y "pies de página" también pueden tener todo tipo de contenido / palabras clave.
Lo que es "mejor": es un hábito que si el correo electrónico inicial contiene una lista de preguntas, las respuestas en el nuevo correo electrónico se editarán entrelazadas con las líneas del correo electrónico anterior.
fuente