scan, split, OCR, prepare for LLM
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

corrector.py 653B

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) -> ParsedBlock: ...
  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)