Анализ структуры

Поддерживаемые компоненты анализа структуры:

SimpleSorting

class manuscript.layouts.SimpleSorting(max_splits=10, use_columns=True)[исходный код]

Базовые классы: BaseLayout

Группирует обнаруженные слова в строки и задаёт порядок чтения.

Параметры:
  • max_splits (int, optional) – Максимальное число попыток разделить страницу на колонки. По умолчанию 10. При 0 предел числа итераций рассчитывается по горизонтальному размеру регионов.

  • use_columns (bool, optional) – Разделять слова на уровне Page на колонки перед группировкой. По умолчанию True.

Примеры

>>> from manuscript.layouts import SimpleSorting
>>> layout = SimpleSorting(use_columns=False)
>>> page = layout.predict(page)

См. также

ReadingSorting

Упорядочить обнаруженные регионы и при необходимости определить вложенность.

predict(page, image=None)[исходный код]

Группирует и сортирует регионы, изменяя исходную страницу.

Параметры:
  • page (Page) – Страница, регионы которой нужно упорядочить.

  • image (numpy.ndarray, optional) – Принимается для совместимости с Pipeline; не используется.

Результат:

Исходный Page с обновлённой группировкой и порядком дочерних элементов.

Тип результата:

Page

ReadingSorting

class manuscript.layouts.ReadingSorting(mode='sort', containment_overlap=0.5, row_overlap=0.5, infer_columns=True)[исходный код]

Базовые классы: BaseLayout

Задаёт порядок чтения регионов и при необходимости выстраивает их вложенность.

Параметры:
  • mode ({"sort", "containment"}, optional) – «sort» меняет порядок дочерних элементов, сохраняя родителей. «containment» также помещает регионы уровня Page в обнаруженные строки и блоки. По умолчанию «sort».

  • containment_overlap (float, optional) – Чтобы элемент стал дочерним, его полигон должен быть покрыт полигоном родителя хотя бы на эту долю площади. Значение больше 0 и не больше 1; по умолчанию 0.5.

  • row_overlap (float, optional) – Минимальное вертикальное пересечение, делённое на меньшую высоту bbox, для объединения регионов в одну строку чтения. Значение в (0, 1]; по умолчанию 0.5.

  • infer_columns (bool, optional) – Определять колонки по горизонтальным промежуткам и располагать их слева направо. По умолчанию True. В режиме containment также создавать блоки для колонок, если у Page ещё нет текстовых блоков.

Примеры

>>> from manuscript.layouts import ReadingSorting
>>> layout = ReadingSorting(mode="containment", containment_overlap=0.5)
>>> page = layout.predict(page)

См. также

SimpleSorting

Создать строки и блоки из обнаруженных слов.

predict(page, image=None)[исходный код]

Меняет порядок и вложенность элементов в исходном дереве документа.

Параметры:
  • page (Page) – Страница, регионы которой нужно упорядочить.

  • image (optional) – Принимается для совместимости с Pipeline; не используется.

Результат:

Исходный Page с обновлённым порядком дочерних элементов, а в режиме containment — с определёнными родительскими связями и необязательными блоками колонок.

Тип результата:

Page