-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Le transformer Mapping ne fonctionne pas correctement #2139
Comments
Après analyse, le problème est plus compliqué qu'il y parais, car il faut prendre en compte le contexte d'utilisation, car il peut être utilisé pour modifier une phrase donc le problème soulevait ici n'est pas forcément valide, mais dans le cas d'un tableau de référence qui ne marche pas le problème cité et pertinent, je préférer par m avant sur un fixe. |
Il faut peut être spécifier (et décider de ) l'utilisation des différents transformers. Pour modifier des mots ou des phrases je pense que replace et replaceregex sont davantage pertinents que mapping, que je vois plus comme utile pour de la verbalisation de codes ou d'identifiants. |
De mémoire, le Transformer mapping a été ajouté pour verbaliser des codes, d'ailleurs la documentation est écrite dans ce sens https://www.lodex.fr/docs/documentation/principales-fonctionnalites-disponibles/transformer-des-donnees/ sauf pour l'exemple, qui laisse à penser à des remplacements de mots !!! La correction de ce problème devrait faire en sorte d'éviter les remplacements en cascade. |
Suite à notre discussion en live et donc sans pouvoir tester correctement mon code dans le bon environnement , je propose cette correction
On ajoute une regex avec un délimiteur de mot qui permet de ne pas découper les chaînes en sous-chaînes. Mais la déclaration de ma constante n'est peut être pas au bon endroit... |
Copie du message d'origine de @yanngui23 dans le canal mattermost :
Le transformer Mapping transforme effectivement plusieurs fois >
Je pense que cela est dû à l'utilisation de la fonction reduce dans le code et surtout au split effectué
return Object .keys(list) .reduce((currentValue, searchValue) => currentValue .split(searchValue) .join(list[searchValue]), value); };
dans l'exemple "US" a une équivalence, il transforme donc en "USA", qui devient le nouvel accumulateur.
.split(searchValue)
va ensuite découper "USA" en ["U","SA"] car "SA" est également dans le dictionnaire. Il remplace donc "SA" puis le join renvoie le "U" devant.Ces segmentations créent donc des "occurences imbriquées", qui peuvent donc être transformés x fois.
The text was updated successfully, but these errors were encountered: