Tiresias version python3 : mode d'emploi

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : mode d'emploi

Post by josquin » Thu Dec 12, 2019 11:30 am

On utilise Tirésias pour dénommer d'un coup toutes les fonctionnalités connexes à l'usage de Prospéro, Chéloné et Marlowe. Un certain nombre de celles-ci sont regroupées dans une interface graphique qui vise à rendre leur usage plus aisé.
Une première version a été développée en Python2 au début de la décennie 2010. Le support de Python2 s'arrêtant début 2020, il est recommandé de passer à Python3, ce que j'ai fait pour les scripts présents, en les nettoyant et les corrigeant au passage et en révisant l'interface graphique. Comme pour la première version, le pari est d'utiliser la bibliothèque graphique Tk qui est installée par défaut avec Python, ceci afin d'être plus accessible puisqu'il n'y a rien de spécial à installer.

Pour faciliter encore la vie des utilisateurs des versions exécutables existent pour windows : Le code est disponible sur github : https://github.com/josquindebaz/Tiresias (mode d'installation de Python3 pour windows http://prosperologie.org/forum/viewtopic.php?f=16&t=446)



À l'ouverture un texte d'accueil et une vérification que vous avez bien la dernière version qui s'affiche en bas (si vous êtes connecté à Internet)

Capture d’écran de 2019-12-12 11-22-49.png
Capture d’écran de 2019-12-12 11-22-49.png (31.74 KiB) Viewed 37268 times
Dans le menu File, vous trouvez :
  • un accès à un outil de liste de fichiers ;
  • une commande qui vous permet d'accéder au github, pour voir les fichiers ou récupérer une nouvelle version.
Capture d’écran de 2019-12-12 11-23-16.png
Capture d’écran de 2019-12-12 11-23-16.png (3.83 KiB) Viewed 37268 times
Les fonctionnalités présentes :
Notes sur la structure du dépôt, vous trouverez dans les répertoires :
  • EXEC, le(s) exécutable(s)
  • data, le support.publi
  • frm, les formules pour le calcul des années citées
  • previous version, l'ancien Tiresias qui fonctionne avec Python2
  • mod, les scripts utilisés pour chaque fonctionnalité. Ils sont utilisables de façon autonome du reste du programme.

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : l'outil de liste de fichiers txt

Post by josquin » Thu Dec 12, 2019 11:56 am

Dans le menu File, la commande List .txt vous donne accès à une nouvelle fenêtre :
Capture d’écran de 2019-12-12 11-44-56.png
Capture d’écran de 2019-12-12 11-44-56.png (14.02 KiB) Viewed 37265 times
voici comme il s'utilise :
  • Sélectionnez le répertoire dont vous voulez lister les .txt. La case recursive signifie qu'il listera aussi ce qui est dans les sous-répertoires
  • Appuyez sur List pour lancer l'opération, elle peut prendre du temps, la barre de progression devrait s'animer.
  • L'espace du bas se peuple des chemins vers les .txt, vous pouvez les copier soit par CTRL-C, soit avec le bouton Copy
Le cadre Replace path vous permet de faire des remplacements dans cette liste.
Cela peut être utile si vous utilisez un autre OS, par exemple ici remplacer /home/josquin/ par C:\, ainsi que les / par des \ afin de générer une liste directement compatible avec Prospéro
Capture d’écran de 2019-12-12 11-54-20.png
Capture d’écran de 2019-12-12 11-54-20.png (31.47 KiB) Viewed 37265 times

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : le correcteur de caractères

Post by josquin » Thu Dec 12, 2019 1:47 pm

Certains caractères ne sont pas reconnus par Prospéro 1. Dans le menu Corrections, la commande Character cleaning en corrige un certain nombre.
Capture d’écran de 2019-12-12 13-27-39.png
Capture d’écran de 2019-12-12 13-27-39.png (61.93 KiB) Viewed 37262 times
Sélectionnez votre dossier et lancez le traitement avec Process cleaning, vos fichiers .txt seront modifiés. La case à fond noir vous commente l'opération.

Les options :
  • recursive : prend en compte les sous-dossiers
  • test only : effectue le nettoyage sans enregistrer les fichiers
  • utf8 to latin1 : si le txt est en utf8, il le passe en latin1 (seul lisible correctement par Prospéro 1)
  • ascii : transforme des caractères latin1 mal lus par Prospéro 1 comme le caractère des points de suspension "…" qu'il transforme en trois points successifs "..."
  • special chars : remplace en particulier les caractères xml qui peuvent résulter du passage de l'utf-8 au latin1, comme "&#8230;" en "...", ou certaines balises html comme "<br>" en saut de ligne.
  • splitted numbers : regroupe les grands nombres 1 000 000 -> 1000000
  • hyphenations : "recolle" un mot est coupé en deux par une fin de ligne avec un tiret
  • html tags : supprime les balises html, comme <b> ou </i>. Intervient après le traitement special chars.
  • parity marks : décolle les formes de parité du mot. Exemple étudiant-e -> étudiant -e. (ne transforme pas i.e.)
  • dashes : décolle les tirets des ponctuations comme ",-". Sauf sur ".-" pour ne pas séparer les initiales de prénom (J.-P.)
  • footnotes : décolle les appels de note du mot qui les précède et de la ponctuation qui les suit.

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : Filter

Post by josquin » Thu Dec 12, 2019 2:47 pm

Dans le menu Projects, la commande filtrer vous permet de filtrer un corpus par rapport à des mots clefs.
Capture d’écran de 2019-12-12 14-13-50.png
Capture d’écran de 2019-12-12 14-13-50.png (87.09 KiB) Viewed 37261 times
Tout d'abord choisissez votre .prc (ne fonctionne que sur Windows) ou votre dossier, il va établir la liste des fichiers correspondante.
La case en bas à droite sur fond noir commente les actions.

En bas à gauche, dans le cadre Theme, listez les termes que vous voulez chercher (avec les boutons add et del).
Evidemment, si des mots sont déjà présents et qu'ils ne vous intéressent pas, il faut les enlever.

Définissez ensuite les valeurs souhaitées : score total et composants.
Par exemple 7 et 2 : pour valider un texte, il faut qu'il contienne au moins 2 mots différents du thème et comptent au moins 7 occurrences des mots du thème.

En cliquant sur theme evaluation, les deux cases du haut vont se peupler :
  • à gauche pour les textes qui valident les conditions (= corpus),
  • à droite ceux qui sont rejetés (=anticorpus).

Il indique le chemin du texte, puis les mots clefs trouvés et leur nombre d'occurrence.

Avec les boutons save, on enregistre les listes de gauche ou de droite, dans un nouveau .prc, avec les même paramètres (dictionnaires et langues) que le .prc fourni au départ.
Évidemment, si vous êtes filtrez un dossier et non un .prc, il n'y aura pas de paramètres dans le .prc enregistré.

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : Questions parlementaires

Post by josquin » Thu Dec 12, 2019 3:21 pm

Située dans le menu Databases, la commande Questions parlementaires vous permet de générer des fichiers .txt et .ctx pour constituer un corpus pour Prospéro à partir des moteurs de recherche du Sénat (http://www.senat.fr/quesdom.html) et de l'Assemblée (http://www2.assemblee-nationale.fr/recherche/questions).
Capture d’écran de 2019-12-12 15-07-20.png
Capture d’écran de 2019-12-12 15-07-20.png (107.72 KiB) Viewed 37251 times
Dans le champ keywords, entrez le(s) mot(s) clef(s), entre guillemets " si nécessaire.
Indiquez à gauche, l'intervalle temporel de recherche pour le Sénat (mettez deux fois la même date si vous ne voulez rien venant du Sénat.
Sélectionnez à droite les législations qui vous intéressent à l'Assemblée.

Ensuite, cliquez sur Search. En bas, dans la case noire s'affichent des commentaires sur le processus.
Les listes se remplissent avec les questions qui correspondent à votre recherche. Elles informent de la date de la question, de son numéro et éventuellement de son type (QE = question écrite), ainsi que de l'existence d'une réponse par le gouvernement (R).

En double cliquant sur une question en particulier, votre navigateur ouvrira la page web correspondant à la question.

Sélectionnez les questions qui vous intéressent, renseignez le dossier d'écriture des fichiers .txt et .ctx.
Lancer la procédure avec le bouton Process. Si clean texts est cochée, le processus opérera un nettoyage des caractères (comme si vous utilisiez la fonctionnalité avec toutes les options, voir le mode d'emploi spécifique supra)

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 QP Atlas

Post by josquin » Thu Dec 12, 2019 3:54 pm

Dans le menu dataviz, la commande QP Atlas, génère une carte des départements d'élection des parlementaires d'un corpus de questions parlementaires.

Dans Prospéro, à partir d'un corpus de questions parlementaires généré avec le script de Tirésias, entrez par Appuis externe -> lieux d'émissions
Capture d’écran de 2019-12-12 15-25-30.png
Capture d’écran de 2019-12-12 15-25-30.png (73.65 KiB) Viewed 37251 times

Copiez la liste fournie avec le clic contextuel (droit sur Windows) et renseignez une valeur suffisante pour tout récupérer (par exemple 200)
Capture d’écran de 2019-12-12 15-28-07.png
Capture d’écran de 2019-12-12 15-28-07.png (21.85 KiB) Viewed 37251 times

Dans QP Atlas de Tiresias, collez la liste, soit par CTRL-V soit par le bouton Paste
Capture d’écran de 2019-12-12 15-31-42.png
Capture d’écran de 2019-12-12 15-31-42.png (28.45 KiB) Viewed 37251 times

Le programme prend en compte ligne par ligne les valeurs composées selon la forme : Département[tabulation]valeur

Cliquez sur Draw atlas, une carte des départements de France est générée en .svg, choisissez où vous voulez l'enregistrer. Votre navigateur par défaut va l'ouvrir dans la foulée.
En passant votre pointeur sur un département, l'infobulle vous en donne les détails : (no de département) nom de département valeur
Capture d’écran du 2019-12-12 15-37-52.png
Capture d’écran du 2019-12-12 15-37-52.png (136.25 KiB) Viewed 37251 times

La méthode par défaut est celle des quarts des valeurs cumulées, c'est généralement la plus informative pour ce genre de données.


Si vous préférez vous pouvez générer une légende en quartiles.
Ici 25% des valeurs sont entre 1 et 3, 25% entre 4 et 6, 25% entre 7 et 12, et 25% entre 13 et 50.
Capture d’écran de 2019-12-12 15-43-45.png
Capture d’écran de 2019-12-12 15-43-45.png (130.58 KiB) Viewed 37251 times

ou même en divisant en quatre parts égales les valeurs.
Ici 50 divisé par 4 = 12,5, on a donc une légende avec les valeurs : de 1 à 12, de 13 à 23 (il n'y a pas de département avec 24), de 25 à 30 (il n'y a pas de valeur entre 30 et 37,5) et 50 (il n'y a pas de valeur entre 37,5 et 50)
Capture d’écran de 2019-12-12 15-46-09.png
Capture d’écran de 2019-12-12 15-46-09.png (122.4 KiB) Viewed 37251 times


Pour approfondir la question du choix de la génération de l'échelle, voir Un atlas des questions parlementaires sur le carnet de recherches Socioinformatique et argumentation


Méthodologiquement, on recommande ce type de représentation (choroplèthe) pour des densités, c'est-à-dire des valeurs rapportées à la même mesure (par exemple un indicateur pour 100 000 habitants). Or, ici, nous représentons des valeurs absolues et discontinues. Ayez bien à l'esprit que si ces cartes ont une valeur heuristique pour visualiser des zones régionales qui s'agrègent ou se démarquent de leurs voisines, la carte peut vous amener à voir ces valeurs comme comparables à l'unité près (alors que tous les départements n'ont pas le même nombre de parlementaires et que les parlementaires ne posent pas le même nombre de question) et même à vous représenter les données comme discrètes.


Aussi, un autre rendu est proposé par le logiciel, avec des carrés proportionnels centrés sur les préfectures.
proportional.PNG
proportional.PNG (1.68 KiB) Viewed 23647 times
Si vous entendez diffuser un document, utilisez cette méthode, moins sujette à ces biais de lecture (elle en présente d'autres et partage celui de lier à un espace géographique différent l'agrégation au cours du temps de questions posées dans des institutions nationales).
squares.PNG
squares.PNG (66.7 KiB) Viewed 23647 times
Pour essayer d'être le moins déformant dans la perception, on utilise des carrés plutôt que des cercles, et des surfaces proportionnelles.

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : Cited years timeline

Post by josquin » Thu Dec 12, 2019 4:24 pm

Dans Dataviz, la commande Cited years timeline s'utilise de la façon suivante :

Dans Prospéro, ouvrez la fenêtre des formules (dans le menu inférences).
Capture d’écran de 2019-12-12 16-02-27.png
Capture d’écran de 2019-12-12 16-02-27.png (37.67 KiB) Viewed 37250 times
  1. Chargez le fichier de formules ref_temporelles.frm, vous le trouverez dans le dossier frm du répertoire Tiresias.
  2. Calculez. Il repère les formes dans lesquelles une année est citée, comme "le 12 décembre 2019", "en 1957", "de l'année 2008", ...
  3. Sélectionnez la classe de formules recup. Dans la fenêtre de résultats (en bas), le menu contextuel (clic droit) vous permet de les copier. Choisissez une valeur suffisante pour tout récupérer (ici par exemple 3000)
Dans Cited years timeline de Tirésias.
Capture d’écran de 2019-12-12 16-11-38.png
Capture d’écran de 2019-12-12 16-11-38.png (57.34 KiB) Viewed 37250 times
  1. Collez le résultat avec le bouton Paste ou CTRL-C
  2. Calculez. Il classe les années dans l'ordre chronologique, additionne les occurrences, créée les années manquantes.
  3. Copiez avec le bouton Copy ou CTRL-A CTRL-C

Dans votre tableur préféré, collez dans la première case avec CTRL-V (les valeurs sont séparées par une tabulation)
Sélectionnez les deux colonnes, insérez un graphique/diagramme en définissant la première colonne comme étiquette.


Capture d’écran de 2019-12-12 16-18-35.png
Capture d’écran de 2019-12-12 16-18-35.png (40.77 KiB) Viewed 37250 times

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : Europresse

Post by josquin » Thu Dec 12, 2019 4:56 pm

Pour générer les fichiers .txt et .ctx à partir d'une recherche dans la base de données Europresse.
Vous devez évidemment avoir un accès Europresse, de nombreux établissements universitaires en France sont abonnés.
Il vous faut passer par la version classique, sur la page Europresse, elle se trouve en haut à droite, tant quelle existe...
Capture d’écran de 2019-12-12 16-28-13.png
Capture d’écran de 2019-12-12 16-28-13.png (5.48 KiB) Viewed 37250 times

Effectuez votre recherche. Sélectionnez les textes qui vous intéressent, puis cliquez sur la disquette pour sauvegarder au format HTML.

Capture d’écran de 2019-12-12 16-35-34.png
Capture d’écran de 2019-12-12 16-35-34.png (78.82 KiB) Viewed 37250 times

Attention :
  • vous ne pouvez pas légalement redistribuer le fichier obtenu
  • Veillez à bien vous déconnecter quand vous avez fini pour ne pas saturer les sessions (limitées) pour les autres utilisateurs d'Europresse de votre établissement (ça s'effectue au même endroit où vous avez choisi la version classique)
Dans Tiresias, menu Databases, choisissez la commande Europresse.
Capture d’écran de 2019-12-12 16-45-27.png
Capture d’écran de 2019-12-12 16-45-27.png (48.92 KiB) Viewed 37250 times
  1. Sélectionnez le dossier dans lequel vous avez enregistré les html générés par Europresse
  2. Sélectionner le .html a analyser et cliquez sur le bouton Analyse. La case de droite est peuplée par les articles trouvés, un résumé est produit dans la case la plus basse à fond noir.
  3. Ici, il n'a pas reconnu un format de source, pour attribuer automatiquement les champs du .Ctx. Le cadre Unknown Sources permet de le renseigner. Si le média existe dans la base, il suffit de le trouver dans le menu déroulant, sinon renseigner son nom, le type de support (par exemple Presse quotidienne régionale...) ainsi qu'une abréviation qui servira à former le nom des fichiers générés. Cliquez ensuite sur Add to support.publi pour sauvegarder l'ajout.
  4. Sélectionnez les textes voulus dans liste de droite, sélectionnez le dossier d'écriture des fichiers dans celle du bas, puis cliquez sur Write. Si clean texts est cochée, il appliquera la fonction de nettoyage des caractères (avec toutes les options voir supra).

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Tiresias version python3 : Word Replace

Post by josquin » Fri Dec 13, 2019 11:53 am

Dans le menu Corrections, la commande Word Replace permet de remplacer des motifs dans tous les .txt d'un dossier.

Capture d’écran de 2019-12-13 11-42-47.png
Capture d’écran de 2019-12-13 11-42-47.png (22.08 KiB) Viewed 37247 times
Sélectionnez le dossier dans lequel vos changements doivent être effectués.
Avec le bouton Add, ajoutez des motifs à remplacer, ils se placent dans la liste de gauche. Il peut y en avoir plusieurs.
Ils seront tous remplacés par le motif que vous placez dans le champ central.
Cliquez sur Replace. La case sur fond noir du bas vous commente les opérations.

Dans l'exemple affiché, nous souhaitons remplacer "broadest range" et "largest range" par "smallest range", le commentaire indique qu'il a trouvé 5 fichiers .txt dont 1 dans lequel un des motifs à remplacer apparaissait. Il a donc édité un fichier.

Les options :
  • recursive : agit également dans les sous-dossiers
  • test only : n'écrit pas le résultat dans les fichiers
  • with marks : si la case est cochée, le remplacement sera effectif même si les motifs à remplacer sont directement précédés ou suivis d'un des signes de ponctuation suivant .,;!?':¿(){}[]-
La liste de droite montre l'historique des motifs utilisés. Avec Recall, vous pouvez directement repeupler les listes avec de précédents motifs.

josquin
Posts: 157
Joined: Wed Oct 05, 2011 4:51 pm

Re: Tiresias version python3 : month heatmap

Post by josquin » Tue Apr 14, 2020 9:11 am

Month heatmap permet de générer une frise chronologique du nombre de textes par mois dans un corpus.

Dans Prospéro, dans le menu Temporalités, sélectionner Temps du corpus et spécifier l'unité en mois. Le logiciel envoie au presse-papier un tableau avec en première colonne le mois et en seconde colonne le nombre de textes correspondant.

Une fois obtenu le message confirmant cette copie, dans Tirésias, dans le menu Dataviz, sélectionner Month heatmap.

Coller le tableau.
month heatmap.png
month heatmap.png (23.45 KiB) Viewed 33610 times
Cliquer sur Draw heatmap et enregistrer le fichier svg à l'endroit souhaité. Votre navigateur par défaut s'ouvre pour afficher l'image générée.

Vous obtenez une grille avec en abscisse les années, en ordonnée les mois, la case est foncée proportionnellement au nombre relatif de textes du mois. À droite, la légende indique les valeurs min et max et des intensités au quart ou aux quartiles des valeurs. Dans l'exemple infra, elle indique que le 3e quartile (Q3) est à 19, c'est-à-dire que 75% des mois sont en-dessous et 25% au-dessus.

Sous la grille, un histogramme affiche le nombre annuel de textes.

En passant le pointeur sur les cases, s'affichent mois/années et valeur.
heatmap.png
heatmap.png (25.47 KiB) Viewed 33610 times

Post Reply

Who is online

Users browsing this forum: No registered users and 18 guests