OK
AJAX error!

Les forumsGrammalecte[CLI-Python] Ajouter un mot

[CLI-Python] Ajouter un mot

Bonjour,

Je me demandais si il était possible d'ajouter un mot à partir d'un script python.

J'ai essayé d'ajouter le mot dans un .dic et ensuite de le convertir en .bdic avec l'outil Convert_dict de chromium mais le .bdic généré ne semble pas fonctionner avec grammalecte car le header n'est pas le bon.
le 21 juin 2018 à 15:57
Bonjour,

Il n’y a aucun rapport entre les dictionnaires binaires de Chromium et les nôtres.

Si vous voulez ajouter un mot au dictionnaire de Grammalecte, il faut soit :
— l’ajouter au lexique des sources de Grammalecte et recompiler le tout avec les options idoines,
— soit créer votre dictionnaire personnalisé avec Firefox/Chrome/LibreOffice et le charger avec la fonction prévue dans l’API.

Il est vrai que j’ai oublié d’ajouter une option dans la CLI pour charger un dictionnaire personnel. Je vais faire ça rapidement, ça ne devrait pas prendre longtemps.
le 22 juin 2018 à 08:44
Voilà, j’ai ajouté une option à la CLI pour ajouter un dictionnaire personnalisé (qui doit être créé avec l’extension Grammalecte pour Firefox, Chrome ou LibreOffice).
le 22 juin 2018 à 09:59
D'abord merci de votre support rapide !

serait-il possible de pouvoir ajouter un mot directement à partir du CLI dans le dictionnaire personnelle ?

ma situation est la suivante, j'utilise Grammalecte pour corriger des texte dans une application c#. Grammalecte corrige périodiquement le texte et propose des suggestions à l'utilisateur. Mais le problème est que la plupart des mots sont des termes médicaux qui ne sont pas dans le dictionnaire de base. je veut que l'utilisateur soit capable d'ajouter des mots sans règles pour que le mot ne soit plus souligner en rouge.

La façons que j'avais pensé le faire au début était d'ajouter le mot dans un .dic , de le convertir en .bdic et de le loader en tant que dictionnaire personnelle. mais étant donné que le format de Chromium n'est pas le même je suis un peu perdu.



le 22 juin 2018 à 15:42
Voici le script que j'ai fait avec lequel l'application C# communique pour avoir les informations de correction


#!/usr/bin/env python
import grammalecte
import os

# Clear the console
def cls():
os.system('cls' if os.name == 'nt' else 'clear')

# Returns a Json containing errors
def correct(s_text):
cls()
print("[WAITING]")
json = grammar_checker.generateParagraphAsJSON(0, s_text, bEmptyIfNoErrors=True)
cls()
print("[OUTPUT]")
print(json)

# Wait for input from the application and correct it
cls()
grammar_checker = grammalecte.GrammarChecker("fr")
while True:
print("[INPUT]")
text = input()
if text != "[exit]":
correct(text)
else:
break

le 22 juin 2018 à 15:47
Pour la gestion du lexique personnel, il n’y a pas de solution miracle : ça prend du temps. L’éditeur lexical permet d’ajouter des mots en quelques clics avec des informations grammaticales. Si vous ajoutiez ces mots sans les étiquettes nécessaires, ça ne servirait à rien pour le correcteur grammatical qui est incapable de deviner la nature grammaticale d’un mot s’il n’est pas étiqueté.
Et si j’autorisais d’ajouter des mots sans les étiquettes, on finirait par me reprocher que le correcteur ne peut reconnaître certaines erreurs pour les mots en question. Ce qui est pire de mon point de vue.

Par ailleurs il est toujours possible de proposer le vocabulaire médical dans la base de données commune… c’est à ça que sert ce site à l’origine…
le 22 juin 2018 à 19:06
D'accord, le problème avec le dictionnaire communautaire est que le mot n'est pas ajouté instantanément car il doit être accepté et cela est normal , je comprend.

Si j'ai les informations(genre, nombre..) sur le mots serait-il possible d'ajouter le mot directement par une fonction ?
Il ne faut pas que l'utilisateur aille besoin de quitter l'application pour ajouter un mot et il faut que ce soit le plus court possible car au début il va y avoir beaucoup de mot à ajouter.
le 26 juin 2018 à 16:30
Le dictionnaire de Grammalecte est compilé. Il ne s’agit pas d’une liste mais d’un graphe de mots, ce qui permet de le parcourir rapidement sans avoir à chercher si un mot existe dans la liste (par dichotomie, par exemple). La rapidité et la compacité du dictionnaire ont un prix : on ne peut rien ajouter, supprimer ou éditer directement dans le dictionnaire. Il faut le décompiler, l’éditer et le recompiler.

Si vous faites ça sur le dictionnaire commun, ça prendra du temps, une à plusieurs minutes selon la puissance de la machine. Car il y a environ 500 000 entrées. C’est assez difficile de s’y retrouver. C’est pourquoi Grammalecte ne propose pas d’éditer ce fichier, ça mettrait à genoux beaucoup de machines.
Il y a le dictionnaire personnel : il se décompresse et se compresse rapidement, parce qu’il y a et aura peu d’entrées comparativement au dictionnaire commun.
La liste de mots, avant d’être compressée, se présente sous la forme suivante :

flexion lemme étiquettes


Le séparateur est une tabulation.
Voir le fichier ‹lexicons/French.lex› dans les sources. C’est ce qui est utilisé pour générer le dictionnaire de Grammalecte (ce fichier est lui-même une version «aplatie» du dictionnaire Hunspell, qui est compressé autrement).

Comme ce n’est pas simple de savoir quoi faire, il y a l’éditeur lexical qui décompresse le dictionnaire, permet de l’éditer en ajoutant simplement les mots voulus sans avoir à connaître les étiquettes. Puis la compression du dictionnaire est faite au moment de la sauvegarde.

Si vous voulez voir comment ça fonctionne, regardez dans le code l’extension pour LibreOffice (le fichier .oxt est un .zip).
le 26 juin 2018 à 18:22

Notification par e-mail    1