将 HOCR 输出转换为字符串(用于正则表达式)的策略是啥?
Posted
技术标签:
【中文标题】将 HOCR 输出转换为字符串(用于正则表达式)的策略是啥?【英文标题】:What are the strategies to convert an HOCR output to a string (for regex purposes)?将 HOCR 输出转换为字符串(用于正则表达式)的策略是什么? 【发布时间】:2019-12-17 09:20:52 【问题描述】:我正在使用 Pytesseract 并希望将 HOCR 输出转换为字符串。当然,这样的功能是在 Pytesseract 中实现的,但我想了解更多关于完成它的可能策略 thx
from pytesseract import image_to_pdf_or_hocr
hocr_output = image_to_pdf_or_hocr(image, extension='hocr')
【问题讨论】:
【参考方案1】:由于hOCR 是一种.xml,我们可以使用.xml 解析器。
但首先我们需要将 tesseract 的二进制输出转换为 str:
from pytesseract import image_to_pdf_or_hocr
hocr_output = image_to_pdf_or_hocr(image, extension='hocr')
hocr = hocr_output.decode('utf-8')
现在我们可以使用xml.etree 来解析它:
import xml.etree.ElementTree as ET
root = ET.fromstring(hocr)
xml.etree 为我们提供了一个text iterator,我们可以将其结果连接到一个字符串中:
text = ''.join(root.itertext())
【讨论】:
以上是关于将 HOCR 输出转换为字符串(用于正则表达式)的策略是啥?的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式,用于验证不同格式的字符串,用于特殊时间转换[重复]
正则表达式 - 将 HTML 转换为有效的 XML 标记 [重复]