Closed remidbs closed 3 years ago
(cf mail Aurélie 24 juin, corrigé pour ce cas particulier) (pour corriger : utiliser l'argument force_ocr)
Pour un PDF, il semble que pdfplumber permette de détecter les caractères endommagés.
from typing import Any, Dict, List, Optional import pdfplumber from pdfplumber.page import Page def _extract_pages(filename: str) -> List[Page]: pdf = pdfplumber.open(filename) return pdf.pages def _extract_characters(filename: str) -> List[Dict[str, Any]]: return [char for page in _extract_pages(filename) for char in page.chars] def _is_corrupted(character: Dict[str, Any]) -> bool: return '(cid' in character['text'] def _corrupted_characters_rate(filename: str) -> float: chars = _extract_characters(filename) return sum([_is_corrupted(char) for char in chars]) / len(chars)
Sur 900 APs:
Il y a donc assez peu d'AP corrompus. Pour les détecter, il faudrait passer sur tous les APs. Comme ça se produit seulement lorsqu'il y a déjà un OCR, il suffit de faire le check que dans ce cas (pour les futurs APs)
cf https://github.com/Envinorma/exploration/pull/1
(cf mail Aurélie 24 juin, corrigé pour ce cas particulier) (pour corriger : utiliser l'argument force_ocr)
Méthodologie
Pour un PDF, il semble que pdfplumber permette de détecter les caractères endommagés.
TODO
Résultats
Sur 900 APs:
Il y a donc assez peu d'AP corrompus. Pour les détecter, il faudrait passer sur tous les APs. Comme ça se produit seulement lorsqu'il y a déjà un OCR, il suffit de faire le check que dans ce cas (pour les futurs APs)
Liste des AP avec au moins un caractère corrompu