🏆 Comprendre ce qu'est un document sur un ordinateur
🏆 Savoir différencier les catégories de fichiers et les standards et formats qui leur sont associés
🏆 Savoir différencier la mise en forme d'un fichier et sa structuration sémantique
🏆 Connaître théoriquement plusieurs modes d'organisation et de mise en forme d'un fichier textuel (XML, Markdown, LaTeX, ...)
🏆 Connaître théoriquement plusieurs modes de représentation de données organisées dans un fichier textuel (CSV, JSON)
🏆 Connaître les principaux standards XML et l'environnement technologique associé à ce standard
saisie manuelle ou génération automatique de texte dans un document ;
récupération de données textuelles enregistrées dans une base de données ;
web scrapping ou extraction de contenus web ;
transcription d'un fichier multimédia par l'analyse et l'interprétation de son contenu ;
passe par l'analyse de signaux ou l'analyse des contenus
grâce à une approche symbolique fondée sur des règles
ou grâce à un apprentissage automatique (machine learning)
En fonction du contenu multimédia, il y a plusieurs domaines :
reconnaissance vocale automatique (speech to text
)
reconnaissance automatique d'écriture (optical character recognition
)
génération de texte décrivant le contenu (automatic image/video/sound annotation
)
transformation du texte en un autre texte (text simplification
), ce qui s'apparente à de la traduction.
2 principaux champs d'application :
On parle d'OCR (Optical Character Recognition) ou d'HTR (Handwritten Text Recognition)
Acquisition des images (numérisation avec un cahier des charges adapté (cadrage, résolution, etc.)) ;
Pré-traitement des images (cadrage, réduction du bruit, parfois binarisation) ;
Détection du texte sur l'image (segmentation) ;
Détection de la mise en page (Layout Analysis) et de l'ordre des lignes ;
Reconnaissance du texte (lettre par lettre, mot par mot ou même phrase par phrase, en fonction du logiciel) ;
Post-taitement des données textuelles (correction des erreurs de transcription, annotation du texte, etc.).
📽️ Alix Chagué, "Comment faire lire des gribouillis à mon ordinateur ?", tuto@mate (11 mars 2021)
➡️ https://mate-shs.cnrs.fr/actions/tutomate/tuto31-lire-des-gribouillis-chague/
Certaines campagnes de dématérialisation allient numérisation et transcription (automatique)
Une campagne de transcription peut être mise en place de plusieurs manières :
* Attention : le crowdsourcing peut sembler une solution facile, mais cela demande beaucoup d'organisation et une gros investissement.
On ne devrait pas faire de transcription automatique sans cahier des charges :
A l'aide de techniques de TAL
(Traitement Automatique des langues / du langage) aussi appelé NLP
(Natural Language Processing)
entités nommées
(NER, Named Entity Recognition)Rendre un document compatible avec des moteurs de recherche :
Voire réaliser une édition numérique !
🕵️ Les expressions régulières
désignent une syntaxe pour formuler des recherches (et des remplacements) dans un texte avec beaucoup de souplesse.
🕵️ On parle aussi de regex
(regular expression) ou de recherche par motif.
🕵️ Elles sont en principe disponibles dans presque tous les éditeurs de texte, moyennant activation.
😔 Dans Microsoft Word les REGEX existent, mais depuis la version 2016, l'option s'appelle caractères génériques
et la syntaxe diffère de la syntaxe universelle, même si le principe reste le même. ➡️ doc.
source: xkcd
Les REGEX facilitent la recherche de mots ou expressions que l'on appelle patterns (motifs)
Rercher des dates :
19\d{2}
ou 19\d\d
Rechercher des adresses emails :
[A-z\._-]+@[A-z\._-]+\.[A-z]
Elles permettent aussi de restructurer un texte (pour créer un CSV par exemple).
Elles supposent de regarder les données textuelles en détail pour identifier les repères qui peuvent aider à construire une bonne requêtes.
➡️ https://www.musee-orsay.fr/fr/collections/arts-decoratifs
récupérer toutes les dates mentionnées dans la page
réucpérer toutes les légendes d'images
faire ressortir une structure logique qui aide à la mise en forme du document, à sa lecture par un humain ou par la machine ;
...
Id_Monographie | Id_Enqueté | Serie_Tome | Prénom | Nom | Place dans la famille | Lieu de naissance |
---|---|---|---|---|---|---|
001a | 001aE1 | 1-1 (1857) | Jean | M** | Père | T** (Aube) |
001a | 001aE2 | 1-1 (1857) | Marie | R** | Mère | L** (Meurthe) |
001a | 001aE3 | 1-1 (1857) | Joseph | M** | Fils |
Id_Monographie,Id_Enqueté,Serie_Tome,Prénom,Nom,Place dans la famille,Lieu de naissance
001a,001aE1,1-1 (1857),Jean,M**,Père,T** (Aube)
001a,001aE2,1-1 (1857),Marie,R**,Mère,L** (Meurthe)
001a,001aE3,1-1 (1857),Joseph,M**,Fils,,
utilisation de structure similaire aux listes et aux dictionnaires en Python
Chaque valeur est associée à une étiquette, la structure peut fonctionner en arborescence, à plusieurs niveaux
[
{"Id_Monographie":"001a"}, {"Id_Enqueté":"001aE1"}, {"Serie_Tome":"1-1 (1857)"}, {"Prénom":"Jean"}, {"Nom":"M**"}, {"Place dans la famille":"Père"}, {"Lieu de naissance":"T** (Aube)"},
{"Id_Monographie":"001a"}, {"Id_Enqueté":"001aE2"}, {"Serie_Tome":"1-1 (1857)"}, {"Prénom":"Marie"}, {"Nom":"R**"}, {"Place dans la famille":"Mère"}, {"Lieu de naissance":"L** (Meurthe)"},
{"Id_Monographie":"001a"}, {"Id_Enqueté":"001aE3"}, {"Serie_Tome":"1-1 (1857)"}, {"Prénom":"Joseph"}, {"Nom":"M**"}, {"Place dans la famille":"Fils"}, {"Lieu de naissance":""}
]
vs.
En fonction du medium ou du contexte, on affiche un rendu particulier
toutes les mots en italiques ne sont pas des mots étrangers, mais tous les mots étrangers sont en italiques
on peut décider de finalement mettre les titres en gras tout en gardant les mots étrangers en italiques
on peut extraire rapidement tous les mots étrangers
Il extiste plusieurs conventions pour formaliser la structure logique.
Dans Microsoft Word
ou LibreOffice Writer
:
dans un éditeur WYSIWYM : moindre confusion entre mise en forme et indication de la structure logique
la mise en forme apparaît après parsing du document (création d'un PDF ou ouverture dans un navigateur)
le paramétrage de la mise en forme peut être géré dans un fichier externe (ex: CSS pour HTML)
Ⓜ️ Markdown
est un langage de balisage léger qui permet d'encoder facilement la structure et certains éléments de mise en forme du texte sans gêner sa lecture.
Ⓜ️ Il permet de créer des fichiers HTML ou PDF et est beaucoup utilisé sur le web, notamment sur des plateformes comme Github
Ⓜ️ Même non compilé, un texte Markdown est facile à lire car les annotation sont légères et limitées ;
🤫 On peut utiliser Markdown ou un système similaire dans Whatsapp et Messenger ;
Non compilé :
# Titre 1
##### Titre 5
[lien hypertexte](http://perdu.com/)
**texte mis en gras** (mise en forme)
~~texte barré~~ (mise en forme)
Compilé :
lien hypertexte
texte mis en gras (mise en forme)
texte barré (mise en forme)
🇱 LaTeX
(prononcer "latek") est un langage et un système de composition de documents, bien plus complet que Markdown ;
🇱 Il est très utilisé dans le domaine des sciences car il a été conçu pour écrire aisément les formules mathématiques ;
🇱 Un fichier annoté avec LaTeX
est plus dur à lire sans compilation car les balises sont plus "invasives". Exemple : \chapter{Titre de chapitre}
🇱 Après compilation, on obtient un PDF ou du HTML
🇱 LaTeX ne sert pas qu'à annoter la structuration logique : il prend en charge la mise en forme du document au sens large.
🌳 XML signifie eXtensible Markup Language
🌳 XML est un langage de balisage générique. On le dit extensible car il propose une grammaire générale pour l'organisation du document, mais on peut créer ses propres noms de balises
🌳 Comme HTML (Hypertext Markup Language), XML est un sous-ensemble du standard SGML (Standard Generalized Markup Language). Ces langages utilisent les chevrons (<>
) pour former des balises.
🌳 XML définit une syntaxe :
< nom_de_la_balise >
) et entoure généralement un contenu ;<slide>
) doit donc être fermée (</slide>
);<nothing></nothing>
, ce qui peut aussi s'écrire : <nothing/>
<!-- ... -->
;<slide>
<titre>Qu'est-ce que XML ?</titre>
<para>
<line n="001">🌳 XML signifie <anglais>eXtensible Markup Language</anglais></line>
<line n="002">🌳 XML est un <gras>langage</gras> de <gras>balisage</gras> générique. On le dit <gras>extensible</gras> car il propose une grammaire générale pour l'organisation du document, mais on peut créer ses propres noms de balises</line>
</para>
</slide>
<slide>
est une balise ou un élémentslide
est un nom de balisen
est un attribut de la balise "line"001
est la valeur de l'attribut "n"🌳 XML ne définit pas de vocabulaire : il n'indique pas quel nom doit être donné à une balise : <paragraph>
, <paragraphe>
, <para>
, <para_ph>
, <p>
sont tous des noms de balises valides ;
🌳 Ce sont les standards
qui définissent un vocabulaire (un ensemble de nom de balise) et des règles de compositions :
XML TEI
(Text Encoding Initiative) - description de documents textuels (1987)XML EAD
(Encoded Archival Description) - description archivistique (1998)XML ALTO
(Analysed Layout and Text Object) - description de la mise en page et du contenu d'un texte transcrit automatiquement (2004)XML SVG
(Scalable Vector Graphics) - descriptions d'images vectorielles (1999)🌳 Un fichier XML est plusieurs choses :
🌳 Il existe plusieurs langages qui permettent d'interagir avec XML :
xPath
: formuler un chemin à l'intérieur d'un arbre XML ;XSLT
: transformer un arbre XML en un autre arbre XML ou en HTML ;xQuery
: permet de faire des requêtes dans une base XML ;<?xml version="1.0" encoding="UTF-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
<fileDesc>
<titleStmt>
<title>Title</title>
</titleStmt>
<publicationStmt>
<p>Publication Information</p>
</publicationStmt>
<sourceDesc>
<p>Information about the source</p>
</sourceDesc>
</fileDesc>
</teiHeader>
<text>
<body>
<p>Some text here.</p>
</body>
</text>
</TEI>
Métadonnées dans la balise <teiHeader>
Structure du texte (<div>
, <p>
, <head>
, <lb/>
, <pb/>
, ...)
Entités ou informations spécifiques (<date>
, <placeName>
, ...)
Mise en forme (<hi>
, ...)
Elements descriptifs (<fw>
, ...)
➡️ exemple : pont_mirabeau.xml
➡️ exemple : edition numérique de correspondances, projet DAHN