php – 在文档管理应用程序中检查文档重复项和类似文档

前端之家收集整理的这篇文章主要介绍了php – 在文档管理应用程序中检查文档重复项和类似文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
更新:我现在已经为ssdeep C API编写了一个名为 php_ssdeepPHP扩展,以便在本机中简化PHP中的模糊散列和散列比较.更多信息可以在 over at my blog找到.我希望这对人们有所帮助.

我参与在Linux上编写一个PHP自定义文档管理应用程序,它将存储各种文件格式(可能是1000个文件),我们需要能够检查之前是否已上载文本文档以防止数据库中的重复.

基本上当用户上传文件时,我们希望能够向他们提供重复或包含类似内容文件列表.然后,这将允许他们选择一个预先存在的文档或继续上传他们自己的文档.

类似的文件将通过查看他们的内容来确定类似的发送和可能是动态生成的关键字列表.然后,我们可以向用户显示百分比匹配,以帮助他们找到重复项.

你能推荐这个过程的任何软件包以及过去如何做到这一点的任何想法吗?

我认为可以通过获取所有文本内容来完成直接复制

>剥离空白
>删除标点符号
>转换为大写或大写

然后形成MD5哈希以与任何新文档进行比较.如果用户编辑文档以添加额外的段落符号,则剥离这些项目应该有助于防止找不到欺骗.有什么想法吗?

此过程也可能作为夜间作业运行,如果计算要求太大而无法实时运行,我们可以在下次登录通知用户任何重复项.然而,实时将是首选.

更新:我现在已经为ssdeep C API编写了一个名为 php_ssdeepPHP扩展,以便在本机中简化PHP中的模糊散列和散列比较.更多信息可以在 over at my blog找到.我希望这对人们有所帮助.

我找到了一个程序,它的创造者Jesse Kornblum称之为“模糊哈希”.基本上它会使文件的哈希值可用于检测类似文件或相同匹配.

其背后的理论记录在这里:Identifying almost identical files using context triggered piecewise hashing

ssdeep是程序的名称,可以在Windows或Linux上运行.它旨在用于取证计算,但它似乎足以满足我们的目的.我在旧的Pentium 4机器上做了一个简短的测试,需要大约3秒才能通过一个23MB的哈希文件(哈希值只有不到135,000个文件)来寻找两个文件的匹配.那个时间包括为我正在搜索的两个文件创建哈希值.

原文链接:https://www.f2er.com/php/136447.html

猜你在找的PHP相关文章