r - 如何更改 tesseract 配置以识别§并在 R 中使用 pdftools::pdf_ocr_text 应用?
问题描述
我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
和语言似乎是不可能的,或者我错过了一些可怕的东西。
解决方案
如上所述,tesseract 4 不支持设置白名单。要解决该问题,您可以使用命令行开关。您需要将 OCR 引擎模式设置为“仅限原始 Tesseract”,--oem 0
然后用于-c tessedit_char_whitelist=abc...
通过命令行直接传递您的白名单。
总的来说,它应该看起来像这样:
tesseract fileConverted.tiff fileToText --oem 0 -l deu -c tessedit_char_whitelist=0123456789-$§
推荐阅读
- javascript - 将 php 对象传递给 javascript 函数
- reactjs - react-admin 没有'访问控制允许来源'
- css - CSS背景背景纯色问题与行高
- antd - 如何隐藏小型设备(移动视图)的antd数据表列?
- angular - 使用 Angular cli 安装 ngrx/data 时,控制台中出现 No provider for HttpClient 错误
- c++ - 为什么我不能拥有某些私有成员函数?
- algorithm - 如何避免嵌套 For 循环来选择组合?
- sql-server - 如何使用varchar数据类型的partitionColumn读取scala spark上的表?
- html - 背景图像不适用于 Firefox 48 以上版本和其他浏览器中的选择选项
- angular - Angular Material Select 在选项字段中显示函数名称