#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: 223
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
--
Frédéric Eichelbrenner
Ellipso Facto - Sophia Antipolis
Hors ligne