【问题标题】:Identify & Remove "Duplicate" PPT files that are not 100% the same [closed]识别并删除不是 100% 相同的“重复”PPT 文件 [关闭]
【发布时间】:2015-02-20 20:41:52
【问题描述】:

作为即将到来的项目的发现过程的一部分,我试图找到一种方法来获取我们网络上的 PPT 文件的代表性样本。到目前为止,我已经收集整理了我们所有的 PPT 文件,但是我意识到文件量很大,所以我需要找到一种方法来减少它。为此,我认为删除所有“重复”文件会有所帮助。

我们公司对我们网络上的文件没有任何类型的版本控制系统。因此,用户通常会创建文件副本以进行微小的更改。这导致大量“重复”文件没有真正的命名约定等。理想情况下,我能够对哪些文件是“重复”做出最佳猜测并保留最新版本。因为我只需要一个有代表性的样本,所以我不需要 100% 准确地保存/删除决定,如果由于(当前有 135K 文件,我希望最终会丢失大量文件),我也可以3-5K)。我不知道该怎么做,因为像 http://www.easyduplicatefinder.com/ 这样的工具似乎在寻找真正相同的文档,而不是更细微的差异。

以下是一些额外的细节:

  • 文件名不遵循任何标准约定
  • 我认为可以公平地假设许多 PPT 属性将在不同版本之间保持不变
  • 文件的版本总是位于同一个文件夹中,但其他 PPT 文件也可能存在于同一个文件夹中
  • 我愿意使用以下任何语言/技术解决此问题:C#、VB、Ruby、Python、IronPython、PowerShell

【问题讨论】:

  • 首要任务是评估现有的 powerpoint diff 软件,看看它是否适合您。 Powerpoint 是高度可编写脚本的,您可以使用Presentation.SaveAs 将其转换为更“可区分”的内容。也许转换为 rtf,然后从那里使用您最喜欢的“不同”。
  • 感谢@tdelaney - 正如我在帖子中提到的,我研究了许多差异解决方案,但其中大多数都无法满足我的要求。话虽如此,您建议将数据从 PPT 中移出并转换为更“可区分”的格式是一个很好的建议。我会研究那条路线。非常感谢!

标签: c# python powershell cmd powerpoint


【解决方案1】:

我会这样处理它:

  • 从每个 .ppt 文件中提取所有可见的文本字符串
  • 将字符串转储到文本文件中,每个 .ppt 一个
  • 在所有文本文件对(在同一目录中?)上运行 diff 以获得最小编辑距离
  • 通过聚类算法运行生成的距离矩阵

【讨论】:

  • Hugh 的提取文本字符串的建议。如果在此过程中取消组合任何不可组合的图片、OLE 对象、图表、smartart 等,会更有效;否则,它们包含的文本对于大多数文本提取方法都是不可见的。当然,您会在文件的临时副本而不是原始文件上执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2014-06-27
  • 2015-07-19
  • 2021-09-13
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多