Quando um aplicativo permite que emails sejam enviados a ele para responder a comentários ou adicionar todos, aparar esses emails apenas para o texto relevante se torna um problema, pois existem muitos padrões diferentes. Muitas vezes, você acaba vendo coisas assim:
Ei Joe, bom ouvir você. Avise-me quando você voltar à cidade.
Postado por Bob, 30 minutos atrás
Volto no dia 13.
-
Atenciosamente,
Joseph R. Roberts
Sócio SêniorEsta comunicação é confidencial e é propriedade da Whatever Law Firm.
Postado por Joe, 10 segundos atrás
As assinaturas são provavelmente as mais difíceis de se livrar, e o texto citado é o mais fácil. Imagino que qualquer estratégia abrangente para aparar seja multifatorial e, idealmente, de aprendizado. Eu acho que um bom sistema deve:
- Remover o corpo citado
- Remover cabeçalhos de cotação ("Em 15 de outubro, Joe escreveu:")
- Remover assinaturas
- Preserve qualquer coisa digitada manualmente.
Que medidas um sistema precisaria tomar para fazer isso e que armadilhas ele deveria estar ciente?
Esta resposta é um bom exemplo de resposta útil para uma pergunta semelhante
fonte
Respostas:
As assinaturas formatadas corretamente são fáceis de identificar pela linha '-' (espaço do traço do traço) que as precede. Boa sorte para encontrar muitos. Embora a netiqueta exija que as assinaturas tenham no máximo três linhas, muitas organizações têm assinaturas e isenções de padrões que excedem em muito isso.
O texto citado corretamente formatado começará com um ou mais caracteres '>'. Isso pressupõe que você tenha uma cópia em texto sem formatação do corpo para extrair dados.
As mensagens formatadas em HTML podem ter estilo CSS, o que ajudará a fazer o que você deseja.
fonte
Você pode apenas aparar o e-mail, como as pessoas costumam fazer com seus lasers oculares. Ignore as partes e a assinatura citadas.
Mas certifique-se de salvar uma cópia, caso o corte atrapalhe. Ou você pode deixar o cliente cortar alguns e-mails primeiro e seguir seus hábitos.
Por mais cuidadoso e atencioso que seja, acho que não há como garantir que todos os emails sejam cortados. Algumas coisas estranhas escritas manualmente serão cortadas.
(Ou você pode alterar a maneira como os e-mails são escritos - faça marcas enquanto as pessoas realmente digitam ou copiam e colam e preservam essas partes. Mas essa alteração pode levar muito tempo ...)
fonte
Não será fácil limpar o lixo eletrônico dos e-mails, porque os clientes e as pessoas de software de e-mail identificam as partes de e-mail de maneira conveniente, mas para limpar as mensagens, eu começaria:
As respostas podem ter o texto misturado com aspas, antes, depois ou misturado com citações em bloco. Em alguns casos, como você mencionou, vários elementos podem ser limpos diretamente:
Não é muito, mas é um começo.
Você pode melhorar isso encadeando as mensagens por thread e usando um algoritmo diff de maneira semelhante ao git para o código-fonte
As mensagens de email têm cabeçalhos ocultos que podem ser usados para encadear as respostas e encaminhar juntas. Usando isso, você pode montar um gráfico direcionado de conversas. Não sei o quanto isso é confiável, mas suspeito que agrupe muitas conversas. Muitos servidores de lista têm navegação por "thread" que funciona bem e eu suspeito que eles encadearam as mensagens dessa maneira.
Você pode melhorar isso comparando diretamente os e-mails da mesma fonte para isolar assinaturas
Assinaturas automatizadas estão presentes na maioria dos emails da mesma fonte. Não apenas isso, mas slogans e outras decorações frequentemente usadas por um autor. Ao comparar vários e-mails da mesma pessoa, essas decorações podem ser encontradas e esmaecidas, não sendo significativas para o conteúdo. Minha intuição me diz que será necessário algum ajuste para isolar a decoração no início e no final do email e evitar expressões comuns no texto usado pelo autor.
Você pode melhorar isso comparando diretamente o email com um banco de dados de email para encontrar textos semelhantes
Isso será difícil de desenvolver, mas pode ser uma ferramenta de auditoria fantástica.
Minha intuição é que, ao agrupar uma mensagem, encontrar as mensagens com as mesmas palavras e compará-las, será possível usar uma pesquisa de texto completo do banco de dados PostgreSQL para fornecer um desempenho razoável nisso.
A idéia é listar as palavras em um pedaço, identificar as que são menos usadas e consultar no banco de dados os e-mails que as contêm. Em seguida, compare os e-mails através de um algoritmo diff para ver quais partes são iguais.
Isso permitirá ir além do encadeamento direto pelo ID das mensagens. Por exemplo, ele reconhecerá copiar e colar.
No entanto, alguns ajustes serão necessários aqui
Você pode melhorar a correspondência por meio de técnicas de mineração de texto
A mineração de texto padrão (como descrito em muitas teses) inclui uma etapa de limpeza onde o texto é simplificado. Os conectivos são removidos do texto (a, é, e, ou, etc.) e as palavras são transformadas como (por exemplo: alterado, alterável para alterar). Este texto convertido não é legível, mas a correspondência de texto é boa.
Uma limpeza como essa isolará os problemas correspondentes que normalmente acontecem quando a pessoa reformata o email ou o email é convertido de html de / para texto sem formatação. Isso também evitará correções simples de ortografia para quebrar a corrente.
Conclusão
Este é um problema interessante. Minha sugestão é puramente baseada na intuição, não testada e especulativa na melhor das hipóteses. É o caminho inicial que eu começaria a pesquisar se apresentasse um problema como esse. Acredito que será difícil desenvolver, mas pode ser uma poderosa ferramenta de comunicação e auditoria.
Uma solução como essa provavelmente criará um bom arquivo de email. Ao encadear as mensagens e armazenar apenas os diffs e chunks, você provavelmente terá um enorme fator de compactação além de qualquer coisa que um zip possa fazer.
Além disso, isso seria uma poderosa ferramenta de auditoria. Tornaria evidente quando uma pessoa forjou uma citação em bloco, uma resposta ou um encaminhamento. A citação em bloco modificada será identificada como texto original e não será limpa pela solução.
fonte
A verdade objetiva é que aqui não há uma maneira segura de fazer isso - não para emails / discussões genéricos.
Se os e-mails que você deseja analisar SEMPRE seguem algumas regras estritas, você pode ter sorte.
Se os emails puderem ser provenientes de qualquer pessoa usando qualquer cliente de email, você sempre corre o risco de jogar fora bons dados e guardar lixo.
Assinaturas: elas vêm em todas as formas e formatos, desde que faltam inteiramente para serem muito breves, para conter scripts e animações complexas.
"Cabeçalhos" e "rodapés" também podem ter todos os tipos de conteúdo / palavras-chave.
O que é "melhor": é um hábito que, se o email inicial contiver uma lista de perguntas, as respostas no novo email serão realmente editadas entrelaçadas com as linhas do email antigo.
fonte