programminghistorian / ph-submissions

The repository and website hosting the peer review process for new Programming Historian lessons
http://programminghistorian.github.io/ph-submissions
137 stars 111 forks source link

AI for automated transcription of Historical Documents (PH/TNA/JISC) #421

Closed tiagosousagarcia closed 1 year ago

tiagosousagarcia commented 2 years ago

The Programming Historian has received the following proposal for a lesson on 'AI for automated transcription of Historical Documents' by @CVidalG. The proposed learning outcomes of the lesson are:

In order to promote speedy publication of this important topic, we have agreed to a submission date of no later than January 2022. The author(s) agree to contact the editor in advance if they need to revise the deadline.

If the lesson is not submitted by January 2022, the editor will attempt to contact the author(s). If they do not receive an update, this ticket will be closed. The ticket can be reopened at a future date at the request of the author(s).

The main editorial contact for this lesson is @tiagosousagarcia.

Our dedicated Ombudsperson is (Ian Milligan - http://programminghistorian.org/en/project-team). Please feel free to contact him at any time if you have concerns that you would like addressed by an impartial observer. Contacting the ombudsperson will have no impact on the outcome of any peer review.

spapastamkou commented 1 year ago

@marie-flesch Quand tout est prêt, nous ferons ensemble le nécessaire pour la mise en ligne de la leçon.

matgille commented 1 year ago

Bonjour @spapastamkou, c'est noté, j'appliquerai les modifications d'ici au 5 et je te tiens informée quand ce sera fait. Toutes les remarques me semblent bien.

Bonnes fêtes !!

ps: a-t-on trouvé une solution sur les notes de fin dans des <div> ?

matgille commented 1 year ago

Bonjour à tout le monde et bonne année !

Le commit 7a7b9796a3f807bbf3b intègre les corrections demandées et validées; je vérifie si je n'ai rien oublié et je corrige le cas échéant !

En ce qui concerne les titres qui s'enchaînent, cela ne me choque pas, nous allons les garder, ils permettent de bien se repérer dans la leçon.

Matthias

spapastamkou commented 1 year ago

Merci beaucoup pour ton travail, @matgille, et bonne année aussi! Nous ajouterons la date dans les métadonnées au moment du transfert des fichiers pour être proche de la date de mise en ligne (moi et Marie). Dear @anisa-hawes, this lesson is now ready for you to inspect the markdown and notes - please note that at this stage most of the work that had to be done is done and we are not in a hurry to publish, so please organize your work as it best fits your own schedule. @marie-flesch Nous nous organiserons après le travail d'Anisa pour les étapes finales, il n'y aura plus qu'à:-)

spapastamkou commented 1 year ago

@matgille Pour l'affichage des notes de fin, il y avait le crochet fermant de la note 31 qui manquait (et de ce fait la note ne s'affichait pas). Je l'ai ajouté et cela a réglé l'affichage jusqu'à un certain degré, mais je ne suis pas certaine que tu te réfères à cela. Je vois que par la suite, il y a toujours le problème de la note 38 que tu as signalé, pour laquelle le chiffre 38 s'affiche au rendu html deux fois pour renvoyer à deux titres différents. A moins qu'Anisa connaisse un moyen pour assurer la séquence des notes en mélangeant l'encodage markdown et hmtl, peut-être qu'on peut simplifier les choses en enlevant l'encadré (est-ce indispensable??) et en ayant toutes les notes en markdown?

marie-flesch commented 1 year ago

Merci @matgille ! Et oui, @spapastamkou, on fera ça ensemble :)

CVidalG commented 1 year ago

Bonjour tout le monde, je vous souhaite une très bonne année, et en profite pour vous remercier à nouveau pour votre temps et travail éditorial ! Hâte de voir le résultat. À votre disposition si besoin !

drjwbaker commented 1 year ago

@spapastamkou @marie-flesch Just checking in as this is a Jisc/TNA funded article. Am I correct in thinking that this is now close to publication?

spapastamkou commented 1 year ago

You are correct @drjwbaker! After the typesetting controls and generation of permalinks are over, we will do with @marie-flesch the ME's verifications and raise the pull request for the lesson to be published. We'll let you know when it is online!

drjwbaker commented 1 year ago

Amazing

matgille commented 1 year ago

Pour l'affichage des notes de fin, il y avait le crochet fermant de la note 31 qui manquait (et de ce fait la note ne s'affichait pas)

Merci, je crois que j'ai loupé ce problème.

Je vois que par la suite, il y a toujours le problème de la note 38 que tu as signalé, pour laquelle le chiffre 38 s'affiche au rendu html deux fois pour renvoyer à deux titres différents. A moins qu'Anisa connaisse un moyen pour assurer la séquence des notes en mélangeant l'encodage markdown et hmtl, peut-être qu'on peut simplifier les choses en enlevant l'encadré (est-ce indispensable??) et en ayant toutes les notes en markdown?

Ça me va, autant contourner les difficultés superflues: on pourrait mettre l'encadré en note de fin, par exemple ? Si tu es OK, je me charge de la modification.

anisa-hawes commented 1 year ago

Thank you, @matgille! I can take care of that – I am in the middle of checking the typesetting the .md file at the moment.

anisa-hawes commented 1 year ago

Hello @matgille. I still have a little more to do on this. I will come back to you as soon as possible next week.

For the time being, I have:

CVidalG commented 1 year ago

@anisa-hawes

Thanks ! Please find bellow alt descriptions of all figures.

Figure 0 : Exemple de pages en grec et en latin de la PG Figure 1 : Schéma des étapes classiques pour l'entraînement d'un modèle OCR (de l'annotation des données à l'application du modèle) Figure 2 : Détail des composantes nécessaires pour la création de modèles OCR : expertise, temps, compétences et données. Figure 3 : Schéma de la décomposition du travail d'un OCR : analyse de la mise en page, reconnaissance du texte et formatage Figure 4 : Schéma des étapes classiques pour l'entraînement d'un modèle OCR (de l'annotation des données à l'application du modèle) Figure 5 : Schéma de fonctionnement du fine-tuning d'un modèle en intelligence artificielle Figure 6 : Schéma de fonctionnement du fine-tuning d'un modèle sur la plateforme Calfa Vision Figure 7 : Exemples de résultats produits par un OCR / HTR, avec ou sans normalisation du texte Figure 8 : Exemple de mise en page de la PG, avec détail des zones de textes Figure 9 : Différents états de conservation ou d'impression dans la PG

Images du tableau 2:

Impression du mot ἀληθινῷ dans la PG Impression du mot ἁμαρτίας dans la PG Impression du mot μεταφράσαντος dans la PG Impression du mot μετὰ dans la PG Impression du mot ἡμᾶς dans la PG Impression du mot ἄχρι dans la PG Impression du mot ἅπαντες dans la PG

Images du tableau 3:

Exemple de ligne de texte dans le dataset greek_cursive Exemple de ligne de texte dans le dataset gaza-iliad Exemple de ligne de texte dans le dataset voulgaris-aeneid Exemple de ligne de texte dans le dataset GT4HistComment

Figure 10 : Exemple de détections de la courbure des lignes, avec baseline et polygones Figure 11 : Différents masques appliqués à une image de ligne selon l'outil utilisé Figure 12 : Trois exemples de détection de lignes dans un manuscrit Figure 13 : Deux exemples d'analyse de la mise en page de la PG sur Calfa Vision Figure 14 : Liste des étapes pour la création d'un projet OCR sur Calfa Vision Figure 15 : Liste des étapes pour l'annotation de documents sur Calfa Vision Figure 16 : Liste des images dans un projet sur Calfa Vision Figure 17 : Exemple d'annotation d'une page sur Calfa Vision Figure 18 : Évolution de la détection des zones et lignes de textes après 10, 30 et 50 images annotées Figure 19 : L'interface de transcription sur Calfa Vision Figure 20 : Exemple d'OCR de la PG avec le modèle final Figure 21 : Courbe d'évolution du gain de temps dans l'annotation avec un outil d'annotation et de transcription automatisé

spapastamkou commented 1 year ago

Hello @anisa-hawes! I just added a link towards the wikipedia notice for the library that hosts the document collection that is used in the lesson (to provide just some context at the point the institution is mentioned), and I wanted to let you know in case this upsets your work on the permacc links. Also, do you think it would be possible for us to estimate, even roughly, when we can be able to go forward with the publication? I know you have (a lot of!) open fronts right now, I am asking mainly to see how we are going to organize between us in the FR team with MF and MGL. Thanks a lot!

anisa-hawes commented 1 year ago

Dear @spapastamkou,

This lesson is ready for your final review.

Sustainability + accessibility actions:

Bonjour @CVidalG, Notre formulaire de déclaration de droit d'auteur qui est une occasion de reconnaître le droit d'auteur et de nous accorder la permission de publier. Pourriez-vous télécharger ce formulaire, le compléter et me l'envoyer par courriel (admin [@] programminghistorian.org) ?

Cher @matgille, pourriez-vous me fournir / m'aider avec les éléments suivants :

- name: Chahan Vidal-Gorène
  team: false
  orcid: 0000-0000-0000-0000
  bio:
      fr: |
          Chahan Vidal-Gorène is an assistant professor in the Department of Subject at the University of City.
CVidalG commented 1 year ago

Thank you @anisa-hawes ! Done

Everything sounds good for me ! During my final review, I have just noticed two things. For footnote 39 : Vidal-Gorène, Chahan, et Bastien Kindt. « From manuscript to tagged corpora ». Armeniaca 1, (2022/à paraître).

This publication is now published, so we could change this note by : Kindt Bastien et Vidal-Gorène Chahan, « From Manuscript to Tagged Corpora. An Automated Process for Ancient Armenian or Other Under-Resourced Languages of the Christian East ». Armeniaca, International Journal of Armenian Studies, 1, p. 73-96, 2022. 10.30687/arm/2974-6051/2022/01/005

Available here : https://edizionicafoscari.unive.it/en/edizioni4/riviste/armeniaca/2022/1/from-manuscript-to-tagged-corpora/

And it sounds that there is a small problem with footnote 41 (¶ 121)

Thanks !

matgille commented 1 year ago

[ ] Liaise with Chahan @CVidalG to prepare author's bio using this format (you can edit this template):

Hi @anisa-hawes, I don't know if the indentation is correct, but here comes the bio ! I've translated it into the other languages.

- name: Chahan Vidal-Gorène
  team: false
  orcid: 0000-0003-1567-6508
  bio:
      en: |
    Chahan Vidal-Gorène is a PhD candidate, specialist in digital palaeography. He teaches in the Digital Humanities master's programme at the École nationale des Chartes-PSL, and is the founder and president of Calfa, a company specialising in the processing of oriental manuscripts.
      fr: |
    Chahan Vidal-Gorène est spécialisé en paléographie numérique (doctorat en cours). Il enseigne au sein du master Humanités Numériques de l’École nationale des Chartes-PSL, et est le président-fondateur de Calfa, entreprise spécialisée dans le traitement de documents manuscrits orientaux.
      es: |
    Chahan Vidal-Gorène es especialista en paleografía digital (doctorado en curso). Imparte clases en el máster de Humanidades Digitales de la École nationale des Chartes-PSL, y es fundador y presidente de Calfa, empresa especializada en el tratamiento de manuscritos orientales.
      pt: |
    Chahan Vidal-Gorène é um especialista em paleografia digital (doutoramento em curso). É professor no programa de mestrado de Humanidades Digitais na École nationale des Chartes-PSL, e é fundador e presidente da Calfa, uma empresa especializada no processamento de manuscritos orientais.

Best,

Matthias

matgille commented 1 year ago

As for the tweets:

Apprenez à transcrire automatiquement des sources imprimées et manuscrites peu dotées en données avec le tutoriel de Chahan Vidal-Gorène sur @calfa !

Les techniques de reconnaissance automatique d'écriture manuscrite ou imprimée vous intéressent ? Venez suivre le tutoriel de Chahan Vidal-Gorène sur @calfa !

spapastamkou commented 1 year ago

Cher @CVidalG, je viens d'intégrer les dernières corrections dans le fichier de votre leçon, mais pour le moment le build de la page échoue et toutes les modifs ne sont pas visibles dans la prévisualisation. Cependant, il y a deux points sur lesquels il me faudrait votre confirmation/validation avant d'aller en avant avec la publication - ces deux-là sont bien visibles malgré le problème actuel.

  1. Pour le problème de la note 41 que vous avez signalé, je me suis permise d'enlever la note du titre du tableau et de la déplacer dans le corps du texte en ajoutant une phrase, comme vous pouvez le voir dans ce commit. Est-ce que cette phrase vous convient ou vous préférez m'indiquer une autre? Je crains qu'il sera vraiment compliqué d'assurer la continuité des notes avec l'exposant dans le code html (alors que les autres sont dans le markdown) et il me semble plus lisse d'avoir la note dans le texte.
  2. J'aimerais attirer votre attention sur la légende de la figure 11 : Différence de traitement entre une donnée de type bounding box vs polygonale vs polygonale sur Calfa Vision Pourriez-vous conformer s'il vous plaît si répéter "vs polygonale" est volontaire ou alors on devrait enlever l'une des deux occurrences du terme? Merci d'avance pour votre aide!
spapastamkou commented 1 year ago

Sinon, j'ai inséré la forme abrégée des notes pour celles qui se répétaient à plusieurs reprises. A huge thanks @anisa-hawes for all the work you've done for this lesson, it is huge! No worries for the tweets, we'll insert them in the sheet once the lesson will be online.

CVidalG commented 1 year ago

@spapastamkou, merci Pour le point 1, cela me convient ainsi. Pour le point 2, l'objectif était de comparer trois types de traitement : une approche avec bounding box, une classique polygonale (que l'on trouve par défaut) et la polygonale avec post-traitement proposée sur Calfa Vision. C'est vrai que c'est un peu lourd. On pourrait dire :
Différence de visualisation d'une ligne entre une bounding-box, un masque polygonal, et un polygone extrait de Calfa Vision Qu'en dites-vous ?

spapastamkou commented 1 year ago

@CVidalG Merci infiniment! Pour le point 2, je vous remercie d'avoir confirmé qu'il n'y avait pas d'erreur. Je peux aussi intégrer votre nouvelle proposition sans problème et nous serons en mesure de lancer la publication très bientôt!

CVidalG commented 1 year ago

@matgille Si jamais, je n'ai pas twitter mais vous pouvez bien sûr tagger Calfa avec mon nom.

matgille commented 1 year ago

Bonjour @CVidalG, merci de l'info, c'est noté ! Et encore merci pour ce travail.

spapastamkou commented 1 year ago

Normalement tout est prêt pour publication et je laisse @marie-flesch et @matgille prendre le relais pour le baptême du feu:-) Je fais ci-dessous une liste de ce qu'il y a à faire, en espérant qu'elle est claire, et, bien sûr, il est possible de se faire guider aussi par les consignes disponibles sur le site (partie rédacteur/rédactrice en chef )que vous connaissez déjà:)

Copier les fichiers de la leçon de ph-submissions vers jekyll Se placer sur la branche dédiée à partir de laquelle se fera le pull request, pour transférer

spapastamkou commented 1 year ago

Si jamais, n'hésite pas à faire une dernière vérification du fichier de la leçon ici de ton côté aussi, @marie-flesch.

marie-flesch commented 1 year ago

Merci beaucoup pour cette checklist @spapastamkou, elle est claire ! Oui effectivement c'est le baptême du feu :) Je m'y mets ce weekend.

spapastamkou commented 1 year ago

@anisa-hawes I gave up - much in spite of me - the idea of uploading the data of the lesson on our repo because the file is much too heavy and the messages I got from GH convinced me it could be complicated for all of us (unless I miss a special arrangement for our repos).

anisa-hawes commented 1 year ago

Thank you, @spapastamkou. The author guidelines suggest that:

Occasionally, large assets used by particular lessons might be too large to be stored in our GitHub repository. If this is the case, we recommend that authors upload their assets to Zenodo for archiving and then provide the lesson editor with the DOI generated by Zenodo for linking from within the lesson. In the event that such datasets might already exist in an institutional repository, we still recommend uploading the version of the dataset used in The Programming Historian to Zenodo for the purposes of consistent use across all of our lessons.

When uploading to Zenodo, all files (even if there is a single file) should be compressed into a single zip file. The zip file should have the same slug used for the lesson file. This is only necessary when the total size of the assets for the lesson is larger than 25MB.

Can I help you to upload the .zip to our Zenodo repository? It is preferable for us to host the files so that we can ensure the lesson's sustainability.

anisa-hawes commented 1 year ago

As for the tweets:

Apprenez à transcrire automatiquement des sources imprimées et manuscrites peu dotées en données avec le tutoriel de Chahan Vidal-Gorène sur @calfa !

Les techniques de reconnaissance automatique d'écriture manuscrite ou imprimée vous intéressent ? Venez suivre le tutoriel de Chahan Vidal-Gorène sur @calfa !

Thank you, @matgille! I've made a note of these, and will add them to the Google Sheet when the lesson is published.

matgille commented 1 year ago

Great, thank you Anisa = ). Actually I've tried to update the google sheet but I don't remember if you granted me the write permission, and with what google account. Sorry ^^'

spapastamkou commented 1 year ago

@anisa-hawes The dataset is already on Zenodo (thanks to the author) and the doi is provided in the lesson. I wanted us to have this particular version of the dataset on our repo to be sure the lesson will be functional event if the dataset is expanded in the future. But I added a phrase that precises which version of the dataset the lesson uses so it should be good.

matgille commented 1 year ago
  • Comme on est plusieurs à travailler au même moment sur jekyll, il faut faire attention à mettre à jour la branche sur jekyll avant de fusionner pour la synchroniser avec la version la plus récente de gh-pages (update from master). Je crois que si on travaille depuis l'interface, ce n'est pas possible, auquel cas, Marie, tu peux nous solliciter ou moi ou Anisa depuis le ticket pour le faire (à moins que Matthias puisse le faire directement via git). Tu comprendras cela via le petit message qui s'affiche lorsque tu es sur la page de la branche, si jamais tu vois This branch is x commits ahead z commits behind of gh-pages.

Si besoin, pas de souci pour le faire en ligne de commande @marie-flesch @spapastamkou.

anisa-hawes commented 1 year ago

Merci beaucoup, Chahan @CVidalG .

J'ai reçu votre droits d’auteur et d’autorisation de publication formulaire ✨

Anisa

anisa-hawes commented 1 year ago
  • Comme on est plusieurs à travailler au même moment sur jekyll, il faut faire attention à mettre à jour la branche sur jekyll avant de fusionner pour la synchroniser avec la version la plus récente de gh-pages (update from master). Je crois que si on travaille depuis l'interface, ce n'est pas possible, auquel cas, Marie, tu peux nous solliciter ou moi ou Anisa depuis le ticket pour le faire (à moins que Matthias puisse le faire directement via git). Tu comprendras cela via le petit message qui s'affiche lorsque tu es sur la page de la branche, si jamais tu vois This branch is x commits ahead z commits behind of gh-pages.

Si besoin, pas de souci pour le faire en ligne de commande @marie-flesch @spapastamkou.

Hello @marie-flesch. I can help with this, anytime. As Sofia explains, the Jekyll repository can become knotted if our branch is not synchronised with the 'master branch' gh-pages. If necessary, I can 're-base' a branch you are working on via the command line to bring it up-to-date so don't worry if this happens.

spapastamkou commented 1 year ago

La leçon est en ligne, le lien doi est: https://doi.org/10.46430/phfr0023 Merci à toutes et à tous pour votre contribution.

CVidalG commented 1 year ago

Un grand merci à toutes et tous pour ce travail !