更新:我现在已经写了一个PHP扩展名为php_ssdeep为ssdeep C API,以方便在PHP模糊哈希和哈希比较本身。可以找到更多的信息over at my blog。我希望这对人们有帮助。在文档管理应用程序检查文档的重复和类似文件
我参与编写一个自定义文档管理应用程序在Linux上,它将存储各种文件格式(潜在的1000个文件),并且我们需要能够检查文本文件是否已经上传以防止数据库中的重复。
本质上讲,当一个用户上传,我们希望能够与那些要么重复或包含类似内容的文件列表展示他们的新文件。这将允许他们选择其中一个已存在的文件或继续上传自己的文件。
类似的文件将通过其类似sentances也许关键字动态生成的列表内容寻找确定。然后,我们可以向用户显示百分比匹配,以帮助他们找到重复项。
你能推荐这个过程中的任何包和一个如何在过去所做的任何想法?
直接重复我认为可以通过获取所有文本内容和
- 剥离空白
- 删除标点
- 转换为大写或小写
然后形成一个完成MD5哈希与任何新文档进行比较。如果用户编辑文档以添加额外的段落符号,则将这些项目剥离应有助于防止找不到模糊。有什么想法吗?
此过程也可能作为夜间工作运行,如果计算要求太高而无法实时运行,我们可以在下次登录时通知用户任何重复项。然而,实时将是首选。
使用MD5散列只会帮助您处理两个完全相同的文档。如果只有一个字符不同,则生成的MD5散列并不相近(这是散列点之一)。因此,这不适合寻找类似的文件... – Franz 2009-11-13 13:30:01
我意识到这一点。这就是为什么我提到用于查找精确匹配而不是类似文件的技术。 – Treffynnon 2009-11-13 14:33:28