GMail邮件差异算法

4
当你发送电子邮件时,通常邮件客户端会“引用”所有旧的电子邮件。但由于这是在客户端完成的,因此在执行此操作时当然没有标准:
一些在行首插入>作为引用的指示符 有些人在引用文本上方写新文本,有些则在其下方 例如,webOS没有任何手段来“引用”旧文本。它只是按原样插入。
GMail非常擅长过滤已发送电子邮件的旧部分,并提供用户选项“显示引用文本”。
是否存在类似的算法来检测这些相似部分?
1个回答

2
我不知道使用了什么算法,但由于这是电子邮件而不是代码,差异应该要容易得多。基本上,如果您将每行视为字符串中的一个字符(使用某些哈希表示),那么可以将电子邮件表示为一个字符串(每行一个字符)。
然后,您可以使用最小编辑距离算法来确定从一个电子邮件到另一个电子邮件添加了什么和删除了什么。所有公共的内容都成为引用文本,所有添加的东西都是新电子邮件。
这里是字符串编辑距离算法的链接:edit distance algo:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接