Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 27 April 2015 15:48

kug
Participant occasionnel
Date d'inscription: 1 Jul 2013
Messages: 32

Normalisation chaine de caractères

Bonjour,

J'ai une liste d'objets comportant des adresses et par souci d'homogénéité j'aimerais faire une normalisation de ces adresses.
Voici qq exemples:
CHEMIN DES ECOLIERS
RUE DU STADE
BOULEVARD DU PRESIDENT
RUE DE L'ALLEE
ALLEE DES LANDES
ZONE INDUSTRIELLE DES CABANES

D'un autre coté , j'ai un fichier comportant la liste des abréviations possibles, en voici quelques unes:
CHE    CHEMIN
ALL    ALLEE
BD    BOULEVARD
R    RUE
ZAC    ZONE D AMENAGEMENT CONCERTE
ZI    ZONE INDUSTRIELLE

En fait je souhaiterais remplacer le ou les 1ers termes par leur abréviation (sans toucher au reste RUE DE L'ALLEE deviendrait R DE L'ALLEE et non pas R DE L'ALL).

Il y a trop d’occurrences dans les abréviations donc il n'est pas envisageable d'enchainer des Tester
Le fait qu'il y ait des espaces m’empêche d'utiliser StringPairReplacer.

J'ai essayé avec un pythonCaller mais il faut que je ressaisisse chacune des abréviations :-(

Si quelqu'un a une idée , je suis preneur car je suis sur que c'est faisable
Merci d'avance

Hors ligne

 

#2 Mon 27 April 2015 17:20

Cherubin
Participant assidu
Lieu: NGC 1300
Date d'inscription: 10 Jun 2008
Messages: 273

Re: Normalisation chaine de caractères

AttributeValueMapper?

Hors ligne

 

#3 Mon 27 April 2015 17:37

kug
Participant occasionnel
Date d'inscription: 1 Jul 2013
Messages: 32

Re: Normalisation chaine de caractères

De ce que je connais de AttributeValueMapper il faut une correspondance exacte entre la source et la destination alors que dans mon cas il ne s'agit que d'une partie du toponyme

Hors ligne

 

#4 Tue 28 April 2015 09:04

Hydrolithe
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Apr 2010
Messages: 222

Re: Normalisation chaine de caractères

Bonjour,

Est-ce que tu as regardé du côté des expressions régulières ? C'est très puissant et notamment pour les chaînes de caractères. On peut les utiliser dans plusieurs transformers. A essayer en tout cas. Il existe par ailleurs des testeurs d'expressions régulières sur internet pour voir si elles fonctionnent bien.

Pierre

Hors ligne

 

#5 Tue 28 April 2015 13:38

kug
Participant occasionnel
Date d'inscription: 1 Jul 2013
Messages: 32

Re: Normalisation chaine de caractères

Bonjour,
J'ai bien regardé du coté des expressions régulières dans un StringReplacer et j'arrive à identifier les sous chaines à remplacer
Mais par contre comment utiliser les expressions régulières pour définir le text de remplacement?
Merci

Hors ligne

 

#6 Tue 28 April 2015 17:24

antoine guillot Veremes
Juste Inscrit !
Date d'inscription: 3 Apr 2015
Messages: 8

Re: Normalisation chaine de caractères

Bonjour,

Pourquoi ne pas utiliser stringPairReplacer avec pour paramètre:
"Zone industrielle" zi "ZONE D AMENAGEMENT CONCERTE" zac
etc...?
Chez moi les "" semblent protéger ma chaîne.

Hors ligne

 

#7 Thu 30 April 2015 08:45

kug
Participant occasionnel
Date d'inscription: 1 Jul 2013
Messages: 32

Re: Normalisation chaine de caractères

Bonjour,
C'est vrai les "" protègent ma chaine par contre stringPairReplacer  remplace toutes les occurrences alors que moi je ne veux que la première.
RUE DE L'ALLEE DES ROSES doit devenir R DE L'ALLEE DES ROSES
Merci

Hors ligne

 

#8 Tue 12 May 2015 15:50

lefred
Participant occasionnel
Lieu: Sophia Antipolis
Date d'inscription: 3 Jul 2008
Messages: 42

Re: Normalisation chaine de caractères

Bonjour,

Ce n'est pas forcément la solution la plus élégante, mais je joins un petit exemple de résolution en associant chaque abréviation à chaque adresse, en testant la correspondance avec un pattern comprenant "^" (début de chaîne), le nom à abréger, et "\s" (séparateur de mots dans une chaîne), et en remplaçant par le nom abrégé le cas échéant.

Cordialement,
Frédéric


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

--
Frédéric Eichelbrenner
Ellipso Facto - Sophia Antipolis

Hors ligne

 

Pied de page des forums

Powered by FluxBB