如何使用TikaConfig和Tika命令行实用程序启用TesseractOCRParser



我已经安装了apache Tika 1.8,它运行得很好,只是OCR部分无法工作。我安装了Tesseract,它也正常工作。当我尝试发送带有图像的pdf时,我会得到以下信息。

警告:Tesseract OCR已安装,并将自动应用于图像f除非您已经从默认解析器中排除了TesseractOCRParser。Tesseract可能显著减慢内容提取(TIKA-2359(。自Tika 1.15(及之前的版本(起,Tesseract将自动调用。在Tika的未来版本中,用户可能需要通过TikaConfig。

我可以使用命令行实用程序配置TikaConfig吗?或者我必须克隆项目并更新pom并重建。我真的不想那样做。

这里有一些关于如何使用命令行实用程序和TikaConfig的信息,但我不知道如何使用它启用TesseractOCRParser。

任何帮助,不胜感激。

好吧,有了Apache Tika论坛上这篇文章的帮助,谢谢大家。

我设法使它工作起来。这是一个黑客,但它工作。我所做的是提取Tika应用程序Jar文件。然后找到PDFParser.properties并更改以下属性,如此

extractInlineImages true 
extractUniqueInlineImagesOnly false 
ocrStrategy ocr_and_text_extraction

然后找到TesseractOCRConfig.properties。并将此属性更改为1.

enableImageProcessing=1

保存上述属性文件。再把拉链拉起来。使用新的压缩jar文件,它现在可以从pdf文件中提取文本和图像文本。

我尝试了user3250052的方法,但无法以可执行的方式重新压缩jar文件。这是因为我自己对Java缺乏经验,但不管怎样,最不常用的方法是在调用tika:时调用自定义的tika配置文件

java -jar tika-app.jar --config=tika-config.xml image.pdf

这就是我的tika-config.xml的样子:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<properties>
<!--for example: <mimeTypeRepository resource="/org/apache/tika/mime/tika-mimetypes.xml"/>-->
<service-loader dynamic="true" loadErrorHandler="IGNORE"/>
<encodingDetectors>
<encodingDetector class="org.apache.tika.detect.DefaultEncodingDetector"/>
</encodingDetectors>
<translator class="org.apache.tika.language.translate.DefaultTranslator"/>
<detectors>
<detector class="org.apache.tika.detect.DefaultDetector"/>
</detectors>
<parsers>
<parser class="org.apache.tika.parser.DefaultParser"/>
<parser class="org.apache.tika.parser.pdf.PDFParser">
<params>
<param name="extractInlineImages" type="bool">true</param>
</params>
</parser>
</parsers>
</properties>

为了构建那个配置文件,我首先运行:

java -jar tika-app.jar --dump-current-config

这将为您转储默认配置。我把它放在tika-config.xml中,并添加了:

<parser class="org.apache.tika.parser.pdf.PDFParser">
<params>
<param name="extractInlineImages" type="bool">true</param>
</params>
</parser>

我从中收集到的https://cwiki.apache.org/confluence/display/tika/PDFParser%20(Apache%20PDFBox((选项1(。

尽管tesseract在默认情况下是启用的(因此OCR将在图像文件上开箱即用(,但如果没有设置该选项,PDF就不会获得OCRed,因为如上面的链接所述,"默认情况下,提取内联图像是关闭的,因为一些罕见的PDF每页包含数千个内联图像,并且它对性能、内存使用率和时间都有很大影响"。

现在,一切(图像文件上的OCR,或基于图像的PDF中的图像的OCR,以及基于文本的PDF的自然文本提取(都可以使用java应用程序tika。我在java服务器tika上找到了很多关于如何实现这一点的文档,但在java应用程序tika上却很少,所以我希望这能为某人节省我花了几个小时才弄清楚的时间(让我知道(。

我建议使用ocrStrategy auto

这尝试提取,然后返回OCR

最新更新