scan, split, OCR, prepare for LLM
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

corrector.py 646B

1234567891011121314151617181920212223242526
  1. from __future__ import annotations
  2. import logging
  3. from typing import Protocol
  4. from src.ocr.paddle_engine import ParsedBlock
  5. logger = logging.getLogger(__name__)
  6. class Corrector(Protocol):
  7. def __call__(self, block: ParsedBlock) -> None: ...
  8. def apply_corrector(
  9. blocks: list[ParsedBlock],
  10. corrector: Corrector,
  11. name: str,
  12. skip_formulas: bool = True,
  13. ) -> None:
  14. for i, block in enumerate(blocks):
  15. if skip_formulas and block.label == "formula":
  16. continue
  17. logger.info("%s: блок %d/%d...", name, i + 1, len(blocks))
  18. corrector(block)
  19. logger.info("%s: завершено", name)