Outils pour utilisateurs

Outils du site


td_histoire_numerique:exercice_4

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
td_histoire_numerique:exercice_4 [2016/01/05 17:50]
Francesco Beretta [Encodage des notices]
td_histoire_numerique:exercice_4 [2016/01/05 19:39]
Francesco Beretta [Transformation vers un texte en format XML]
Ligne 39: Ligne 39:
 ===== Encodage des notices ===== ===== Encodage des notices =====
  
-Cette première exploration permet de décider, en fonction de la problématique de recherche, les propriétés qu'on souhaitera encoder à fin d'​établir un profil plus précis de la population et de ses caractéristiques. A titre d'​exemple,​ ont été encodées les mentions des professions les plus fréquentes (supérieures à 20 mentions) ainsi que toutes les dates. Comme en règle générale la notice contient la date de naissance, du moins approximative,​ on peut dater la génération d'​appartenance des acteurs qui composent la population. ​+Cette première exploration permet de décider, en fonction de la problématique de recherche, les propriétés qu'on souhaitera encoder à fin d'​établir un profil plus précis de la population et de ses caractéristiques. A titre d'​exemple,​ ont été encodées les mentions des professions les plus fréquentes (supérieures à 20 mentions) ainsi que toutes les dates. Comme en règle générale la notice contient la date de naissance, du moins approximative, en première position, on peut dater la génération d'​appartenance des acteurs qui composent la population. ​
  
 <​code>​ <​code>​
Ligne 49: Ligne 49:
 {/ud} {/ud}
 </​code>​ </​code>​
 +
 +La méthode d'​encodage appliquée est celle présentée dans le [[td_histoire_numerique:​exercice_2#​principes_d_annotation|deuxième exercice]]. Le document encodé est {{:​td_histoire_numerique:​liste_notices_bnf_annote_lieux_professions.odt|accessible ici}}. Le codage a été effectué de manière semiautomatique,​ en partant des formes associées à chaque lemme. De cette manière les variantes ortographiques ont été prises en compte en les associant au même identifiant de la base de données. Afin de compléter le codage, on a également commencé à baliser les enseignements des différentes disciplines,​ car un peut admettre que "​Professeur de mathématiques"​ est équivalent à "​mathématicien"​. Mais cette demarche demande du temps car les formulations sont très variées et un codage manuel s'​avère indispensable. Les mêmes considérations s'​appliquent aux lieux de naissance. Ce codage expériemental,​ présent dans le texte téléchargéable,​ n'a pas été terminé.
 ===== Exploration du contenu encodé ===== ===== Exploration du contenu encodé =====
  
 +==== Transformation vers un texte en format XML ====
 +
 +En appliquant la méthode présentée dans le [[td_histoire_numerique:​exercice_3#​transformation_des_textes_encodes_en_xml|troisième exercice]], nous avons copié le texte encodé qui se trouve dans le document "​liste_notices_BNF_annote_lieux_professions.odt"​ et nous l'​avons collé dans l'​objet 36 de la base de données, un objet de type "objet digital"​ intitulé "​Notices BNF avec annotation sémantique"​. Nous avons ensuite exécuté cette transformation:​
 +<code html>​SELECT vues.transformation_xml(36)</​code>​
 +qui produit le texte XML dans le champs "​texte_xml"​.
 +
 +En combinant les requêtes XPath et SQL, on peut désormais explorer les textes encodés.
 +Avec cette requête, par exemple, on peut chercher tous les concepts encodés, un par personne et année:
 +<code sql>
 +WITH tw1 AS
 +(
 +  SELECT UNNEST(xpath ('/​root/​ud',​t1.texte_xml)) ud,
 +         ​UNNEST(xpath ('/​root/​ud/​dat[1]/​@when',​t1.texte_xml)) annee
 +  FROM objets.objet t1
 +  WHERE t1.pk_objet = 36
 +),
 +tw2 AS
 +(
 +  SELECT ROW_NUMBER() OVER (ORDER BY 1)::INTEGER AS id_ud,
 +         ​(UNNEST(xpath ('//​en/​@ref',​tw1.ud))::​text) en,
 +         annee
 +  FROM tw1
 +)
 +SELECT DISTINCT id_ud,
 +       ​(en::​text)::​integer cle_objet,
 +       ​(annee::​text)::​integer annee,
 +       ​t1.nom
 +FROM tw2
 +  JOIN vues.vm_objet_vue_de_base t1
 +    ON t1.pk_objet = tw2.en::​integer
 +   AND t1.fk_type_objet_param = 4
 +ORDER BY annee,
 +         id_ud
 +</​code>​
 +
 +Les requêtes SQL peuvent être intégrées directement dans les scripts du logiciel R grâce à la librairie "​RPostgreSQL"​. Dans le {{:​td_histoire_numerique:​r_td2015_distribue.zip|projet R ci-joint}}, on trouvera quelques exemples d'​exploration et de visualisation des données. Il faut d'​abord ajouter ses propres paramètres de connexion (adresse de la base de données, login et mot de passe) dans le document "​connexion_postgresql.R",​ puis exécuter ce script afin d'​ouvrir une connexion avec la base de données qui pourra ensuite être appelée depuis les autres scripts. Il faut aussi installer préalablement toutes les librairies R appelées par les différents scripts du projet.
 +
 +
 +==== Exploration avec le logiciel R ====
 +
 +
 +Le script "​exploration_notices.R"​ permet d'​afficher un histogramme qui représente les générations de mathématiciens et astronomes avec un pas de 25 ans.
 +{{ :​td_histoire_numerique:​r_generations.jpg?​300 |}}
 +On constate ainsi que la portion des individus nés avant 1450 est très faible par rapport à l'​ensemble de la population. Ceci invite à restreindre l'​analyse suivante, qui représente les effectifs de professions encodées sous forme de "​boîte à moustaches"​ (boxplot), aux individus nés après 1400.
 +{{ :​td_histoire_numerique:​r_boxplot_soch.jpg?​300 |}}
 +Cette visualisation permet de prendre rapidement la mesure de la distribution dans le temps des professions et de leurs effectifs. Cette exploration est effectuée dans le script "​exploration_caracteres_sociaux.R"​ du projet R.
 +
 +Enfin, on peut explorer les relations entre professions dans les notices, sous forme de fréquences de cooccurrences,​ en utilisant une requête SQL/XPath et une visualisation qui utilise des techniques d'​analyse de réseaux.
 +{{ :​td_histoire_numerique:​r_reseau_cooccurrences.jpg?​300 |}}
  
td_histoire_numerique/exercice_4.txt · Dernière modification: 2016/03/03 10:26 par Francesco Beretta