Le Dictionnaire électronique des mots (DEM) en format JSON-lines
JSON est un langage de balisage souvent utilisé dans le domaine du TAL pour lequel plusieurs outils de manipulation très efficaces ont été développés. Ce document présente l'organisation du DEM ainsi que des exemples simples d'utilisation de la version JSON.
Elle est publiée en format JSON lines: chaque entrée du lexique est une ligne du fichier et chaque ligne est une expression JSON qui peut être traitée facilement avec toute librairie manipulant ce type de données. Le fait que chaque entrée soit une seule ligne facilite les extractions par des outils tels que jq
ou même grep
. Ces extractions peuvent ensuite être manipulées facilement avec d'autres outils bien connus des informaticiens-linguistes.
Les prochaines sections décrivent le format JSON pour LVF et DEM et donne quelques exemples d'utilisation avec l'outil jq
. Vous pourriez consulter cette excellente introduction à jq
.
Les descriptions se limitent à donner les noms de champs qui sont identiques à ceux des documents originaux. Ces descriptions sont formalisées sous la forme d'un JSON-RNC, un formalisme inspiré de la forme compacte de Relax-NG, mais qui devrait être familière à quiconque connaît JSON. Ceci sert non seulement de documentation, mais aussi d'outil de validation des entrées ce qui en garantit le format attendu.
Une description d'un enregistrement JSON-RNC est une liste de champs, chacun suivi du type de la donnée attendue. À priori, un champ est obligatoire à moins d'être suivi par un point d'interrogation (?
). Certaines contraintes supplémentaires peuvent être ajoutées: par exemple, les valeurs minimum ou maximum, la longueur d'une liste ou une expression régulière qui correspond aux valeurs acceptables pour ce champ. Ces contraintes apparaissent entre parenthèses précédées de @
après le nom du type de la valeur. Comme les contraintes d'expression régulière sont très fréquentes, il est possible d'indiquer cette expression régulière entre deux obliques (/.../
) au lieu d'indiquer string@(pattern="...")
.
Description d'une entrée
Une entrée du DEM est composé de 14 champs, dont les 12 premiers correspondent aux colonnes du fichier CSV décrits dans la documentation originale rédigée par Françoise Dubois-Charlier.
M
: le mot ou l'expressionno
: numéro d'acceptionreflexif
: si verbe réflexifexclamatif
: sens exclamatifinterrogatif
: sens interrogatifh-aspire
: si h aspiréCONT
: l’articulation essentielle de ce dictionnaire. Chaque entrée est rangée, par CONT, dans une bulle/famille sémantico-syntaxique définie par le terme pivot de CONT.DOM
: domaine avec des informations auxiliairesOP
: Donne des précisions secondaires sur le référent du mot d’entrée, souvent en fonction/combinaison de ce qui est inscrit dans sa rubriqueCONT
.SENS
: courte définition sous forme d'une gloseOP1
: Donne la classe de verbes, définie dans LVF, à laquelle le mot d’entrée est associé en vertu du terme pivot de sa rubriqueCONT
CA
: informations sur la catégorie grammaticaleid
: numéro séquentiel servant d'identificationLVF
:si ce mot figure dans le LVF
Voici un exemple de l'entrée pour le mot abeille
. L'indentation qui permet de faire ressortir la structure n'est évidemment pas présente dans le format JSON lines, où toute l'entrée est placée sur une seule ligne.
Schéma
Exemples d'utilisation avec jq
sous Linux
Pour connaître le nombre d'expressions (c-à-d, un mot contenant au moins une espace):
jq -c 'select(.M |contains(" "))' < DEM.jsonl| uniq| wc -l
qui retourne 13471
.
Pour connaître les québécismes présents dans le DEM:
jq -r 'select(.DOM.regionalisme=="québécois")|.M' < DEM.jsonl
qui retournera les 14 mots suivants:
argonaute avionnerie blanchon crosseur demiard farlouche ferlouche fudge pénard péquiste pied-de-roi soccer traversier vivoir
Accès aux ressources
- DEM.jsonl [28 Mo] : entrées du DEM
- DEM-echantillon.jsonl : échantillon de 33 entrées du DEM dont le mot ne contient pas d'espace où chaque entrée est d'une catégorie différente. Ce court fichier est pratique pour expérimenter en utilisant jqplay). Ce fichier a été créé avec la commande suivante
jq -s -c 'map(select(.M|contains(" ")|not))|unique_by(.CA.code)|.[]' DEM.jsonl > DEM-echantillon.jsonl
- DEM-echantillon-pprint.txt : version indentée du fichier précédent. Ce n'est pas un fichier JSON valide, car il contient plusieurs expressions JSON
- DEM.jsonrnc : schéma décrivant les entrées du DEM
- Interface de consultation du DEM