unstructured bug/multipage_sections不起作用

zy1mlcev  于 23天前  发布在  其他
关注(0)|答案(1)|浏览(25)

描述bug

块中包含来自多个页面的元素,尽管

重现方法

chunks = chunk_by_title(
data,
max_characters=self.character_limit,
multipage_sections=False,
include_orig_elements=True,
)

for c in chunks:
        page_size = None
        last_e = None
        for e in c.metadata.orig_elements:
            new_page_size = e.metadata.coordinates.system.__dict__
            new_e = e
            print("page", e.metadata.page_number)
            if page_size is not None and page_size != new_page_size:
                raise ValueError("BUG")
            page_size = new_page_size
            last_e = new_e

预期行为

块中所有元素只有一个页面编号。

环境信息

OS版本:Windows-10-10.0.22631-SP0
Python版本:3.11.9
unstructured版本:0.14.10
unstructured-inference版本:0.7.36
pytesseract版本:0.3.10
Torch版本:2.4.0+cu121
未安装Detectron2
PaddleOCR版本:2.8.1
Libmagic未安装

附加上下文

已通过pip安装libmagic。
两页PDF是基于图像的。没有文本高亮显示。

uxh89sit

uxh89sit1#

快速修复

pages: dict[int, list[Element]] = {}
  for element in data:
      if element.metadata.page_number not in pages:
          pages[element.metadata.page_number] = []
      pages[element.metadata.page_number].append(element)
  for _, elements in pages.items():
      yield from self._chunk_page(elements)

def _chunk_page(self, data: Iterable[Element]) -> Iterable[Chunk]:
    chunks = chunk_elements(
        data,
        max_characters=self.character_limit,
        include_orig_elements=True,
    )
   return chunks

相关问题