Le site arthur.bebou.netlib.re - retour accueil
git clone git://bebou.netlib.re/arthur.bebou
Log | Files | Refs |
index.sh (7307B)
1 #! page 2 title: Comment j\'ai volé le DES au CRISCO 3 author: Arthur Pons 4 description: Argent publique = Recherche publique, libérons le contenu du dictionnaire électronique des synonymes de sa cage webeuse 5 publication: 2024-05-24 6 7 sectionmd: main 8 9 ## Les résultats 10 11 [La base de données du DES en json - 6Mo](des.json.gz)\ 12 [Un TSV du top 10 des synonymes pour chaque mot - 4Mo](data) 13 14 ## Pourquoi ? 15 16 Parce que l'on veut pouvoir avoir des synonymes sans avoir besoin d'internet. 17 Cela favorise la résilience, la sobriété et l'interopérabilité des usages 18 numériques. Initialement je pensais que ce serait fatiguant à faire et/ou que 19 ça prendrait trop de place et/ou que ça n'était pas nécessaire au vu des 20 besoins (personne n'a besoin de la totalité des synonymes de la langue 21 française sous la main). Puis une amie m'a convaincu de l'inverse, notamment 22 que ça ne devrait pas représenter de grosses quantités de données, alors j'ai 23 essayé. Merci à elle ! 24 25 Sur la [page d'accueil] on retrouve ce texte : 26 27 > Constitué à partir de données – mots et liens – extraites de dictionnaires et 28 > des recherches de l’ELSAP, laboratoire associé au CNRS, puis du CRISCO, le DÉS 29 > constitue dans sa forme actuelle une œuvre originale, propriété de 30 > l’université de Caen Normandie. La consultation du DÉS et la reproduction de 31 > ses pages sont libres, mais la base de données reste la propriété exclusive de 32 > l’université. L’utilisation de copies de cette base de données ne peut se 33 > faire que sous contrat de licence avec l’université. En conséquence, toute 34 > requête automatique visant à collecter les données du DÉS est strictement 35 > interdite. 36 37 Ce qui va suivre dans cet article est donc illégal 😲 38 39 Pourtant le CRISCO est financé par de l'argent publique et rend déjà accessible 40 la totalité des données du DES via son interface web. De plus le ministère de 41 l'enseignement supérieur et de la recherche dispose d'un [Plan national pour la 42 science ouverte] qui stipule à plusieurs reprises qu'il faudrait ouvrir autant 43 que possible les données de la recherche. En réalité le DES est déjà remarquable 44 en cela qu'il rend tout accessible via au moins une interface, même si ce n'est 45 pas celle que je préfère, communique bien sur les statistiques d'utilisation du 46 service, la vie du projet et permet même à n'importe qui de proposer des 47 modifications. Compte tenu des efforts déjà consentis par le CRISCO, j'ai du 48 mal à comprendre pourquoi tracer une ligne rouge aux requêtes automatiques[^1]. 49 Je vais donc, l'esprit tranquille, procéder à utiliser une copie de cette base 50 de donnée sans contrat de licence. Et sans faire de requête automatique. 51 52 ## Comment ? 53 54 Je pense que la première et bonne façon de faire aurait été d'envoyer un 55 mail à l'équipe de recherche expliquant le besoin. Il est assez probable que 56 l'équipe réponde favorablement. Cela dit j'avais à cœur de vérifier si c'était 57 possible autrement, via un bête lien quelque part dans la documentation. 58 59 En l'occurrence je ne suis pas parvenu à trouver ce que je voulais ni sur la [page 60 d'accueil] ni [la page de présentation] ni [la page du dictionnaire elle-même]. 61 Je n'ai peut-être pas les yeux en face des trous. 62 63 Je suis toujours un peu tiraillé entre deux sentiments dans ce genre de cas. 64 D'un côté je ne suis plus surpris de voir encore un service, une donnée, rendue 65 d'abord via une interface web avant même de se soucier si la donnée est 66 accessible sous sa forme initiale et de l'autre je suis toujours surpris de voir 67 que même le monde universitaire tombe dans ce travers. On me permet de partager 68 la page web dans linkedin mais pas de télécharger la base de donnée. 69 70 ### La version autonome 71 72 Heureusement il existe une version dîtes "autonome" disponible [ici]. Qui dit 73 pas de connexion internet dit toutes les données en locale. Il devrait donc 74 exister un fichier contenant ce qu'il nous faut. On télécharge 54Mo de données 75 zippées, 207Mo décompressés : 76 77 $ curl -Ls https://crisco4.unicaen.fr/des/a_DES.zip > des.zip 78 $ unzip des.zip 79 $ du -hs des 80 207Mo 81 82 Pour explorer le contenu du dossier on fait ensuite un grep un peu massif là 83 dedans et on le pipe dans fzy dont la sortie sera ouverte dans vim : 84 85 grep -rnIH | 86 fzy -l 100 | 87 cut -d':' -f-2 | sed 's/:/ +/' | 88 xargs -or vim 89 90 Si vous êtes sur un ordi pas très puissant ça n'est probablement pas l'idée du 91 siècle mais passons. En cherchant un mot comme "machin" je trouve des occurrences 92 intéressantes dans le fichier `sortieDES.txt`, on le sélectionne pour l'ouvrir. 93 Effectivement on y trouve un gros objet json du type : 94 95 { 96 mot : { 97 synonymes: [ 98 1, 99 2, 100 ...], 101 liste10: [ 102 1, 103 chiffre, 104 2, 105 chiffre2, 106 ...]; 107 108 Nous avons trouvé notre base de donnée ! Le fichier fait 36Mo en tout. Si vous 109 le voulez sans avoir à télécharger l'application java en entier je propose une 110 [version compressée](des.json.gz) que vous pouvez décompresser avec `gunzip 111 des.json.gz`. 112 113 ### TSViser le fichier 114 115 [J'aime bien le TSV](/amourtsv/) et en réalité ne suis qu'intéressé par la 116 "liste10", c'est à dire le top 10 des synonymes les plus "proches". J'ai 117 donc créé un format TSV un peu moche pour contenir ces infos : 118 119 cat sortieDES.txt | jq 'keys_unsorted' | sed '1 d;$ d' > mots 120 cat sortieDES.txt | jq '.[].liste10|join(";")' > synonymes 121 paste mots synonymes | tr -d '",' | sed -E 's/([0-9]);([^0-9])/\1\t\2/'g > data 122 123 Je suppose que l'on peut faire ça avec une seule commande jq mais j'y comprends 124 pas grand chose. Au final `data` ressemble à : 125 126 abaisse-langue spatule;50 127 abaissement baisse;41 dégénérescence;31 décadence;31 déclin;29 avilissement;28 diminution;26 dégradation;26 déchéance;22 dépréciation;22 affaiblissement;19 détérioration;14 affaissement;14 rabaissement;14 honte;11 bassesse;11 indignité;10 128 abaisser rabaisser;49 avilir;41 déprécier;23 humilier;23 baisser;20 dégrader;20 diminuer;17 flétrir;15 ravaler;14 réduire;13 courber;13 abâtardir;11 salir;11 rabattre;11 rapetisser;9 affaiblir;9 129 abajoue bajoue;200 joue;40 130 131 C'est un format qu'on peut requêter avec par exemple : 132 133 $ grep "^manger\t" data | cut -f2- | tr ';\t' '\t\n' 134 bouffer 20 135 dévorer 19 136 engloutir 14 137 avaler 14 138 croquer 13 139 consumer 13 140 s'empiffrer 11 141 dépenser 11 142 absorber 10 143 dissiper 9 144 user 9 145 ronger 8 146 se gaver 8 147 engouffrer 8 148 dilapider 8 149 se gorger 8 150 151 Ce format est disponible [ici](data). 152 153 [page d'accueil]: https://crisco.unicaen.fr/dictionnaire-electronique-des-synonymes-des/ 154 [la page de présentation]: https://crisco.unicaen.fr/dictionnaire-electronique-des-synonymes-des/presentation-du-dictionnaire-electronique-des-synonymes/ 155 [la page du dictionnaire elle-même]: https://crisco4.unicaen.fr/des/ 156 [Plan national pour la science ouverte]: https://www.enseignementsup-recherche.gouv.fr/fr/le-plan-national-pour-la-science-ouverte-2021-2024-vers-une-generalisation-de-la-science-ouverte-en-48525 157 [^1]: contre lesquelles rien n'est fait par ailleurs 158 [ici]: https://crisco.unicaen.fr/dictionnaire-electronique-des-synonymes-des/version-autonome-du-dictionnaire-electronique-des-synonymes/ 159 160 endsection