代码之家  ›  专栏  ›  技术社区  ›  Darshan Patel

使用Apache Tika+Tesseract提取扫描PDF的速度较慢

  •  3
  • Darshan Patel  · 技术社区  · 7 年前

    Apache Tika extract scanned PDF files ,它可以很好地扫描文档。但问题是,它占用了太多的时间和CPU利用率。

    就我而言, 15 MB 文件具有 23 pages 大约需要 ~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();
    

    如何使其更优化/更快?有什么建议吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Darshan Patel    6 年前

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

    为了处理这个问题,我在另一台服务器上使用 FIFO 方法这样一次只处理一个文件。