从 PDF 段落/文本容器中提取语言标签

问题描述 投票:0回答:1

我正在尝试使用 Python 3.9 从 PDF 段落中提取语言标签。

我需要什么: 我需要检查整个 pdf 文件中的所有语言标签是否相同,使用 pdfminer 库,我能够提取此 LTTextBoxHorizonal 对象的一些属性,如字体、大小、颜色和坐标,但在对象局部变量中挖掘后,我仍然找不到部分与语言标签相关。我知道如何为文件本身获取它,但它不会为文件中的每个容器检测到它。我想知道 Adobe Acrobat 如何获取有关它的信息以及如何到达那里。

这里我找到了一些关于本地化设置的信息,但我仍然找不到对象中相应的数据。有谁知道如何进入该房产吗?

我为此研究的关于PDF的文章——解释PDF的结构

这就是我分析 PDF 中的容器的方法:

  from pdfminer.high_level import extract_pages, extract_text
  from pdfminer.layout import LTTextContainer, LTChar, LTRect, LTFigure 
   
   def extract_paragraph_metadata(pdf_path):
    for pagenum, page in enumerate(extract_pages(pdf_path)):
        for element in page:
            #if element is text
            if isinstance(element,LTTextContainer):
               # Function to extract text from the text block
                d = element.analyze
                print(d) 

Paragraphg metadata tags

python python-3.x pdf
1个回答
0
投票

参见 ISO 32000-2 第 14.9.2 节。快速阅读一下,自然语言似乎是一个继承的属性 - 即,如果与父级不同,它只会在本地指定:

“文档内容所使用的自然语言应以分层方式确定, 基于可选的 Lang 条目 (PDF 1.4) 是否存在于多个可能位置中的任何一个中。在 最高级别,文档的默认语言(适用于文本字符串和内部文本 内容流)可以由文档目录字典中的 Lang 条目指定(参见 7.7.2, “文档目录词典”)。这适用于内容流中的内容和任何文本 字符串,包括未包含在结构层次结构中的文本字符串,例如, 元数据、大纲条目和可选内容组的名称。在此之下,语言可能是 指定用于以下项目:“

(本段后面是可以指定自然语言的位置列表,因此可以被覆盖。除非 PDFMiner 支持这些东西,否则看起来会很复杂。)

© www.soinside.com 2019 - 2024. All rights reserved.