请求帮助加快 17,000 个 TXT 文件的批处理程序

问题描述

我已经扫描了 17,000 多页(用于本地历史存档),我使用 Tesseract 对这些页面进行了 OCR 处理到单个 TXT 文件。 我希望能够搜索/定位包含超过 3 个小写字母的搜索词的每个页面。 因此,对于每个 TXT 文件,我需要:

  1. 从 OCR 文本中删除所有垃圾,即非字母数字字符 - jrepl "[^a-zA-Z0-9\s]" "" /x /f %%G /O -
  2. 删除 1、2 和 3 个字母的单词 - jrepl "\b\w{1,3}\b" "" /x /f %%G /O -
  3. 将所有字符改为小写 - jrepl "(\w)" "$1.toLowerCase()" /i /j /x /f %%G /O -
  4. 为了能够对剩余的单词进行排序,它们需要在单独的新行上 - jrepl "\s" "\n" /x /f %%G /O -
  5. 最后将所有唯一的单词按字母顺序排序并创建修改后的 TXT 文件 - sort /UNIQUE %%G /O %%G

我有一个使用 JREPL 执行上述操作的批处理文件,但速度很慢。它已经运行了 100 多个小时,而我什至没有跑到一半。 有什么建议可以加快处理速度吗?我运行的是 Windows 10。谢谢。

解决方法

解决方案?

由于您现有的批次可以满足您的需求,毫无疑问,测试替代品将花费数小时 - 所以:

将 17,000 个文件或未处理的文件拆分到(无论您有多少个内核)单独的目录中,然后在每个目录上启动现有批处理。因为是周末,所以让进程在一夜之间运行。 8核?应该在 15 小时左右完成,而您要赶上睡眠或园艺或其他任何事情。