AIDE programme python DEBUTANT - Python - Programmation
Marsh Posté le 10-04-2016 à 18:08:41
Il y a une balise code (bouton c/c++) pour rendre ton code lisible.
Sinon, si j'ai bien compris, tu dois remplacer certains mots par d'autres dans un texte prédéfini, c'est ça ?
Marsh Posté le 10-04-2016 à 19:10:21
Ah super, je ne savais pas, je ne suis pas habitué aux forums.
Oui je dois remplacer les noms d'un texte prédéfini, par les noms d'un lexique prédéfini aussi.
Marsh Posté le 11-04-2016 à 12:30:09
Je comprends pas la logique de ton code
Comme tu ne précises pas où ton problème se situe, récupération des mots ? remplacement ?
Le truc est assez simple :
- Récupération du texte de base
- Copie de ce texte dans une autre variable (c'est sur celle-ci que les mots seront remplacés)
- Récupération des mots à remplacer et leurs remplacements.
Là tu as les choix de les stocker soit dans 2 listes ou tuples ou dans un dict
- Et enfin le remplacements des mots dans le texte.
Marsh Posté le 11-04-2016 à 12:32:17
> extraits du lexique morphologique de l'ABU
Si ce sont les fichiers de abu.cnam.fr ils sont pleins d'erreurs.
Remplacer un nom par le nom+7 c'est pas difficile, mais faut faire gaffe au genre et nombre, sinon le texte final risque de faire assez désordre.
A+,
Marsh Posté le 11-04-2016 à 13:15:39
bistouille a écrit : Je comprends pas la logique de ton code |
Mon problème arrive à partir du moment où je souhaite mémoriser le mot qui est un nom, et le remplacer (plus précisement, à partir de la ligne 44). Je ne sais pas écrire le code pour la récupération des mots à remplacer et effectuer leurs remplacements
Je ne sais simplement quoi écrire...
Je suis vraiment novice.
J'ai oublié de préciser, que le lexique ABU est à la base sous forme de 3 colonnes, une colonnes avec la forme (paquerettes), une colonne avec le lemme (PAQUERETTE) et une colonne avec le tag (NOM: fem.pl).
Mais j'en ai extrait tous les noms, et lexique-ABUNOM.txt est donc sous la forme d'une seule colonne, avec la forme de chaque noms.
Aussi, le sens du texte final, n'a aucune importance.
Il n'est pas important de se soucier de l'accord en genre et en nombre.
Merci pour votre aide.
Marsh Posté le 11-04-2016 à 13:54:58
Ah ok, je connaissais pas ce format de données de fichier.
Donc si ta liste est bonne, il suffit juste de faire un remplacement sur le texte.
Du genre :
Code :
|
Marsh Posté le 11-04-2016 à 21:14:23
bistouille a écrit : Ah ok, je connaissais pas ce format de données de fichier.
|
D'accord, mais comme je vous ai dis, je suis vraiment novice, et je ne sais absolument pas où placer cela parmi ce que j'ai deja fais.
Et que signifi ('(?<=\W)' + valeur + '(?=\W)', je n'ai jamais vu ces expressions.
Merci beaucoup pour votre aide !
Marsh Posté le 12-04-2016 à 09:26:49
Pour la signification, c'est indiqué dans le module re de la doc python.
(?<=valeur) signifie " est précédé de "
(?=valeur) signifie " est suivi de "
\W représente un caractère non unicode.
Il y a également \b (délimiteur de mot), ne fonctionne pas chez moi, car il est lié au locales.
Donc l'expression est de cette forme pour éviter de remplacer les mots contenus dans d'autres.
Bon, sinon, pourrais-tu poster quelques lignes de ton fichier de mots ? (une 50aine ~)
J'ai la flemme de chercher sur le net un fichier de ce type
Marsh Posté le 12-04-2016 à 10:45:37
bistouille a écrit : Pour la signification, c'est indiqué dans le module re de la doc python. |
Quelques lignes de mon fichier texte dans lequel je dois remplacer les noms:
Il PRO:PER il
était VER:impf être
une DET:ART un
fois NOM foi|fois
un DET:ART un
mari NOM mari
et KON et
sa DET:POS son
femme NOM femme
qui PRO:REL qui
avaient VER:impf avoir
depuis PRP depuis
longtemps ADV longtemps
désiré VER:pper désirer
avoir VER:infi avoir
un DET:ART un
enfant NOM enfant
Quelques lignes de mon fichier lexiqueNOM, dans lequel je dois piocher les noms (rechercher le nom sélectionner dans le texte et le remplacer par le mot qui se trouve 7 entrées plus loin.) Dans ce lexique, il n'y a deja que des noms.
a
abaca
abacule
abaisse
abaissée
abaissées
abaissement
abaissements
abaisses
abaisseur
abaisse-langue
abajoue
abandon
abandonnataire
abandonné
abandonnée
abandonnées
abandonnés
abandons
abaque
abasourdissement
abat
abatage
Marsh Posté le 12-04-2016 à 12:37:02
Ok, voici une exemple de script fonctionnel.
Code :
|
Avec pour fichier de mots :
Citation : a |
J'ai mis pas mal de commentaires dans le code pour que tu comprennes la logique, bon les expressions régulières c'est pas facile à expliquer en quelques phrases, surtout si ça te donne des boutons, moi j'adore ça
Marsh Posté le 10-04-2016 à 11:40:17
Bonjour à tous,
J'aurais besoin d'aide pour la confection d'un programme python, niveau débutant.
Je pense avoir bien avancé, mais il ne fonctionne toujours pas.
Voici l'énoncé:
Pour un texte quelconque, la tache consiste à remplacer chaque nom qui s'y trouve par celui que
l'on trouve dans un dictionnaire 7 entrées après lui. Par exemple, on remplace ainsi «mot» par «motivation» et «phrase» par «phrénologie».
Votre programme devra s'appuyer sur des listes de noms (extraits du lexique morphologique de l'ABU), rechercher dans le texte les noms à remplacer, et produire en sortie le texte résultant de ces substitutions.
Mon lexique ABU a donc comme nom "lexique-ABU.txt"
Et mon texte "RaiponceETIQ.txt"
Voici le programme crée:
(devant chaque [.i], j'ai mis un point, sinon cette séquence etait prise pour une balise italique.)
(devant chaque [.i], j'ai mis un point, sinon cette séquence etait prise pour une balise italique)
En espérant que vous pourrez m'aider.
Merci par avance !
Message édité par gilou le 11-04-2016 à 12:04:00