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'expression
  • no: numéro d'acception
  • reflexif: si verbe réflexif
  • exclamatif: sens exclamatif
  • interrogatif: sens interrogatif
  • h-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 auxiliaires
  • OP: 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 rubrique CONT.
  • SENS: courte définition sous forme d'une glose
  • OP1: Donne la classe de verbes, définie dans LVF, à laquelle le mot d’entrée est associé en vertu du terme pivot de sa rubrique CONT
  • CA: informations sur la catégorie grammaticale
  • id: numéro séquentiel servant d'identification
  • LVF: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