unstructured 文本提取问题:希腊语言PDF使用错误的字母渲染

iaqfqrcu  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(64)

描述问题

我正在评估UnstructuredClient处理PDF文档的能力,并遇到了一个希腊语言文本提取的问题。当我尝试从希腊语的PDF文档中提取文本时,输出的文本显示为非希腊字母,无法阅读,因此无法用于我的用途。

重现问题

这是我正在使用的代码,在任何希腊文文档上运行都会重现错误:

from unstructured_client import UnstructuredClient
from unstructured_client.models import shared
from unstructured_client.models.errors import SDKError

s = UnstructuredClient(
    api_key_auth=DLAI_API_KEY,
    server_url=DLAI_API_URL,
)

filename = "example_files/c_20230111133942393_2525540.pdf"
with open(filename, "rb") as f:
    files=shared.Files(
        content=f.read(), 
        file_name=filename,
    )

req = shared.PartitionParameters(
    files=files,
    strategy='hi_res',
    pdf_infer_table_structure=True,
    languages=["gr"],
)
try:
    resp = s.general.partition(req)
    print(json.dumps(resp.elements[:3], indent=2))
except SDKError as e:
    print(e)

预期行为

我期望提取的文本能准确地表示PDF文档中的原始希腊字符。

实际结果

提取的文本包含不在希腊字母表中的字符,使文本无法阅读。以下是我得到的一个片段:

{
    "type": "NarrativeText",
    "element_id": "aaad19db9a99367b392003c6db4a7e2b",
    "text": "\u00a3635 TO TGS TOV KTV sPSopmva E5 yihddav oySovia Svo ko Sixx entd exatootdv (176.082,17) EURO, nov avriotogi o8 g&ivia exatoppudpia (60.000.000) Spayy\u00e9e,",
    "metadata": {
      "filetype": "application/pdf",
      "languages": [
        "gr"
      ],
      "page_number": 1,
      "parent_id": "1b406d8798c823dcd1d195f4a4f331dd",
      "filename": "c_20230111133942393_2525540.pdf"
    }
  }

额外背景

  • 使用最新版本的Unstructured SDK。
  • 问题在多个希腊文文档中始终出现。

这个问题是否可能是由于缺少希腊语OCR插件?因为我正在使用API,我希望这些组件能在服务器端进行管理。

oogrdqng

oogrdqng1#

你好,DarioBernardo。你能分享一下PDF文档(c_20230111133942393_2525540.pdf)吗?

xzlaal3s

xzlaal3s2#

你好,@christinestraub,感谢你查看我的问题。很遗憾的是,我不能分享这份文档,但我相信这个问题在大多数希腊文档中都是可复制的。我想提一下的是,这份文档是一份纸质文件的扫描件,因此它是基于图像制作的。

ghhaqwfi

ghhaqwfi3#

我想要提供一些关于这个问题的额外背景信息。我在网上搜索了可以协助复现问题的公共可用PDF文档。我已经确认,当API尝试对PDF中的图像字符执行OCR时,会出现这个问题。具体来说,当PDF是一份文件的扫描件时,API背后的OCR工具无法识别希腊字符,并用ASCII字符代替它们。然而,如果内容可以直接从PDF中读取,就会提供正确的非ASCII Unicode转义字符。这可能是由于Tesseract(我认为是API背后的OCR工具)的限制所致。
例如,你可以使用here这个文档进行测试。文档标题作为图片的一部分没有被正确识别,而文档的其他部分(基于文本的)则被准确处理。

相关问题