我pdftools
在 R 中使用从扫描的和基于文本的 PDF 文件中提取文本。一个问题是§
性格。tesseract 无法识别这一点。
我查看了以下链接: CRAN tesseract package vignette
我尝试了以下方法:
我找到了配置文件,
tesseract_info()
并digits
在configs
.digits
文件内容是这样的:tessedit_char_whitelist 0123456789.
编辑后看起来像这样:
tessedit_char_whitelist 0123456789-$§.
这根本没有改变任何东西,我仍然无法提取§
. 它们仍然显示为8
.
第一步失败后,我尝试了以下操作:
filepng <- pdftools::pdf_convert(filePathPDF, dpi = 600) specs <- tesseract("deu", options = list(tessedit_char_whitelist = "1234567890-.,;:qwertzuiopüasdfghjklöäyxcvbnmQWERTZUIOPÜASDFGHJKLÖÄYXCVBNM@߀!$%&§/()=?+")) text <- tesseract::ocr(filepng, engine = specs)
这个也失败了。我绝不是 OCR 方面的专家,而 tesseract 在文档方面还有改进的空间。
如何§
以正确的方式添加到要识别的字符列表中,以便它适用?
更新
§
当我language
从参数列表中删除时,以下工作可以识别:
charlist <- tesseract(options = list(tessedit_char_whitelist = " 1234567890-.,;:qwertzuiopüasdfghjklöäyxcvbnmQWERTZUIOPÜASDFGHJKLÖÄYXCVBNM@߀!$%&§/()=?+"))
text <- tesseract::ocr(filepng, engine = charlist)
但这一次,我失去了德语变音符号。我不知道如何同时指定语言和 char_whitelist。根据文档,tesseract()
接受语言参数和选项参数。但这似乎不起作用。有任何想法吗?
更新: 我尝试在命令行中使用 tesseract(MacOS Catalina 10.15.7)。
我首先将扫描的 PDF 文件转换为图像,然后使用它:
tesseract fileConverted.tiff fileToText
它创建fileToText.txt
. 它确实识别§
. 所有这些都被正确识别。但是无法正确识别德语变音符号,因为我根本没有指定语言。当我对language
参数使用相同的命令时
tesseract fileConverted.tiff fileToText -l deu
德语变音符号被正确识别,但§
不是。
我更改的digits
配置文件在这里:
/usr/local/Cellar/tesseract/4.1.1/share/tessdata/configs
我的理解是:这不是 R 特有的问题,而是 tesseract 本身发生的。同时设置tessedit_char_whitelist
和语言似乎是不可能的,或者我错过了一些可怕的东西。