Imaginez ceci : vous êtes un explorateur de données intrépide, vous aventurant au plus profond de la nature sauvage des données brutes. Armé de votre fidèle feuille de calcul et d’une tasse de café, vous vous lancez dans une quête pour extraire des informations significatives. Mais hélas, vous rencontrez une jungle de formats incohérents, de symboles énigmatiques et de fautes de frappe qui semblent avoir leur propre vie. N'ayez crainte, intrépide lutteur de données, car dans ce royaume chaotique, une arme secrète vous attend : les expressions régulières , la cape de super-héros du nettoyage des données.
Qu'est-ce qu'une expression régulière ?
À la base, une expression régulière, communément appelée regex , est une puissante séquence de caractères qui définit un modèle de recherche. Il s'agit d'un outil polyvalent utilisé dans divers langages de programmation et éditeurs de texte pour manipuler et faire correspondre des chaînes de texte en fonction de modèles ou de règles spécifiques . Les expressions régulières vous permettent d'exprimer de manière concise des modèles de recherche complexes, ce qui facilite la recherche, l'extraction ou la modification de parties spécifiques de données textuelles. En combinant des caractères, des métacaractères et des quantificateurs, vous pouvez créer des modèles d'expression régulière qui correspondent à des séquences, des caractères ou des structures encore plus complexes au sein d'un corps de texte plus vaste. Avec leurs applications étendues, les expressions régulières sont devenues une ressource inestimable pour les tâches de nettoyage de données, de traitement de texte et de reconnaissance de formes.
Expression régulière dans JMP
Dans JMP, les expressions régulières sont accessibles et personnalisées via le triangle rouge situé dans Explorateur de texte > Options d'analyse > Personnaliser Regex. Plusieurs expressions régulières sont facilement disponibles, telles que HTML Link Grabber et le surligneur Numbers .

Vous pouvez personnaliser les expressions régulières dansJMP.
Bien que les expressions intégrées soient utiles, le nettoyage des données peut nécessiter des expressions plus personnalisées mieux adaptées à l'ensemble de données. Regardons un exemple simple, comme supprimer tous les nombres d'une chaîne de texte. L'expression régulière "\d+" accomplira cette tâche. Cette expression utilise le métacaractère "\d" pour faire correspondre tous les chiffres (0 à 9) et le quantificateur "+" pour indiquer qu'un ou plusieurs chiffres doivent correspondre. Si nous appliquons cette expression régulière à la chaîne « J'ai 5 pommes et 10 oranges », les nombres « 5 » et « 10 » seront identifiés. En remplaçant ces chiffres par une chaîne vide, vous avez effectivement nettoyé vos données de tous les nombres présents.
Analysons le HTML Link Grabber pour expliquer un exemple plus complexe. Cette expression régulière intégrée à JMP est la suivante :
<A>]*?)\3[^>]*)|(\s*[a-z]+\s*=\s*('|")([^>]*?)\6))*\s*></A>
Chaque partie significative de l’expression ci-dessus est résumée dans le tableau ci-dessous :
| < d>
| Ce métacaractère recherche la balise d'ancrage d'ouverture en HTML qui signifie un lien hypertexte. |
| href\s*=\s*('|") |
Cette section correspond à l'attribut "href" suivi d'un signe égal et d'espaces facultatifs, puis soit d'un guillemet simple ('), soit d'un guillemet double ("). Il capture le guillemet d'ouverture dans une référence arrière. |
| ([^>]*?) |
Cela correspond à tous les caractères qui ne sont pas le crochet fermant (>). Plus important encore, il capture l'URL qui est l'objectif principal de cette expression. Notez que cette section est similaire aux spécificateurs de format en programmation C. |
| (\s*[az]+\s*=\s*('|")([^>]*?)\6) |
Ce modèle correspond à tous les attributs supplémentaires dans la balise d'ancrage. Il capture le nom de l'attribut, un signe égal, des espaces facultatifs, la valeur de l'attribut (entre guillemets) et garantit que le guillemet de fermeture correspond au guillemet d'ouverture. |
(Voir Personnaliser Regex dans l'éditeur d'expressions régulières (jmp.com) pour plus d'informations)
Bien que ces attributs et modèles puissent sembler complexes, il existe de nombreuses documentations et ressources disponibles pour apprendre et comprendre ce que représente chaque drapeau.
Application de l'expression régulière
Alors maintenant que nous savons exactement ce qu’est une regex et ce qu’elle peut faire, où est-elle la plus utile ?
Eh bien, il est difficile de le limiter à une seule application, mais je vais vous présenter un exemple de filtrage de données que j'ai effectué pour un projet d'analyse de texte couvrant les données de la section de discussions de la communauté des utilisateurs JMP. Le but ultime de ce projet était de trouver les termes et expressions les plus couramment utilisés et publiés dans les discussions de la communauté des utilisateurs.
Vous trouverez ci-dessous un exemple tiré d'un seul commentaire sur plus de 48 000 discussions. Notez que le formatage HTML et les scripts JSL rendent très difficile la détermination du vocabulaire utilisé dans le commentaire d'origine.

Échantillon de données avant le nettoyage des expressions régulières.
Le nettoyage manuel de ces termes et leur formatage peuvent prendre des mois, voire des années, mais avec l'utilisation de quelques expressions régulières seulement, le nettoyage peut être effectué instantanément.
Pour commencer, je voulais supprimer tout contenu du langage de script JSL dans la discussion. Pour ce faire, j'ai utilisé la regex suivante :
<CODE class=" language-jsl">[\s\S]*?<\/CODE>|
|((([€¥₩£\$]|r\$)\s{0,2}[\.,]?[0-9][\.,0-9]*)|([\.,]?[0-9][\.,0-9]*\s{0,2}([€¥₩£\$]|r\$)))
Ensuite, je voulais supprimer toutes les balises de formatage HTML et CSS des données :
<[^>]*>
Enfin, je souhaitais supprimer tous les nombres, décimales et mots contenant des nombres :
\d+(\.\d+)?|\.\d+
En regardant le même exemple de message original, vous pouvez voir ci-dessous comment chaque expression filtre les paramètres spécifiés :

Données filtrées. Les mots non filtrés sont surlignés en jaune.
Explorer les résultats
Une fois que nous avons fini de filtrer nos expressions personnalisées, comment nos résultats changent-ils ? Examinons les comparaisons côte à côte des nuages de mots pour l'ensemble de données brutes et non filtrées par rapport à l'ensemble nettoyé par les expressions régulières :
Ancien (pas d'expression régulière)
|
Nouveau (avec regex)
|
|
|
Notez qu'avant d'utiliser des expressions régulières, les données sont remplies de formatage HTML, de formatage JSL et de contenu totalement indépendant. Aux fins de mon analyse, ces données ne sont absolument pas pertinentes. Après avoir utilisé l'expression régulière, les données sont beaucoup plus utiles pour l'analyse et peuvent fournir des résultats très intéressants avec un peu plus de travail.
La réalisation d'une analyse thématique sur les données nettoyées a fourni les résultats suivants quant aux sujets auxquels la communauté des utilisateurs répond le plus souvent, indiqués ci-dessous :

Analyse en cinq sujets sur les données des discussions
Les cinq sujets proposés peuvent être généralisés en différentes catégories de questions que les utilisateurs se posent :
- Sujet n°1 : Plan d'expérience (DOE)
- Sujet n°2 : Modélisation prédictive et apprentissage automatique
- Sujet n°3 : Réponses pédagogiques
- Sujet n°4 : Formatage et analyse des données
- Sujet n°5 : Programmation et scripts
Correspondance du texte de la colonne Regex
Les expressions régulières ne se limitent pas à une application à partir d'une fenêtre d'exploration de texte ; vous pouvez également y accéder lors de la création d'une nouvelle colonne de données avec une formule de chaîne. Pour y accéder, consultez Cols -> Utilities -> New Column by Text Matching.

Regex est disponible dans n'importe quelle colonne de texte d'un fichier JMP.
La sélection de « Nouvelle colonne par correspondance de texte » ouvrira la même fenêtre d'éditeur d'expression régulière que celle de l'Explorateur de texte. L'ensemble du processus de conservation des données est exactement le même, cependant, votre texte filtré sera désormais automatiquement formaté dans une nouvelle colonne, comme le montre l'image ci-dessous :

Le même processus est affiché en dehors d'une fenêtre de l'Explorateur de texte.
Dernières pensées
Les expressions régulières sont un outil indispensable dans le domaine de l'exploration de données. Ils offrent une solution polyvalente pour manipuler et faire correspondre les chaînes de texte à la sortie souhaitée. Avec les regex, nous pouvons libérer tout le potentiel de nos données.
Pour en savoir plus sur les expressions régulières, voir :
Customize Regex in the Regular Expression Editor (jmp.com)
Quantificateurs dans les expressions régulières | Microsoft Apprendre
Référence sur les expressions régulières (regular-expressions.info)
Fonction Regex (jmp.com)
Aide JMP