Buckets:
Corpus de copies de philosophie
Chaque copie possède son propre dossier, nommé avec le sujet en premier, puis le concours, l’année lorsqu’elle est connue et la note.
source.pdf: copie originale.images/: pages numérotées selon le PDF, y compris les pages vides conservées pour archivage.transcriptions_md/: toutes les transcriptions Markdown, y compris les versions indépendantes de chaque modèle. Les anciens exports et leurs variantes sont également à la racine de ce dossier ; les noms identiques sont distingués par un suffixe stable.transcriptions_json/: JSON nettoyés faisant autorité pour leurs exports Markdown correspondants.metadata.json: source, empreintes, pages transcrites ou exclues, modèles et paramètres.provenance/: réponses brutes par page et éventuel début de transcription fourni.
Les pages déclarées vides par l’utilisateur sont exclues des appels OCR. Les transcriptions ne sont ni fusionnées ni corrigées silencieusement. index.json recense les copies intégrées. Les dossiers techniques d’exécution restent à l’extérieur du corpus ; aucun jeton d’accès n’est inclus ici.
import_transcriptions.py importe les résultats vérifiés, sans écraser un fichier existant différent.
Transcriptions préexistantes UltraClean
Les copies importées depuis dissertations_JSON_UltraClean contiennent les JSON originaux, leurs exports Markdown et metadata.json. Le texte des champs est conservé intégralement, dans l’ordre de la dissertation, sans nouvel OCR. Les PDF et images ne sont pas inclus dans cette source JSON. Le concours est repris des métadonnées sans supposer une voie externe ou interne. Les années inconnues et concours blancs restent identifiés comme tels.
Les deux versions de « La valeur de la nature », ENS AL 2024, 19/20, sont conservées séparément dans le même dossier ; aucune fusion n’est effectuée.
import_ultraclean.py importe ces copies ; rebuild_index.py reconstruit l’index de tous les dossiers. Les deux scripts d’import préservent ainsi les entrées des autres collections.
Import de Resultats_OCR
python CORPUS/import_resultats_ocr.py conserve tous les fichiers de cette collection (Markdown, CSV, DOCX, PDF), octet pour octet. Les Markdown sont rangés dans transcriptions_md/, à plat, en conservant les variantes et les chemins d’origine dans les métadonnées. Les autres fichiers (CSV, PDF, DOCX) sont archivés dans provenance/imports_resultats_ocr/. Les fichiers sources restent en place. Les fichiers ne sont pas des OCR nouvellement calculés ni des transcriptions validées.
Les associations utilisent les PDF présents dans le lot source, les rapprochements de texte et, à défaut, un candidat unique par sujet et note. Ce dernier cas reste explicitement non vérifié visuellement. Lorsque plusieurs copies sont possibles, le lot reste distinct avec un identifiant stable et sans PDF arbitrairement choisi. Les métadonnées conservent les candidats et preuves disponibles. Une divergence de note avec le nom original reste consultable dans la provenance.
resultats_ocr_import.json permet de retrouver chaque fichier original et son empreinte ; resultats_ocr_plan.json détaille les associations. Bilan de l’import.
python CORPUS/export_images.py exporte à 220 dpi toutes les pages des PDF intégrés. Le script reprend un export interrompu et conserve les images déjà présentes. --copy "nom du dossier" limite l’export à une copie. Les variantes PDF différentes sont exportées sous images/variants/. Chaque export possède un manifeste avec empreintes et correspondance page/image. Aucune page vide n’est éliminée automatiquement ; aucune requête OCR n’est lancée par ces scripts.
Couverture de SCANS
python CORPUS/sync_scans.py crée les dossiers manquants à partir des PDF de SCANS et de ses sous-dossiers, avec le sujet en premier, le PDF source et les métadonnées. Les PDF déjà intégrés sont reconnus par leur empreinte. Les copies différentes de même sujet et note restent distinctes. Aucun OCR ni export d’images n’est lancé par cette commande. scans_coverage.json conserve le résultat du dernier contrôle exhaustif.
Format de référence et régénération
Les JSON nettoyés de transcriptions_json/ font autorité pour leurs exports Markdown associés, référencés dans metadata.json (transcriptions[].source_json et output). Les réponses brutes de modèles dans provenance/ et les fichiers techniques metadata.json ou manifest.json ne sont pas des transcriptions nettoyées. Les versions provenant de modèles différents restent distinctes ; aucune priorité éditoriale n’est inventée entre elles.
python CORPUS/json_to_markdown.py: vérifier la concordance des exports UltraClean avec les JSON.python CORPUS/json_to_markdown.py --write: remplacer directement les Markdown dérivés par les exports des JSON et mettre à jour les empreintes, sans conserver les anciennes versions.python CORPUS/normalize_layout.py: vérifier qu’aucun déplacement ne reste à effectuer (--applypour une première migration).
Le convertisseur préserve l’ordre et le contenu des champs et refuse les schémas inconnus. Il accepte l’ancien champ /q comme alias de niveau. Il ne convertit pas les JSON bruts des appels OCR.
Les DOCX et TXT sont des formats hérités à convertir en Markdown, jamais des cibles pour de nouveaux OCR. L’inventaire _maintenance/conversions_pending.json liste ceux présents. Leurs originaux restent archivés. Les fragments fournis conservés dans provenance/ sont des pièces de traçabilité, pas des transcriptions courantes.
La migration est tracée dans _maintenance/layout_migration.json, avec les anciennes et nouvelles adresses et les empreintes. _maintenance/layout_before.zip conserve les fichiers de références antérieurs à la migration.
Tous les Markdown courants sont directement à la racine de transcriptions_md/, sans sous-dossier. python CORPUS/normalize_layout.py --flatten vérifie cette règle ; --apply effectue la migration. _maintenance/flatten_migration.json conserve la correspondance des chemins et les empreintes.
- Total size
- 2.14 GB
- Files
- 2,667
- Last updated
- Sep 19
- Pre-warmed CDN
- US EU US EU