Lexicon

Il existe un très grand nombre d’applications pour lesquelles il est nécessaire d’avoir un lexique de mots (correcteurs orthographiques, jeux de lettres, …).

Pour obtenir un lexique, on peut utiliser une des bases de données open source sur le site : http://www.lexique.org/

Ce site met à disposition de nombreuses bases à télécharger ou bien à consulter.

Sur OpenLexicon, Christophe Pallier (Directeur de Recherche au CNRS) met à disposition :

  • un répertoire des bases de données lexicales,
  • des scripts permettant d’interroger, de manipuler ou de créer des bases de données lexicales,
  • des applications pour créer des interfaces graphiques dynamiques avec les bases de données lexicales,
  • des documents liés au traitement des ressources lexicales.

 

Voici un petit aperçu de ce que l’on peut faire à l’aide du langage Python …

 

Tout ce qui suit utilise la bibliothèque pandas, dont la documentation est remarquable !

 

Supposons que nous souhaitions obtenir une liste de mots pour un jeu de lettres (type mots croisés, mots mêlés, Scrabble, jeu du pendu, …). Ces mots devront être :

  • des noms ou des verbes à l’infinitif
  • sans espace ni tiret
  • sans accents
  • de longueur supérieure ou égale à 2 mots (et éventuellement inférieure ou égale à un autre nombre)
  • en lettres majuscules

Obtenir le lexique de la langue Française

On se propose d’utiliser le Lexique3, donc la documentation est

lex  est un objet DataFrame  (doc)

Pour avoir un aperçu de son contenu, on utilise tout simplement la console ou bien fonction print()  :

Pour connaitre les noms des colonnes :

Les seuls champs qui nous intéresserons ici seront :

  • Lemme (lemme) : forme canonique, c’est à dire l’infinitif pour un verbe, la masculin singulier pour un nom ou un adjectif. Par exemple, l’item chienne a pour lemme chien.
  • Classe grammaticale (cgram) : Les principaux codes utilisés pour représenter les catégories grammaticales sont :
    • ADJ : adjectif
    • ADV : adverbe
    • ART : article
    • AUX : auxiliaire
    • CON : conjonction
    • NOM : nom commun
    • PRE : préposition
    • PRO : pronom
    • VER : verbe

 

Sélectionner une colonne

Sélectionner selon un critère

 

Sélectionner selon la taille des chaînes de caractères

 

Sélectionner selon le contenu des chaînes de caractères

On souhaite supprimer les mots avec espace :

Remarques :

  • ~  signifie « non »
  • na=True  permet de traiter les valeurs « vides » (NaN), en considérant que .contains  doit renvoyer True 

On peut faire de même avec les tirets :

 

Conversion en lettres majuscules

 

Suppression des accents

Pour supprimer les accents, il faut utiliser une des propriétés de l’encodage Unicode qui permet de normaliser les caractères.

Ensuite, une conversion en ASCII puis en Unicode de nouveau permet de s’assurer que l’on n’a bien que de simples lettres de A à Z :

 

Supprimer les doublons

 

Enregistrer le résultat

Afin de ne pas avoir à tout refaire à chaque fois, d’autant plus que la procédure requière un accès à Internet, on peut enregistrer la DataFrame  obtenue dans un fichier.

Le format le plus simple, mais qui ne donne pas un fichier « lisible » par un utilisateur, est le format pickle (voir sérialisation) :

 

Et pour le lire :

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code