Ci-dessous, les différences entre deux révisions de la page.
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:46] Francesco Beretta [Exploration du lexique des notices] |
td_histoire_numerique:exercice_4 [2016/01/05 19:05] Francesco Beretta [Exploration du contenu encodé] |
||
---|---|---|---|
Ligne 33: | Ligne 33: | ||
{{ :td_histoire_numerique:graph_simi_9.png?200 |}} | {{ :td_histoire_numerique:graph_simi_9.png?200 |}} | ||
- | Une autre {{:td_histoire_numerique:liste_notices_bnf_cooccurrences_iramuteq.svg.zip|représentation graphique}} plus complète qu'on peut télécharger, dézipper et ouvrir dans un navigateur web. | + | Voici une autre {{:td_histoire_numerique:liste_notices_bnf_cooccurrences_iramuteq.svg.zip|représentation graphique}} plus complète qu'on peut télécharger, dézipper et ouvrir dans un navigateur web. |
- | Grâce à cette exploration du vocabulaire des notices on voit apparaître des 'profils' ou des 'domaines d'activité' dont les effectifs sont proportionnels à la fréquence des lemmes et des cooccurrences dans les notices, ce qui est mis en évidence dans le graphique: les mathématiciens avec toutes les autres professions qui leur sont associées; les enseignants (professeurs) avec les disciplines et institutions associées; le 'monde' des libraires et des imprimeurs dont on dévine grâce à la représentation visuelle de la fréquence des lemmes la proportion inférieure dans la population; le profil des astronomes en lien avec les observatoires et les géographes; le monde des académies. | + | Grâce à cette exploration du vocabulaire des notices on voit apparaître des 'profils' ou des 'domaines d'activité' dont les effectifs sont proportionnels à la fréquence des lemmes et des cooccurrences dans les notices (ce qui est mis en évidence dans le graphique par la taille des caractères): les mathématiciens avec toutes les autres professions qui leur sont associées; les enseignants (professeurs) avec les disciplines et institutions associées; le 'monde' des libraires et des imprimeurs dont on dévine grâce à la représentation visuelle de la fréquence des lemmes la proportion inférieure dans la population; le profil des astronomes en lien avec les observatoires et les géographes; le monde des académies. |
===== Encodage des notices ===== | ===== Encodage des notices ===== | ||
- | Cette première exploration permet de décider, en fonction de la problématique de recherche, les caractéristiques et propriété qu'on souhaitera encoder à fin d'établir un profil plus précis de la population. 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é ===== | ||
+ | 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é 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 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 des scripts du logiciel R grâce à la bibliothèque "RPostgreSQL". Dans le 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. | ||
+ | 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. |