23 février 2021
Vous travaillez sur des projets NLP ? Vous en avez assez de chercher toujours les mêmes fonctions de prétraitement sur le web, comme la suppression des accents dans les messages en français ? Fatigué de passer des heures sur les Regex pour extraire efficacement les adresses email d'un corpus ? Amale El Hamri vous montrera comment NLPretext vous couvre !

Medium Tech Blog by Artefact

Aperçu de NLPretext

NLPretext est composé de 4 modules : basic, social, token et augmentation.

Chacun d'entre eux comprend différentes fonctions pour traiter les tâches de prétraitement de texte les plus importantes.

Prétraitement de base

Le module de base est un catalogue de fonctions transversales qui peuvent être utilisées dans tous les cas. Elles vous permettent de gérer :

  • Mauvais espaces blancs dans un texte, caractères de fin de ligne
  • Problèmes d'encodage
  • Caractères spéciaux tels que les symboles monétaires, les chiffres, les signes de ponctuation, les caractères latins et non latins

  • Emails et numéros de téléphone
from nlpretext.basic.preprocess import replace_emails
exemple = “J'ai transmis cet e-mail à obama@whitehouse.gov”
exemple = replace_emails(exemple, replace_with=”*EMAIL*”)
print(exemple)
# “J'ai transféré cet e-mail à *EMAIL*”

Prétraitement social

Au sein du sociale est un catalogue de fonctions pratiques qui peuvent s'avérer utiles lors du traitement social data, telles que

  • extraction/suppression de hashtags

  • extraction/suppression d'emojis

  • mentions extraction/suppression

  • Nettoyage des balises html

from nlpretext.social.preprocess import extract_emojis
exemple = “Je prends soin de ma peau 😀”
exemple = extract_emojis(exemple)
print(exemple) #[‘:grinning_face:’]

Augmentation du texte

Le module d'augmentation vous aide à générer de nouveaux textes basés sur vos exemples donnés en modifiant certains mots dans les textes initiaux et en conservant les entités associées inchangées, le cas échéant, dans le cas des tâches NER. Si vous souhaitez que les mots autres que les entités restent inchangés, vous pouvez le spécifier dans l'argument stopwords. Les modifications dépendent de la méthode choisie, celles qui sont actuellement supportées par le module sont les substitutions par des synonymes utilisant Wordnet ou BERT de la bibliothèque nlpaug.

Créez votre pipeline de bout en bout

Pipeline par défaut

Notre bibliothèque fournit un objet Preprocessor qui permet de canaliser efficacement toutes les opérations de prétraitement.
Si vous avez besoin de conserver tous les éléments de votre texte et d'effectuer un nettoyage minimal, utilisez le pipeline par défaut. Il normalise les espaces blancs et supprime les nouvelles lignes, corrige les problèmes d'unicode et supprime les artefacts récurrents des data sociales tels que les mentions, les hashtags et les balises HTML.

from nlpretext import Preprocessor
text = “Je viens d'avoir le meilleur dîner de ma vie @latourdargent ! !! Je recommande 😀 #food #paris n”
preprocessor = Preprocessor()
text = preprocessor.run(text) print(text)
# “Je viens de recevoir le meilleur dîner de ma vie ! !! Je recommande”

Pipeline personnalisé

Si vous avez une idée précise des fonctions de prétraitement que vous souhaitez intégrer dans votre pipeline de prétraitement, vous pouvez les ajouter dans votre propre préprocesseur.

from nlpretext import Preprocessor
from nlpretext.basic.preprocess import (normalize_whitespace, remove_punct, remove_eol_characters, remove_stopwords, lower_text)
from nlpretext.social.preprocess import remove_mentions, remove_hashtag, remove_emoji
text = "Je viens d'avoir le meilleur dîner de ma vie @latourdargent ! !! Je recommande 😀 #food #paris n"
preprocessor = Preprocessor()
preprocessor.pipe(lower_text)
preprocessor.pipe(remove_mentions)
preprocessor.pipe(remove_hashtag)
preprocessor.pipe(remove_emoji)
preprocessor.pipe(remove_eol_characters)
preprocessor.pipe(remove_stopwords, args=)
preprocessor.pipe(remove_punct)
preprocessor.pipe(normalize_whitespace)
text = preprocessor.run(text) print(text) # "dinner life recommend"

Installation de NLPretext

Pour installer la bibliothèque, exécutez

pip install nlpretext

Vous pouvez trouver le dépôt github ici et la documentation de la bibliothèque ici

Cet article a été publié pour la première fois sur le site Artefact Tech Blog sur Medium.