Bases des expressions régulières

Introduction au Natural Language Processing en R

Kasey Jones

Research Data Scientist

Qu'est-ce que le traitement du langage naturel ?

NLP :

  • Utilise l'informatique pour analyser et comprendre le texte

Sujets abordés :

  • Classification de texte
  • Modélisation de sujets
  • Reconnaissance d'entités nommées
  • Analyse de sentiment
Introduction au Natural Language Processing en R

Qu'est-ce qu'une expression régulière ?

  • Une suite de caractères pour rechercher dans du texte
  • Exemples :
    • rechercher des fichiers dans un dossier en ligne de commande
    • trouver des articles contenant un motif précis
    • remplacer un texte spécifique
Introduction au Natural Language Processing en R

Exemples

words <- c("DW-40", "Mike's Oil", "5w30", "Joe's Gas", "Unleaded", "Plus-89")
# Finding Digits
grep("\\d", words, value = TRUE)
[1] 1 3 6
# Finding Apostrophes
grep("\\'", words, value = TRUE)
[1] "Mike's Oil"     "Joe's Gasoline"
Introduction au Natural Language Processing en R

Exemples d'expressions régulières

Motif Correspondances dans le texte Exemple R Exemple texte
\w Tout alphanumérique gregexpr(pattern ='\w', <text>) a
\d Tout chiffre gregexpr(pattern ='\d', text) 1
\w+ Alphanumérique, longueur libre gregexpr(pattern ='\w+', text) word
\d+ Chiffres, longueur libre gregexpr(pattern ='\d+', text) 1234
\s Espaces gregexpr(pattern ='\s', text) ' '
\S Tout sauf espace gregexpr(pattern ='\S', text) word
Introduction au Natural Language Processing en R

Exemples en R

Fonction Objectif Syntaxe
grep Trouver les correspondances d'un motif dans un vecteur grep(pattern ='\w', x = <vector>, value = F)
gsub Remplacer toutes les correspondances d'une chaîne/vecteur gsub(pattern ='\d+', replacement = "", x = <vector>)
Introduction au Natural Language Processing en R

Pratique des RegEx

1 https://regexone.com/lesson/matching_characters
Introduction au Natural Language Processing en R

À vous de coder !

Introduction au Natural Language Processing en R

Preparing Video For Download...