使用 Apache Tika + Tesseract 提取扫描 PDF 时速度缓慢

Slowness in extracting scan PDF using Apache Tika + Tesseract

Apache Tika extract scanned PDF files 开始,它非常适合扫描文档。但问题是,它花费了太多时间以及 CPU 利用率。

在我的例子中,具有 23 pages15 MB 文件占用了大约 ~4.5 minute,这太高了。请在下面找到我的工作代码,

Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);

TesseractOCRConfig config = new TesseractOCRConfig();
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setExtractInlineImages(true);

ParseContext parseContext = new ParseContext();
parseContext.set(TesseractOCRConfig.class, config);
parseContext.set(PDFParserConfig.class, pdfConfig);
//need to add this to make sure recursive parsing happens!
parseContext.set(Parser.class, parser);

Metadata metadata = new Metadata();
parser.parse(inputStream, handler, metadata, parseContext);
String content = handler.toString();

我怎样才能让它变得更多optimized/faster?有什么建议吗?

正如@Gagravarr 在评论中提到的,这不是 Tika 缓慢,因为 Tesseract 是 CPU 消耗过程。

为了处理它,我使用 FIFO 方法在另一台服务器上分离了这个过程。这样一次只处理一个文件。