gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:21:27 25 4
gpt4 key购买 nike

更新:我现在已经编写了一个名为 php_ssdeep 的PHP 扩展。 用于 ssdeep C API,以促进 PHP 中 native 的模糊散列和散列比较。更多信息可参见 over at my blog 。我希望这对人们有所帮助。

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

基本上,当用户上传新文件时,我们希望能够向他们展示重复或包含相似内容的文件列表。这将允许他们选择一个预先存在的文件或继续上传他们自己的文件。

相似的文档将通过查看其内容中相似的句子以及可能是动态生成的关键字列表来确定。然后,我们可以向用户显示匹配百分比,以帮助他们找到重复项。

您能否为这个过程推荐任何包,以及您过去可能如何做到这一点的任何想法?

直接复制我觉得可以通过获取所有的文本内容和

  • 去除空格
  • 删除标点符号
  • 转换为小写或大写

然后形成一个 MD5 散列来与任何新文档进行比较。例如,如果用户编辑文档以添加额外的段落分隔符,则剥离这些项目应该有助于防止找不到重复项。有什么想法吗?

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

最佳答案

更新:我现在已经编写了一个名为 php_ssdeep 的PHP 扩展。 用于 ssdeep C API,以促进 PHP 中 native 的模糊散列和散列比较。更多信息可参见 over at my blog 。我希望这对人们有所帮助。

我找到了一个程序,它可以执行其创建者 Jesse Kornblum 所说的“模糊散列”。基本上,它会生成可用于检测相似文件或完全匹配的文件的哈希值。

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

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

关于php - 在文档管理应用程序中检查文档重复项和类似文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com