Imaginez ceci : vous êtes un explorateur de données intrépide, s'aventurant profondément dans la nature sauvage des données brutes. Armé de votre feuille de calcul fidèle et d'une tasse de café, vous vous lancez dans une quête pour extraire des informations significatives. Mais hélas, ce que vous rencontrez est une jungle de formatage incohérent, de symboles cryptés 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 : expressions régulières , la cape de super-héros du nettoyage des données.
Qu'est-ce qu'une expression régulière ?
Au cœur, une expression régulière, communément appelée expression régulière , est une puissante séquence de caractères qui définit un modèle de recherche. C'est un outil polyvalent utilisé dans divers langages de programmation et éditeurs de texte pour manipuler et faire correspondre des chaînes de texte basé sur modèles ou 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 même des structures plus complexes dans 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.
Regex dans JMP
Dans JMP, les expressions régulières sont accessibles et personnalisées via le triangle rouge situé dans Text Explorer -> Parsing Options -> Customize Regex. Plusieurs expressions régulières sont facilement utilisables, telles que Attrapeur de liens HTML et le Nombres surligneur.

Vous pouvez personnaliser les expressions régulières dans JMP.
Bien que les expressions intégrées soient utiles, le nettoyage des données peut nécessiter des expressions plus personnalisées qui conviennent mieux à l'ensemble de données. Regardons un exemple simple comme la suppression de tous les nombres dans une chaîne de texte. L'expression régulière '\d+' accomplira cette tâche. Cette expression utilise le '\d' métacaractère pour correspondre à tous les chiffres (0-9), et le '+' quantificateur pour indiquer qu'un ou plusieurs chiffres doivent correspondre. Si nous appliquons cette regex à 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 Attrapeur de liens HTML 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 :
| '
| Ce métacaractère recherche la balise d'ancrage d'ouverture dans 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 d'un guillemet simple (') ou d'un guillemet double ("). Il capture la citation 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 le but principal de cette expression. Notez que cette section est similaire à 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 fermant correspond au guillemet ouvrant. |
(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, de nombreux documents et ressources sont disponibles pour apprendre et comprendre ce que représente chaque indicateur.
Application de Regex
Alors, maintenant que nous savons exactement ce qu'est et peut faire regex, où est-il le plus utile ?
Eh bien, il est difficile de se 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 des discussions de la communauté d'utilisateurs JMP. Le but ultime de ce projet était de trouver les termes et expressions les plus couramment utilisés dans les discussions de la communauté des utilisateurs.
Vous trouverez ci-dessous un exemple tiré d'un seul des plus de quarante-huit mille commentaires de discussion. Notez que le Formatage HTML et Script JSL rendent très difficile la détermination du vocabulaire utilisé dans le commentaire original.

Échantillon de données avant le nettoyage des expressions régulières.
Le nettoyage manuel de ces termes et le formatage peuvent prendre des mois, voire des années, mais avec l'utilisation de quelques expressions régulières, le nettoyage peut être effectué instantanément.
Pour commencer, je voulais supprimer tout contenu de 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 voulais supprimer tous les nombres, décimales et mots contenant des nombres :
\d+(\.\d+)?|\.\d+
En regardant le même exemple de message d'origine, 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 ? Regardons 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 regex :
VIEUX (Pas d'expression régulière)
|
NOUVEAU (Avec Regex)
|

|

|
Notez qu'avant d'utiliser des expressions régulières, les données sont remplies avec un formatage HTML, un formatage JSL et un contenu totalement indépendant. Aux fins de mon analyse, ces données sont complètement hors de propos. Après avoir utilisé regex, 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 de sujet sur les données nettoyées a fourni des résultats très intéressants quant aux sujets auxquels la communauté répond le plus souvent, comme indiqué 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 sur lesquelles les utilisateurs peuvent se poser :
- Sujet n° 1 : Plan d'expérience (DOE)
- Sujet n° 2 : Modélisation prédictive et apprentissage automatique
- Sujet #3 : Réponses pédagogiques
- Sujet #4 : Formatage et analyse des données
- Sujet n° 5 : Programmation et scripts
Correspondance de texte de colonne Regex
Les expressions régulières ne sont pas limitées à 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, affichez Cols -> Utilitaires -> Nouvelle colonne par correspondance de texte.

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 de regex 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 indiqué dans l'image ci-dessous :

Le même processus est affiché en dehors d'une fenêtre Text Explorer.
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 des chaînes de texte à une sortie souhaitée. Avec regex, nous pouvons libérer tout le potentiel de nos données.
Pour en savoir plus sur Regex, consultez :
Personnaliser Regex dans l'éditeur d'expressions régulières (jmp.com)
Quantificateurs dans les expressions régulières | Microsoft Apprendre
Référence des expressions régulières (regular-expressions.info)
Fonction Regex (jmp.com)
Aide JMP