描述问题
我正在评估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,我希望这些组件能在服务器端进行管理。
3条答案
按热度按时间oogrdqng1#
你好,DarioBernardo。你能分享一下PDF文档(
c_20230111133942393_2525540.pdf
)吗?xzlaal3s2#
你好,@christinestraub,感谢你查看我的问题。很遗憾的是,我不能分享这份文档,但我相信这个问题在大多数希腊文档中都是可复制的。我想提一下的是,这份文档是一份纸质文件的扫描件,因此它是基于图像制作的。
ghhaqwfi3#
我想要提供一些关于这个问题的额外背景信息。我在网上搜索了可以协助复现问题的公共可用PDF文档。我已经确认,当API尝试对PDF中的图像字符执行OCR时,会出现这个问题。具体来说,当PDF是一份文件的扫描件时,API背后的OCR工具无法识别希腊字符,并用ASCII字符代替它们。然而,如果内容可以直接从PDF中读取,就会提供正确的非ASCII Unicode转义字符。这可能是由于Tesseract(我认为是API背后的OCR工具)的限制所致。
例如,你可以使用here这个文档进行测试。文档标题作为图片的一部分没有被正确识别,而文档的其他部分(基于文本的)则被准确处理。