遇见数据集

WP2.1 OCR Sample with IIIF Manifests - ChandraV2

收藏
Zenodo2026-09-29 更新2026-10-01 收录
官方服务:

资源简介:

DECIDON — Transcriptions OCR et segmentation des débats parlementaires français (1881–1940), Chandra v2 Ce jeu de données rassemble les résultats de reconnaissance optique de caractères (OCR) et de segmentation de 3 403 documents, soit 81 042 pages, issus des débats de la Chambre des députés et du Sénat numérisés par la Bibliothèque nationale de France et accessibles dans Gallica. Les textes sont intégralement en français. Pour chacun de ces documents, les sorties OCR (dossier 2606-chandrav2/) sont accompagnées de manifests IIIF source (dossier manifests/) et de manifests enrichis (dossier 2606-manifests-chandrav2/) permettant de consulter les blocs transcrits sur les images des pages. Ces données sont produites dans le cadre du projet DECIDON, financé par l’Agence nationale de la recherche (ANR-25-CE38-4063), consacré à la circulation du discours politique entre le Parlement et la presse sous la Troisième République. Elles constituent une étape vers la recherche d’interventions par parlementaire, sujet ou date : retracer qui a dit quoi, et quand. Voir la présentation du projet sur le site de l’ANR. Sources et périmètre Le corpus de départ a été constitué à partir des listes de numéros de deux périodiques de Gallica : Journal officiel de la République française. Débats parlementaires. Chambre des députés, notice cb328020951 ; Journal officiel de la République française. Débats parlementaires. Sénat (1880), notice cb34363182v. Un document désigne ici un numéro numérisé identifié par un ARK Gallica. Une page désigne une image ou vue du document, indépendamment de sa pagination imprimée. Un numéro et une séance parlementaire ne sont pas nécessairement équivalents ; les dates de publication et de séance peuvent également différer. Les sources ont été fournies par la BnF et téléchargées le 14 octobre 2025 sous forme d’archives ZIP contenant les images JPEG, l’OCR antérieur au format ALTO et des manifests METS. Pour des raisons de volumétrie et de droits, ces archives sources ne sont pas incluses dans ce dépôt. Les liens vers des images ou fichiers ALTO dans les manifests sont des références à des ressources externes. L’inventaire complet disponible dans le dossier (fichiers CSV) recense le corpus de départ suivant, dont seule une partie (environ 25%) est incluse dans cet export OCR : Série d’origine (source_chamber) Documents Pages selon l’inventaire CSV Années de l’inventaire Chambre des députés (chambre) 7 469 221 436 1881–1948 Sénat (senat) 5 064 90 766 1881–1940 Total 12 533 312 202 1881–1948 L’année 1948 correspond, dans la documentation des sources, à la publication rétrospective des séances des comités secrets de 1940 ; elle n’est pas représentée dans les fichiers OCR de cet export. Le corpus de référence contient 12 533 documents/ARK distincts et 312 202 images distinctes, selon la colonne total_pages du CSV. Les producteurs ont identifié des livraisons en double : la somme de jpg count, 312 750, inclut 548 images supplémentaires liées à ces doublons. Pour la volumétrie dédupliquée, utiliser total_pages. Volumétrie de cet export Les nombres ci-dessous résultent du comptage des JSON et de leurs pages, avec rattachement à la série par source_chamber dans le CSV. Les périodes correspondent au champ year des documents présents ; elles ne signifient pas que toutes les dates intermédiaires sont couvertes. Série Documents OCR Pages OCR Manifests source Manifests enrichis Canvases dans chacun des deux ensembles IIIF Années Chambre des députés 1 701 51 035 1 701 1 701 51 035 1881–1940 Sénat 1 702 30 007 1 702 1 702 30 007 1881–1940 Total 3 403 81 042 3 403 3 403 81 042 1881–1940 Les trois formats couvrent les mêmes 3 403 documents : leurs effectifs ne doivent pas être additionnés pour mesurer la taille du corpus. Les nombres de pages OCR et de canvases concordent pour chaque document. Production et échantillonnage Les transcriptions et blocs ont été produits avec Chandra OCR 2, développé par Datalab. La version disponible au 25 septembre 2026 a été utilisée : il s’agit du modèle datalab-to/chandra-ocr-2 qui correspond à la release GitHub v0.2.0, publiée le 18 mars 2026. Le traitement porte sur des images de travail d’environ 2 000 pixels de large, de résolution inférieure aux images référencées par les canvases Gallica. Dans les JSON de cet export, 76 194 pages ont une largeur de 2 048 pixels ; les autres largeurs observées vont de 1 845 à 2 047 pixels. La chaîne de transformation est la suivante : images des ZIP BnF → reconnaissance et segmentation Chandra → export JSON par document → insertion des blocs dans les manifests IIIF, avec remise à l’échelle des coordonnées. Les documents ont été sélectionnés par échantillonnage aléatoire stratifié par chambre parlementaire (colonne Rand du fichier CSV). Organisation des fichiers et identifiants Les archives 2606-chandrav2.tar.xz, manifests.tar.xz et 2606-manifests-chandrav2.tar.xz se décompressent dans une même racine pour reconstituer l’arborescence ci-dessous. L’archive scripts.tar.xz reconstitue le dossier scripts/. L’archive reports.tar.xz contient reports/audit.md et reports/audit.json. Le README et les CSV sont fournis à côté des archives. L’arborescence ocr-processing/ contient les fichiers suivants : ocr-processing/ ├── 2606-chandrav2/ # Sorties natives OCR et segmentation │ └── 1/6218709.json ├── manifests/ # Manifests IIIF source BnF / Gallica │ └── 1/6218709.json └── 2606-manifests-chandrav2/ # Manifests IIIF avec annotations Chandra └── 1/6218709.json Les sous-dossiers numériques sont un détail de rangement sans signification documentaire. Ils sont cohérents entre les exports : conserver le même chemin relatif permet de retrouver les trois représentations d’un document. Le nom du fichier est dérivé de l’ARK : retirer ark:/12148/bpt6k, puis le dernier caractère. Par exemple, ark:/12148/bpt6k6218709k correspond à 6218709.json et au ZIP source 6218709.zip. Ce nom seul ne permet pas de restituer le dernier caractère de l’ARK : utiliser l’inventaire ou l’identifiant du manifest pour retrouver l’ARK complet. Inventaire du corpus Les fichiers d’inventaire disponibles à la racine sont : decidon_documents_status_20260402T180205Z - status_20260402.csv : inventaire de 12 533 documents avec métadonnées et suivi des traitements ; decidon_documents_status_20260402T180205Z - documentation.csv : dictionnaire des champs et documentation des colonnes de l’inventaire. Le CSV permet notamment la correspondance entre fichiers et ARK : Champ Signification source_chamber Série d’origine : chambre ou senat ; utilisée pour les comptages ci-dessus. chamber Désignation de la chambre extraite du METS. year Année issue de la liste Gallica utilisée pour constituer le corpus. ark_short, ark_full Identifiants Gallica, court et complet. zip_path Chemin dans l’archive BnF d’origine, par exemple 2025-10-14/1/6218709.zip. Le suffixe 1/6218709 permet de retrouver les JSON. date_raw, date_iso Date issue du METS et sa normalisation ; vérifier sa relation avec la séance recherchée. provenance Organisme de conservation indiqué dans le METS. pagination_first, pagination_last Première et dernière valeurs de pagination repérées ; leur différence ne donne pas nécessairement le nombre de vues. total_pages Nombre de pages du document selon l’inventaire. status État de l’analyse des sources ; success ne signifie pas que le document est inclus dans cet export OCR. Rand, Traité Chandra Colonnes de suivi de production, conservées dans les fichiers actuels. jpg count, has_duplicate Décompte JPEG incluant les doublons de livraison et marqueur de doublon ; utiliser total_pages pour les volumes distincts. Format des sorties Chandra : 2606-chandrav2/ Ces JSON ne sont pas des manifests IIIF. Ils contiennent une liste de pages, chacune décrite par ses dimensions et ses blocs. L’extrait ci-dessous reprend le début du document 1/6218709.json ; les autres blocs et pages sont omis. { "sources": ["6218709.zip"], "num_pages": 20, "pages": [ { "page_num": 0, "source": "6218709.zip", "page_box": [0, 0, 2048, 2783], "blocks": [ { "bbox": [145, 269, 561, 308], "label": "Page-Header", "content": "Journal officiel du 13 Juillet 1918" } ] } ] } Champ Description sources Noms des fichiers sources traités. num_pages Nombre de pages du document, égal à la longueur de pages dans les fichiers vérifiés. pages Liste ordonnée des pages. page_num Index à partir de 0, indépendant du numéro imprimé. source Nom du fichier source de la page. page_box Rectangle de la page, sous la forme [x1, y1, x2, y2], en pixels de travail. blocks Liste ordonnée des blocs détectés ; cet ordre encode implicitement l’ordre de lecture proposé. bbox Rectangle du bloc [x1, y1, x2, y2], dans le repère de la page de travail. label Catégorie du bloc. content Transcription, éventuellement enrichie de balises HTML. Les catégories observées sont Text, Page-Header, Section-Header, Table, List-Group, Page-Footer, Image, Footnote, Caption, Equation-Block, Table-Of-Contents, ainsi qu’une occurrence de block. Le contenu peut comporter des paragraphes, titres, exposants, gras, italiques, listes, tableaux et balises <img>. Les sauts de ligne peuvent être encodés par \n dans le JSON, décodés en caractères de nouvelle ligne par un lecteur JSON. Des balises <br/> sont également présentes : il faut tenir compte des deux formes. Le HTML ne conserve pas nécessairement l’apparence exacte du document imprimé. Les boîtes englobantes sont rectangulaires : elles simplifient les contours réels des blocs, qui peuvent être polygonaux. L’ordre des blocs est une sortie du modèle, et indique l’ordre de lecture prédit. Manifests IIIF source : manifests/ Les manifests BnF / Gallica utilisent IIIF Presentation API 3, avec notamment @context, id, type: "Manifest", label, metadata et items. Chaque élément de items est un canvas représentant une page, avec ses dimensions, une référence d’image IIIF, une vignette et, selon le document, des liens vers l’OCR ALTO de Gallica. Un éventuel champ « Taux OCR » provient des métadonnées source : il ne constitue pas une évaluation des résultats Chandra. Manifests enrichis : 2606-manifests-chandrav2/ Les manifests enrichis reprennent la structure source et placent, dans annotations des canvases ayant des blocs, une AnnotationPage Chandra contenant les annotations de blocs. Les références aux annotations OCR source Gallica sont remplacées dans les 81 042 canvases, y compris par une liste vide pour les pages sans bloc. Les références aux images et les liens seeAlso vers les ALTO restent conservés. Ce remplacement est une transformation à prendre en compte pour les applications souhaitant consulter simultanément les deux OCR. Exemple d’annotation pour le premier bloc présenté ci-dessus : { "id": "https://openapi.bnf.fr/iiif/presentation/v3/ark:/12148/bpt6k6218709k/f1/annotations/1", "type": "Annotation", "motivation": "commenting", "body": { "type": "TextualBody", "value": "Page-Header: Journal officiel du 13 Juillet 1918", "format": "text/html" }, "target": "https://openapi.bnf.fr/iiif/presentation/v3/ark:/12148/bpt6k6218709k/f1/canvas#xywh=264,490,758,71" } Sortie Chandra Représentation IIIF enrichie pages[n] Canvas items[n]. blocks[] Annotations dans une page d’annotations dont l’identifiant se termine par /annotationpage/chandra.json. label et content body.value, composé du label, du préfixe : et du contenu OCR ; body.format vaut text/html. bbox Région du canvas ciblée par #xywh=x,y,largeur,hauteur, après remise à l’échelle. Coordonnées et résolution Les coordonnées Chandra utilisent l’image de travail ; les cibles IIIF utilisent les dimensions du canvas Gallica. Pour une page d’origine (0, 0), de largeur W et hauteur H, et un canvas de dimensions Wc × Hc, la conversion géométrique est : sx = Wc / W ; sy = Hc / H x = x1 × sx ; y = y1 × sy largeur = (x2 − x1) × sx ; hauteur = (y2 − y1) × sy Les valeurs sérialisées sont entières et comportent donc des arrondis. Dans l’exemple, l’image de travail mesure 2048 × 2783 pixels et le canvas 3731 × 5070 pixels. Le rectangle [145, 269, 561, 308] devient xywh=264,490,758,71. Utiliser les coordonnées déjà présentes dans les manifests enrichis pour leur affichage, sans appliquer une seconde remise à l’échelle. Les identifiants des annotations ajoutées reprennent le domaine BnF. Ils identifient les objets dans les fichiers, mais ne garantissent pas que les annotations Chandra soient hébergées ou récupérables à ces adresses. Pour consulter les résultats de cet export, charger le manifest enrichi fourni. Utilisation Pour analyser les transcriptions, les catégories et l’ordre des blocs, utiliser 2606-chandrav2/. Pour accéder aux métadonnées et références IIIF source, utiliser manifests/. Pour visualiser les blocs sur les pages, utiliser 2606-manifests-chandrav2/, notamment avec le visualiseur IIIF Mezanno indiqué dans la documentation de production. Les transcriptions sont consultables localement dans les JSON. L’affichage des images et la consultation de ressources liées nécessitent un accès aux services externes correspondants. Pour citer un passage, conserver au minimum l’ARK du document, le canvas ou l’index de page, et la référence de cette version du jeu de données. Qualité et limites d’usage La qualité de l’OCR Chandra n’a pas été évaluée. Aucun contrôle systématique de l’absence d’hallucinations, d’omissions ou d’altérations du sens n’est documenté. La segmentation, les catégories de blocs et l’ordre de lecture peuvent également comporter des erreurs. Ces données peuvent servir à explorer les débats, préparer une indexation ou développer des méthodes d’analyse. Elles ne constituent pas une vérité terrain ni une attribution vérifiée des prises de parole. Toute citation, identification de locuteur ou interprétation historique doit être confrontée à l’image source, en particulier lorsque l’analyse dépend d’un nom, d’une date, d’un chiffre ou d’une citation. Anomalies structurelles repérées avant publication Un contrôle de l’ensemble des JSON a identifié les points suivants, non corrigés dans les données : 1 881 blocs ont une boîte invalide : 1 113 ont une largeur ou hauteur nulle et 768 ont une dimension négative (coordonnées inversées). Les 1 881 cibles IIIF correspondantes ont également une dimension non positive. Parmi ces blocs, 764 ont au moins une coordonnée hors de la page ; ces effectifs se recouvrent et ne doivent pas être additionnés. Par exemple, page d’index 17 de 7/6553085.json, le rectangle [1388, 2754, 1957, 2754] devient une cible de hauteur nulle. Ces blocs peuvent contenir du texte mais ne permettent pas un affichage spatial correct. 1 339 pages OCR ne contiennent aucun bloc. Elles disposent cependant toutes d’un canvas ; l’absence de page d’annotations Chandra est attendue lorsqu’aucun bloc n’a été produit. Une vérification des images est nécessaire pour distinguer des pages blanches de possibles échecs de reconnaissance. 15 blocs ont un contenu vide ou uniquement composé d’espaces et de sauts de ligne. Une catégorie atypique block est présente ; sa signification reste à préciser. Les contrôles de structure et les comptages présentés ici vérifient l’organisation des fichiers ; ils ne mesurent pas la fidélité des transcriptions. Génération des manifests enrichis Le script scripts/json2manifest.py est inclus dans l’archive pour régénérer les manifests enrichis à partir des JSON Chandra, des manifests IIIF source et de l’inventaire CSV (zip_path, ark_full). Il associe chaque page Chandra au canvas correspondant, remet les boîtes des blocs à l’échelle du canvas et remplace ses annotations par celles de Chandra. La documentation de génération fournit la commande complète, les dépendances (Pydantic 2, requests et tqdm) et la correspondance entre les deux formats Chandra. L’exemple écrit dans un nouveau dossier : les sorties déjà présentes sont ignorées par le script. Les manifests source manquants sont téléchargés auprès de la BnF et conservés localement. Contrôles reproductibles Le script scripts/audit_dataset.py automatise les vérifications d’inventaire, de structure OCR/IIIF, de correspondance des blocs, de coordonnées et de correspondance avec les archives disponibles. La documentation d’exécution précise les contrôles et leurs limites. Il utilise Python 3.10.12 via uv, sans dépendance tierce : uv --no-cache --offline run --no-project --python 3.10.12 scripts/audit_dataset.py --csv "decidon_documents_status_20260402T180205Z - status_20260402.csv" --expected-documents 12533 --expected-images 312202 Les résultats sont disponibles dans reports/audit.md et reports/audit.json. Le JSON conserve tous les constats avec leur localisation ainsi que les empreintes SHA-256 des entrées. L’absence d’archive est indiquée comme un contrôle non exécuté. Attribution et conditions de réutilisation Contenus provenant de Gallica Conserver la mention « Source gallica.bnf.fr / Bibliothèque nationale de France », ou « Source gallica.bnf.fr / BnF », ainsi que les attributions propres aux documents et établissements de conservation. Les conditions d’utilisation de Gallica s’appliquent aux contenus concernés. La BnF indique que l’utilisation de reproductions dans une publication scientifique ou académique réalisée dans le cadre d’un travail de recherche universitaire est libre et gratuite sous réserve de la mention de source. Cette précision concerne notamment l’exonération de redevance pour ces publications ; les autres usages commerciaux relèvent des conditions correspondantes. Voir les conditions de réutilisation des reproductions. Pour les traitements par intelligence artificielle, y compris l’IA générative, la BnF prévoit la gratuité à des fins de recherche scientifique académique à but non lucratif, sous réserve de mentionner la source. Cette disposition ne doit pas être étendue automatiquement à tout usage de l’IA. Voir l’offre et les conditions de la BnF pour les acteurs de l’IA. Métadonnées BnF / Gallica Les métadonnées descriptives de la BnF sont placées sous Licence Ouverte / Open Licence Etalab. Cela concerne les métadonnées source reprises dans les manifests, y compris les manifests enrichis. Leur réutilisation est libre et gratuite, avec maintien de la source et de la date de récupération, selon les conditions de réutilisation des données de la BnF. La Licence Ouverte 2.0 autorise notamment la reproduction, l’adaptation et la redistribution, y compris commerciale, sous réserve d’attribution et d’indication de la date de mise à jour de l’information. Contributions du projet et périmètre de diffusion Les transcriptions, la segmentation, les annotations ajoutées par le projet et cette documentation sont sous licence Creative Commons Attribution 4.0 International (CC BY 4.0) https://creativecommons.org/licenses/by/4.0/. Cela permet la réutilisation, la modification et la redistribution, y compris commerciale, sous réserve de mentionner les auteurs et le projet DECIDON. Date de récupération des manifests et métadonnées : 25 septembre 2026. Cette publication académique diffuse les nouvelles transcriptions et segmentations produites par le projet, ainsi que les manifests contenant les métadonnées source et les annotations ajoutées. Elle référence les images BnF (Source gallica.bnf.fr / Bibliothèque nationale de France) sans redistribuer les images livrées au projet. Les conditions propres à l’archive d’images d’origine concernent cette livraison distincte ; cette archive ne fait pas partie du dépôt public. Citation et crédits Auteurs de la production OCR : Edwin Carlinet, Joseph Chazalon et Jonathan Perrinet (Laboratoire de recherche de l’EPITA). Merci de citer la version du jeu de données utilisée, de conserver l’attribution BnF / Gallica et de mentionner le projet DECIDON (ANR-25-CE38-4063).

提供机构:
Zenodo
创建时间:
2026-09-28
二维码
社区交流群
二维码
科研交流群
商业服务