Guide d’utilisation

Note

La langue des entrées lexicales est le français. Le corpus lexical est basé sur Lexique383. Notez également que pylexique ne fonctionne que sur Python 3.X.

Pour utiliser pylexique à partir de la ligne de commande :

$ pylexique manger

Le résultat sera une représentation json des objets LexItem :

{
    "manger": [
        [
            {
                "ortho": "manger",
                "phon": "m@Ze",
                "lemme": "manger",
                "cgram": "NOM",
                "genre": "m",
                "nombre": "s",
                "freqlemfilms2": 5.62,
                "freqlemlivres": 4.05,
                "freqfilms2": 5.62,
                "freqlivres": 4.05,
                "infover": "",
                "nbhomogr": 2,
                "nbhomoph": 7,
                "islem": True,
                "nblettres": 6,
                "nbphons": 4,
                "cvcv": "CVCCVC",
                "p_cvcv": "CVCV",
                "voisorth": 9,
                "voisphon": 12,
                "puorth": 6,
                "puphon": 4,
                "syll": "m@-Ze",
                "nbsyll": 2,
                "cv_cv": "CV-CV",
                "orthrenv": "regnam",
                "phonrenv": "eZ@m",
                "orthosyll": "man-ger",
                "cgramortho": "NOM,VER",
                "deflem": "100",
                "defobs": "33",
                "old20": 1.35,
                "pld20": 1.25,
                "morphoder": "manger",
                "nbmorph": "1"
            },
            {
                "ortho": "manger",
                "phon": "m@Ze",
                "lemme": "manger",
                "cgram": "VER",
                "genre": "",
                "nombre": "",
                "freqlemfilms2": 467.82,
                "freqlemlivres": 280.61,
                "freqfilms2": 207.63,
                "freqlivres": 134.26,
                "infover": "\"inf;;\"",
                "nbhomogr": 2,
                "nbhomoph": 7,
                "islem": True,
                "nblettres": 6,
                "nbphons": 4,
                "cvcv": "CVCCVC",
                "p_cvcv": "CVCV",
                "voisorth": 9,
                "voisphon": 12,
                "puorth": 6,
                "puphon": 4,
                "syll": "m@-Ze",
                "nbsyll": 2,
                "cv_cv": "CV-CV",
                "orthrenv": "regnam",
                "phonrenv": "eZ@m",
                "orthosyll": "man-ger",
                "cgramortho": "NOM,VER",
                "deflem": "100",
                "defobs": "20",
                "old20": 1.35,
                "pld20": 1.25,
                "morphoder": "manger",
                "nbmorph": "1"
            }
        ]
    ]
}
$ pylexique boire
{
    "boire": [
        [
            {
                "ortho": "boire",
                "phon": "bwaR",
                "lemme": "boire",
                "cgram": "NOM",
                "genre": "m",
                "nombre": "s",
                "freqlemfilms2": 2.67,
                "freqlemlivres": 2.03,
                "freqfilms2": 2.67,
                "freqlivres": 2.03,
                "infover": "",
                "nbhomogr": 2,
                "nbhomoph": 2,
                "islem": True,
                "nblettres": 5,
                "nbphons": 4,
                "cvcv": "CVVCV",
                "p_cvcv": "CYVC",
                "voisorth": 9,
                "voisphon": 14,
                "puorth": 4,
                "puphon": 4,
                "syll": "bwaR",
                "nbsyll": 1,
                "cv_cv": "CYVC",
                "orthrenv": "eriob",
                "phonrenv": "Rawb",
                "orthosyll": "boi-re",
                "cgramortho": "NOM,VER",
                "deflem": "96",
                "defobs": "30",
                "old20": 1.4,
                "pld20": "1",
                "morphoder": "boire",
                "nbmorph": "1"
            },
            {
                "ortho": "boire",
                "phon": "bwaR",
                "lemme": "boire",
                "cgram": "VER",
                "genre": "",
                "nombre": "",
                "freqlemfilms2": 339.05,
                "freqlemlivres": 274.32,
                "freqfilms2": 142.15,
                "freqlivres": 100.27,
                "infover": "\"inf;;\"",
                "nbhomogr": 2,
                "nbhomoph": 2,
                "islem": True,
                "nblettres": 5,
                "nbphons": 4,
                "cvcv": "CVVCV",
                "p_cvcv": "CYVC",
                "voisorth": 9,
                "voisphon": 14,
                "puorth": 4,
                "puphon": 4,
                "syll": "bwaR",
                "nbsyll": 1,
                "cv_cv": "CYVC",
                "orthrenv": "eriob",
                "phonrenv": "Rawb",
                "orthosyll": "boi-re",
                "cgramortho": "NOM,VER",
                "deflem": "100",
                "defobs": "30",
                "old20": 1.4,
                "pld20": "1",
                "morphoder": "boire",
                "nbmorph": "1"
            }
        ]
    ]
}

Vous pouvez également fournir plusieurs mots et/ou spécifier un fichier de sortie pour enregistrer les informations lexicales dans un fichier json.

$ pylexique il mange une baguette

$ pylexique il boit du vin rouge -o path/to/the/output/json/file.json

Le résultat sera similaire au précédent, avec une entrée json pour chaque mot de la séquence.


Vous pouvez également récupérer toutes les formes lexicales du ou des mots fournis en utilisant l’option “-a” ou “–all_forms”.

$ pylexique il mange une baguette -a

$ pylexique il boit du vin rouge -o path/to/the/output/json/file.json --all_forms

Pour utiliser pylexique comme une bibliothèque dans vos propres projets :

from pylexique import Lexique383
from pprint import pprint

#  Create new Lexique383 instance with a pre-built Lexique383.
LEXIQUE = Lexique383()

# Creates a new Lexique383 instance while supplying your own Lexique38X lexicon. The first time it will it will be
# slow to parse the file and create a persistent data-store. Next runs should be much faster.
RESOURCE_PATH = 'path/to/Lexique38x'
# parser_type must be either omitted if RESOURCE_PATH is a csv file and you want to use the default csv parser.
# if parser_type is provided it should be either 'xlsb', 'pandas_csv', 'csv', 'std_csv'. 'std_csv' is used by default.
LEXIQUE2 = Lexique383(RESOURCE_PATH, parser_type='std_csv')

Il y a 2 façons d’accéder à l’information lexicale d’un mot : Soit vous utilisez la méthode Lexique383.get_lex(item) Soit vous accédez directement au répertoire du lexique par LEXIQUE.lexique[item] .

Notez que item peut être soit une chaîne de caractères, soit une séquence de chaînes de caractères lorsque vous utilisez Lexique383.get_lex(item) .

#  Retrieves the lexical information of 'abaissait' and 'a'.
var_1 = LEXIQUE.lexique['abaissait']
var_1_bis = LEXIQUE.get_lex('abaissait')

# Check both objects are the same
var_1_equality = var_1 == var_1_bis['abaissait']
print(var_1_equality)

Comme en français le mot “a” est un mot très polysémique, il a plusieurs entrées dans le Lexique 383. Pour cette raison, le Dict LEXIQUE a pour clés la valeur de la propriété ortho de son entrée lexicale. Dans le cas de “abaissait”, il n’y a qu’un seul élément lexical correspondant à cette clé de dictionnaire. Mais dans le cas de “a”, il y a plusieurs objets LexItem correspondant à cette clé et les objets LexItem sont stockés dans une liste correspondant à la valeur de la clé.

var_2 = LEXIQUE.lexique['a']
var_2_bis = LEXIQUE.get_lex('a')

# Check both objects are the same
var_2_equality = var_2 == var_2_bis['a']
print(var_2_equality)

# Retrieving the lexical information of several words by passing a Sequence of strings

var_multiple = LEXIQUE.get_lex(('il', 'mange', 'une', 'baguette'))
pprint(var_multiple)

Vous pouvez obtenir tous les anagrammes d’un mot donné en utilisant la méthode get_anagrams().

var_3 = lexicon.get_anagrams('abaisser')

pprint(var_3)

Vous pouvez obtenir toutes les formes d’un mot donné en appelant la méthode Lexique383.get_all_forms(word) :

all_avoir_forms = LEXIQUE.get_all_forms('avez')
print(len(all_avoir_forms))

print('\n')

all_vouloir_forms = LEXIQUE.get_all_forms('voulu')
print(len(all_vouloir_forms))

Vous pouvez utiliser la méthode LexItem.to_dict() pour produire un dictionnaire avec des paires clé/valeur correspondant au LexItem

print('\n\n')
if isinstance(var_1, list):
    for elmt in var_1:
        pprint(elmt.to_dict())
        print('\n\n')
else:
    pprint(var_1.to_dict())
    print('\n\n')

print('\n\n')
if isinstance(var_2, list):
    for elmt in var_2:
        pprint(elmt.to_dict())
        print('\n\n')
else:
    pprint(var_2.to_dict())
    print('\n\n')

# Get all verbs in the DataSet. Because some words have the same orthography, some keys of the dictionary
# don't have a unique LexItem object as their value, but a list of those.
verbs = []
for x in LEXIQUE.lexique.values():
    if isinstance(x, list):
        for y in x:
            if not isinstance(y, list) and y.cgram == 'VER':
                verbs.append(y)
    elif x.cgram == 'VER':
        verbs.append(x)
    else:
        continue

print('Printing the first 5 verbs found in the preceding search:')
pprint(verbs[0:5])

# Print the first 5 verbs with full lexical information.
for verb in verbs[0:5]:
    pprint(verb.to_dict())

Documentation pour Lexicon383 : http://www.lexique.org