微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tika OCR 在 Windows Server 上运行会随着时间的推移而变慢

如何解决Tika OCR 在 Windows Server 上运行会随着时间的推移而变慢

我正在尝试在远程 Windows 2012 服务器上以大约 14,000 个批次对混合文件类型(pdf、doc、xls 等)进行 OCR(我没有完全管理权限)。我正在使用 python3 运行 Tika 1.24,并将结果(通过 pymongo)输出到同一台机器上的 MongoDB。

问题在于,对于每批文件进行 OCR,该过程会显着减慢。到了我不确定我什至能够完成对文件的 OCR 处理的地步。我确保在批次之间关闭 Powershell(这就是我运行 Python 脚本的方式),以防有多个 Tika 服务器实例在后台运行并减慢速度,但这无济于事。我查看了这个 post 以查看它是否是内存泄漏问题,但由于文件批处理设置为 100,000,这似乎对我没有多大帮助。 . .?看起来内存泄漏可能是一个 issue in an earlier version of Tika(从技术上讲,它看起来像是一个上游问题,而不是 Tika 本身)。

我特别困惑,因为在我的本地 Mac 上运行基本完全相同的脚本,我可以在很短的时间内快速连续完成多批文件

我遗漏了什么非常明显的东西,使这个脚本在 Windows Server 2012 上随着时间的推移变慢,但在 Mac 上不是问题?

from pathlib import Path
import tika
from tika import parser
import pymongo
from pymongo import MongoClient
import re
import sys
import csv
import glob

DIRECTORY = ‘path\to\files'

tika.initVM()
counter = 0
pathlist = Path(DIRECTORY).glob('**/*')

for path in pathlist:
    counter+=1
    try:
        ext = path.suffix
        if ext in ('','.DS_Store','.zip','.pages','.db','.rtf','.rar','.swf','.tif','.tiff','.jpg','.jpeg','.png','.bmp'): #
            pass
        else:
            file_dict = {}
            parsed = parser.from_file(str(path),requestOptions={'headers': headers,'timeout': 300})
            file_dict['filename']=path.name
            file_dict['Metadata']=parsed["Metadata"]
            file_dict['file_contents']=parsed["content"]

            try:
                client = MongoClient()
            except:
                print("Could not connect to MongoDB")
            db = client.dbnAME
            collection = db.COLLNAME
            try:
                collection.update({"filename":path.name},file_dict,upsert=True)
            except Exception as e:
                print (e)
                print("Could not insert to collection")

    except Exception as e:
            print('')
            print('Error on line {}'.format(sys.exc_info()[-1].tb_lineno),type(e).__name__,e)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。