comment creer une application pour gerer un dictionnaire de mots en python

bonjour svp comment creer une application pour gerer un dictionnaire de mots en python

Je pense qu’on a besoin de plus de détails, les premières questions qui me viennent sont :

  • Est-ce un dictionnaire existant ?
  • Est-ce que tu dois partager le dictionnaire de mots (sous forme d’un fichier ?)
  • Si oui as-tu regardé les formats de dictionnaires existants (utilisés par hunspell par exemple), qui peuvent avoir des caractèristiques sympa (gestion des pluriels …)

rechercher un mot les synonymes de ce mot les antonymes

C’est bien plus qu’un dictionnaire si tu veux extraire le sens des mots pour y trouver les synonymes et les antonymes… c’est même probablement du gros NLP…

Ne pourrais-tu pas partir d’un dictionnaire existant ?

en fait je veux savoir quelles structures utilises si je peux utiliser les classes?

Tu peux utiliser des classes. En structure de données utiles tu auras probablement besoin de set.

Il faut d’abord que tu réfléchisses à comment (« sous quelle forme ») tu vas stocker la donnée plutôt que comment tu vas la manipuler. Est-ce que tu veux stocker ça dans un fichier sqlite par exemple ?

J’imagine que les synonymes peuvent se représenter sous forme d’arbre cyclique orienté aussi, où chaque mot pointe vers d’autres mots (ses synonymes), et ainsi tu pourrais découvrir des « synonymes de niveau 2 » (synonyme d’un mot via un mot intermédiaire), si c’est ce genre de choses que tu veux regarde peut-être du côté de NetworkX, ou de neo4j et son client Python.

Bonjour Heidi,

C’est dans quel contexte : une exercice, une application, une webapp? Quels sont vos données d’entrée et vos besoins en format de sortie? Il y a beaucoup de manières de faire selon le contexte…

-Graham

une application ou l’on peut rechercher un mot ,l’inserer,le supprimer ,le modifier

Pour moi c’est un problème de conception, pas de python, python est un langage orienté objet, tu n’aura aucun problème pour y retranscrire des classes: Découvrez la programmation orientée objet avec Python - OpenClassrooms
En revanche, pour une application de ce type, tu peux utiliser deux modèles différents, il n’y a pas beaucoup de mots pour un ordinateur, donc soit tu opte pour une base de données orientée documents, soit une base de donnée relationnelle https://www.irit.fr/~Thierry.Millan/CNAM-NFP107/UML%20et%20les%20Bases%20de%20Données.pdf l .
Compte tenu des besoins un simple fichier csv peut être utilisé que pour une acquisition de données, cependant, l’acquisition demandera de lourds calculs répétitifs. L’utilisation d’une base de donnée NO SQL Modélisation de bases NoSQL — Bases de données documentaires et distribuées v<release> - Cours CNAM NFE204 comme TinyDB (pure python) Getting Started — TinyDB 4.5.2 documentation est très similaire tout en offrant des fonctions de recherche et de stockage déjà écrites.
Contrairement à dancergraham, je ne pense pas qu’il soit nécessaire de se demander si c’est une application web ou locale, j’ai commencé ce type d’application en MVC Que signifie modèle-vue-contrôleur (MVC)? - Definition IT de Whatis.fr pour ma part, ce qui rends le système d’acquisition des mots ou de génération de grilles (oui, moi c’est plus pour jouer) complètement indépendant de l’interface utilisateur.

Pour une simple recherche de mot, tu as les listes 4. Listes - Cours de Python ou les dictionnaires Dictionnaires en Python — Cours Python , ni l’un ni l’autre ne sera significativement plus rapide sur un volume de données aussi faible. En pratique, une liste n’est pas ordonnée, un dictionnaire l’est. Mais avec moins d’un million de mots tu ne constatera strictement aucune différence sur une machine récente.

Si toutefois la portée est supérieure à celle de simplement rechercher un mot dans une liste je te conseil la solution de modélisation, derrière ces techniques qui paraissent parfois hors de portée lorsqu’on débute, se cache le secret pour gagner un temps fou quelque soit le langage de programmation: la modélisation. :smiley:

Euh, tu es sûr de ça ?

D’un point de vue modélisation, tu peux accéder à une valeur dans un dictionnaire en utilisant sa clé, enfin, ça ne me regarde pas finalement c’est très bien documenté et traduis :stuck_out_tongue:

C’est plus le côté “ordonné” qui me chagrinait. C’est à dire trié de ce que je comprends. Une liste est triée, pas u ndictionnaire non ?

Oui, l’ordre dans une liste est important : deux listes de mêmes éléments dans des ordres distincts ne seront pas égales (là où ça n’a pas d’importance pour les dictionnaires).

Je viens de jeter un œil à ce cours malheureusement il ne passe pas le “test de l’explication des variables en Python”.

En effet, je ne suis pas allé aussi loin dans ces cours, et je pense que ce n’est pas plus mal, trouver la documentation, savoir l’utiliser est carrément vitale dans l’informatique (“googling is life”). Il faut TOUJOURS TESTER, lire les messages d’erreur et les comprendre.
En revanche on apprends quand même, on avance et on fini par corriger les erreurs des articles pour en capter ce qui est utile.
Bien vue si les variables étaient manquantes, = n’est pas == mais ton linter va biper dans tous les sens si tu fait un “if a = b:”.
jedi en train de paniquer

Quelles variables manquantes ? Je parlais du fait de présenter les variables comme des boîtes contenant des valeurs, c’est une analogie qui se fracasse contre la réalité du Python quand on présente des cas comme a = b = [] (plusieurs étiquettes sur une même valeur).

2 « J'aime »

Puisqu’on est partis à digresesr … j’en suis à rédiger en dot, pour expliquer ça proprement en formation à distance à défaut d’avoir un tableau blanc…

Je parie que mes rendus dot sont plus rapides et plus propre que mes dessins sur tableau blanc par contre :smiley:

Par contre je parie aussi qu’il existe un meilleur outil pour faire ça, quelque chose qui ingérerai du code Python directement, et qui me ferait le graph directement, mais je n’ai rien trouvé de propre. (Il y a bien Python Tutor, et son coup de copier les ints dans la liste ça se défend, ou pas : je ne suis pas fan, ça reste faux.), j’ai testé deux-trois libs (dont j’ai perdu le nom depuis le temps) mais j’ai le sentiment de passer à côté de quelque chose d’évident.

Chouette outil en effet, je le garde en tête.