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 | ||
td_histoire_numerique:exercice_4 [2016/01/05 18:24] Francesco Beretta [Exploration du contenu encodé] |
td_histoire_numerique:exercice_4 [2016/03/03 10:26] Francesco Beretta |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
</td> | </td> | ||
<td> | <td> | ||
- | <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Le cours "Informatique pour les historiens"</span> de <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Francesco Beretta</span>, avec tous les documents, fichiers et scripts associés, est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.</td></tr></table> | + | <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Le cours "Outils numériques pour les historiens"</span> de <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Francesco Beretta</span>, avec tous les documents, fichiers et scripts associés, est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.</td></tr></table> |
</html> | </html> | ||
Ligne 53: | Ligne 53: | ||
===== 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: | + | ==== 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> | <code html>SELECT vues.transformation_xml(36)</code> | ||
- | qui produit le texte xml dans le champs "texte_xml". | + | qui produit le texte XML inséré dans le champs "texte_xml" du même objet. |
+ | |||
+ | 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. | ||
- | En combinant les requêtes XPath et SQL, on peut désormais explorer les textes encodés | + | \\ |
+ | {{ :td_histoire_numerique:r_reseau_cooccurrences.jpg?300 |}} | ||
+ | Ce graphique représente une analyse équivalente à l'analyse des similitudes des notices fondée sur les cooccurrences des lemmes effectuée ci-dessus avec le logiciel Iramuteq. Toutefois, elle est beaucoup plus précise dans la mesure où elle resulte de l'encodage des concepts dans les textes. Ce travail d'identification des entités nommées, en lien avec la base de données, ajoute une dimension sémantique résultant de l'analyse du texte, et de son encodage, par le chercheur. De cette analyse des propriétés structurales et représentation graphique des relations entre concepts apparaît entre autres que les professions plus 'marginales', par ex. les cartographes, les architectes et les libraires, moins représentées en termes d'effectifs dans la population que les mathématiciens et les astronomes (comme le montre le boxplot précédent) sont plus connectés avec l'ensemble des autres professions, ce qui apparaît de leur degré de centralité représenté par le diamètre des sommets. | ||