gpt4 book ai didi

python - 优化pdfminer

转载 作者:行者123 更新时间:2023-12-04 14:00:56 33 4
gpt4 key购买 nike

我正在尝试在生产环境中使用 pdfminer.six 从 pdf 中提取文本。目前,对于我的基准 44 页文档,大约需要 18 秒。我想尽可能减少这种情况。

到目前为止,我已经设法通过转动 caching = False 将时间减少了 3 秒。 .有没有人对我如何进一步优化它有建议?据我所知,使用像 这样的模块多处理 并行处理页面是行不通的,因为底层方法/函数不能被腌制。

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

path = "PATH/TO/MYPDF.pdf"
rsrcmgr = PDFResourceManager()
retstr = io.StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams, showpageno= True)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = None
caching = False
pagenos=set()

for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)

text = retstr.getvalue()
fp.close()
device.close()
retstr.close()

最佳答案

我在 python 3.8 上使用 pdfminer。我有一个操作 pdf 文档内容的应用程序,虽然组装单词/标记并确定它们出现在表格文档中的位置非常繁琐,但我在 python 2.7 中运行良好,但移至 py3 和最新版本pdfminer 的版本,它运行得太慢以至于无法接受。因此,经过大量挖掘和分析我的代码后,我发现因为旧版本的所有打印语句都已转换为日志语句,并且 pdfminer 模块创建的记录器都默认为 level.DEBUG,并且因为我已分配处理程序针对根记录器将日志消息写入文件,整体速度受到很大影响。
在导入 pdfminer 模块之后以及在实例化任何类或调用它们之前添加以下代码,现在它的运行速度可以接受。

# set all pdfminer logging to WARN
pdflogs = [logging.getLogger(name) for name in logging.root.manager.loggerDict if name.startswith('pdfminer')]
for ll in pdflogs:
ll.setLevel(logging.WARNING)

关于python - 优化pdfminer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45473770/

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