没有安装Tesseract的Apache Tika OCR



我正在使用Apache Tika Parser将PDF文件解析为文本。一些PDF可能包含扫描的文档。Apache Tika使用Tesseract将文本识别为图像。但是,没有带有Tesseract的JAR库,用户应在操作系统中将Tesseract安装为独立应用程序。如何在不安装Tesseract的情况下使用Apache Tika的Tesseract?我尝试将Tesseract文件夹添加到ClassPath,并按照以下方式进行配置:

TesseractOCRConfig config = new TesseractOCRConfig();
config.setTesseractPath("tesseract");
config.setTessdataPath("tesseract/tessdata");
PDFParserConfig pdfConfig = new PDFParserConfig();
pdfConfig.setOcrStrategy(PDFParserConfig.OCR_STRATEGY.OCR_AND_TEXT_EXTRACTION);
ParseContext parseContext = new ParseContext();
parseContext.set(PDFParserConfig.class, pdfConfig);

但是我得到了:

org.apache.commons.io.IOExceptionWithCause: Unable to end a page
    at org.apache.tika.parser.pdf.AbstractPDF2XHTML.endPage(AbstractPDF2XHTML.java:428)
    at org.apache.tika.parser.pdf.PDF2XHTML.endPage(PDF2XHTML.java:162)
    at org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:393)
    at org.apache.tika.parser.pdf.PDF2XHTML.processPage(PDF2XHTML.java:147)
    at org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:319)
    at org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:266)
    at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:117)
    ... 43 common frames omitted
Caused by: org.apache.tika.exception.TikaException: Tesseract is not available. Please set the OCR_STRATEGY to NO_OCR or configure Tesseract correctly
    at org.apache.tika.parser.pdf.AbstractPDF2XHTML.doOCROnCurrentPage(AbstractPDF2XHTML.java:321)
    at org.apache.tika.parser.pdf.AbstractPDF2XHTML.endPage(AbstractPDF2XHTML.java:418)
    ... 49 common frames omitted

还尝试使用消耗文件的TESS4J库,但是我需要从InputStream中解析而不将其缓存到硬盘驱动器中。谁能帮我配置Apache Tika和Tesseract?

tika在引擎盖下使用Google tesseract来进行文本。TESS4J无济于事,也是Tesseract包装器有2个可能的解决方案

  1. 将Tesseract安装在机器上
  2. 使用tikaserver- https://cwiki.apache.org/confluence/display/display/tika/tikaserver-它包含内部的tesseract,并将REST API暴露于OCR

如果您愿意,可以检查使用Tika服务器的我的示例Java项目:https://github.com/marekkapowicki/nlp

相关内容

  • 没有找到相关文章

最新更新