Pré-traiter le texte
Important
Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.
À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.
- Consultez les informations sur le déplacement des projets de machine learning de ML Studio (classique) à Azure Machine Learning.
- En savoir plus sur Azure Machine Learning.
La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.
Effectue des opérations de nettoyage sur du texte
catégorie : Analyse de texte
Notes
s’applique à: Machine Learning Studio (classic) uniquement
Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.
Vue d’ensemble du module
cet article explique comment utiliser le module de texte de prétraitement dans Machine Learning Studio (classic) pour nettoyer et simplifier le texte. En prétraitement du texte, vous pouvez créer plus facilement des fonctionnalités significatives à partir du texte.
Par exemple, le module PreProcess Text prend en charge ces opérations courantes sur le texte :
- Suppression des mots vides
- Utilisation d’expressions régulières pour rechercher et remplacer des chaînes cibles spécifiques
- Lemmatisation, qui convertit plusieurs mots connexes en une seule forme canonique
- Filtrage sur des parties spécifiques de la parole
- Normalisation de casse
- Suppression de certaines classes de caractères, comme les nombres, les caractères spéciaux et des séquences de caractères répétés comme « aaaa »
- Identification et suppression des adresses e-mail et URL
Vous pouvez choisir les options de nettoyage à utiliser et éventuellement spécifier une liste personnalisée de mots vides.
Le module prend actuellement en charge six langues : anglais, espagnol, français, néerlandais, allemand et italien.
Comment configurer le prétraitement de texte
Ajoutez le module PreProcess Text à votre expérience dans Studio (Classic). Ce module se trouve sous Analyse de texte.
Connectez un jeu de données qui comprend au moins une colonne contenant du texte.
Si le texte que vous Prétraitez se trouve dans la même langue, sélectionnez la langue dans la liste déroulante langue . Avec cette option, le texte est prétraité à l’aide de règles linguistiques spécifiques à la langue sélectionnée.
Pour prétraiter du texte qui peut contenir plusieurs langues, choisissez la colonne contient l’option Language.
Utilisez ensuite la propriété de colonne langue de culture pour choisir une colonne dans le DataSet qui indique la langue utilisée dans chaque ligne. La colonne doit contenir un identificateur de langue standard, tel que « anglais » ou
en
.Sur la base de cet identificateur, le module applique les ressources linguistiques appropriées pour traiter le texte.
Si votre jeu de données ne contient pas de tels identificateurs, utilisez le module de langage de détection pour analyser la langue à l’avance et générer un identificateur.
Conseil
Une erreur est générée si une langue non prise en charge est incluse. Pour plus d’informations, consultez la section Notes techniques .
Supprimer par partie de la reconnaissance vocale: sélectionnez cette option si vous souhaitez appliquer une analyse de la parole. Vous pouvez ensuite utiliser les balises de synthèse vocale pour supprimer certaines classes de mots.
- Supprimer les noms: sélectionnez cette option pour supprimer les noms.
- Supprimer les adjectifs: sélectionnez cette option pour supprimer les adjectifs.
- Supprimer les verbes: sélectionnez cette option pour supprimer les verbes.
Pour plus d’informations sur la méthode d’identification du composant de reconnaissance vocale utilisée, consultez la section Notes techniques .
Colonne de texte à nettoyer: sélectionnez la ou les colonnes que vous souhaitez prétraiter.
Supprimer les mots vides : Sélectionnez cette option si vous voulez appliquer une liste prédéfinie de mots vides à la colonne de texte. La suppression des mots vides est effectuée avant tout autre processus.
Les listes mot vide sont dépendantes de la langue et personnalisables ; Pour plus d’informations, consultez la section Notes techniques .
Lemmatisation : Sélectionnez cette option si vous voulez que les mots soient représentés sous leur forme canonique. Cette option s’avère utile pour réduire le nombre d’occurrences uniques des jetons de texte autrement similaires.
Le processus lemmatisation dépend fortement de la langue. Pour plus d’informations, consultez la section Notes techniques .
Détecter les phrases : Sélectionnez cette option si vous voulez que le module insère une marque de limite de phrase lors de l’exécution de l’analyse.
Ce module utilise une série de trois barres verticales
|||
pour représenter la ponctuation de fin de phrase.Si vous le souhaitez, vous pouvez effectuer des opérations de recherche et de remplacement personnalisées à l’aide d’expressions régulières.
- Expression régulière personnalisée: définissez le texte que vous recherchez.
- Chaîne de remplacement personnalisée : Définissez une valeur de remplacement unique.
Normaliser la casse en minuscules : Sélectionnez cette option si vous voulez convertir les caractères majuscules ASCII en minuscules.
Si les caractères ne sont pas normalisés, le même mot en lettres majuscules et minuscules est considéré comme deux mots différents : par exemple,
AM
est le même queam
.Si vous le souhaitez, vous pouvez supprimer les types de caractères ou séquences de caractères suivants du texte de sortie traité :
- Supprimer les chiffres : Sélectionnez cette option pour supprimer tous les caractères numériques de la langue spécifiée.
L’identification de ce qui constitue un nombre dépend du domaine et de la langue. Si les caractères numériques font partie intégrante d’un mot connu, ils ne peuvent pas être supprimés.
Supprimer les caractères spéciaux: utilisez cette option pour remplacer tous les caractères spéciaux non alphanumériques par le caractère de barre verticale
|
.Pour plus d’informations sur les caractères spéciaux, consultez la section Notes techniques .
Supprimer les caractères en double: sélectionnez cette option pour supprimer toutes les séquences qui répètent des caractères. Par exemple, une séquence comme « aaaaa » sera supprimée.
Supprimer les adresses e-mail : Sélectionnez cette option pour supprimer toutes les séquences au format
<string>@<string>
.Supprimer les URL: sélectionnez cette option pour supprimer une séquence qui comprend les préfixes d’URL suivants :
http
,https
ftp
www
Développer les contractions verbales : Cette option s’applique uniquement aux langues qui utilisent les contractions verbales. Actuellement, il s’agit de l’anglais uniquement.
Par exemple, en sélectionnant cette option, vous pouvez remplacer la locution « wouldn’t stay there » par « would not stay there ».
Normaliser les barres obliques inverses en barres obliques : Sélectionnez cette option pour mapper toutes les instances de
\\
en/
.Fractionner les jetons sur les caractères spéciaux : Sélectionnez cette option si vous voulez couper des mots sur des caractères comme
&
,-
, etc.Par exemple, la chaîne
MS-WORD
est divisée en deux jetons,MS
etWORD
.
Exemples
Les exemples suivants de la Azure ai Gallery illustrent l’utilisation du module de texte de prétraitement :
Notes techniques
Cette section fournit des informations supplémentaires sur la technologie de prétraitement de texte sous-jacente et sur la manière de spécifier des ressources de texte personnalisées.
Langues prises en charge
actuellement Machine Learning prend en charge le prétraitement de texte dans les langues suivantes :
- Néerlandais
- Anglais
- Français
- Allemand
- Italien
- Espagnol
D’autres langues sont prévues. consultez le blog Microsoft Machine Learning pour les annonces.
Lemmatisation
Lemmatisation est le processus d’identification d’une forme canonique unique pour représenter plusieurs jetons de mots.
les bibliothèques de traitement en langage naturel incluses dans Machine Learning Studio (classic) combinent plusieurs opérations linguistiques suivantes pour fournir lemmatisation :
Séparation des phrases: dans le texte libre utilisé pour l’analyse des sentiments et d’autres analyses de texte, les phrases sont souvent exécutées ou la ponctuation est peut-être manquante. Les textes d’entrée peuvent constituer un segment de texte arbitrairement long, allant d’un tweet ou d’un fragment à un paragraphe complet, voire un document.
Les outils de langage naturel utilisés par Studio (Classic) effectuent la séparation des phrases dans le cadre de l’analyse lexicale sous-jacente. Toutefois, les phrases ne sont pas séparées dans la sortie. Si vous le souhaitez, vous pouvez spécifier qu’une limite de phrase soit marquée pour faciliter le traitement et l’analyse du texte.
Création de jetons: les règles qui déterminent les limites des mots dépendent du langage et peuvent être complexes même dans les langues qui utilisent des espaces entre les mots.
Certaines langues (comme le chinois ou le japonais) n’utilisent pas d’espace blanc entre les mots et la séparation des mots nécessite une analyse morphologique.
Par conséquent, les méthodes de création de jetons et les règles utilisées dans ce module fournissent des résultats différents d’un langage à l’autre. Ces règles de création de jetons sont déterminées par les bibliothèques d’analyse de texte fournies par Microsoft Research pour chaque langue prise en charge et ne peuvent pas être personnalisées.
Identification par synthèse vocale: dans n’importe quelle séquence de mots, il peut être difficile d’identifier en calcul la partie exacte de la parole pour chaque mot. Même une phrase apparemment simple telle que « l’heure d’un peu comme une flèche » peut avoir plusieurs douzaines d’analyse (un exemple célèbre). Les parties de la parole sont également très différentes selon la morphologie des différentes langues.
dans Machine Learning, un modèle de désambiguïsation est utilisé pour choisir la partie la plus probable de la parole, étant donné le contexte de la phrase actuelle. Les informations de synthèse vocale sont utilisées pour filtrer les mots utilisés comme fonctionnalités et faciliter l’extraction d’expressions clés. Toutefois, la sortie de ce module n’inclut pas explicitement les balises POS et ne peut donc pas être utilisée pour générer du texte balisé par POS.
Formulaire de génération de dictionnaire: un mot peut avoir plusieurs lemmas, ou formulaires de dictionnaire, qui proviennent d’une analyse différente. Par exemple, la génération de mots en anglais a deux possibles lemmas : la génération si le mot est un nom (« le plus grand bâtiment » ) ou si le mot est un verbe (« il s’agit de la construction d’une maison »). dans Machine Learning, seul le dictionnaire le plus probable unique est généré.
Exemple de sortie lemmatisation
Source | Lemmatisés avec conversion de casse |
---|---|
Il est responsable de la natation | Je parle |
Il va faire un couloir | Je suis en déplacement |
La natation est idéale pour la construction musculaire | l’nage est parfait pour la construction musculaire |
Il crée un bâtiment | Je crée une build |
Nous créons tous des bâtiments | Nous sommes tous en bâtiment |
Notes
Les modèles de langage utilisés pour générer le formulaire de dictionnaire ont été formés et testés par rapport à un large éventail de textes techniques et techniques, et sont utilisés dans de nombreux autres produits Microsoft qui requièrent des API en langage naturel. Toutefois, le langage naturel est intrinsèquement ambigu et une précision de 100% sur l’ensemble du vocabulaire n’est pas possible. Par exemple, lemmatisation peut être affecté par d’autres parties de la parole ou en fonction de la façon dont la phrase est analysée.
Si vous avez besoin d’effectuer un pré-traitement supplémentaire ou d’effectuer une analyse linguistique à l’aide d’un vocabulaire spécialisé ou dépendant du domaine, nous vous recommandons d’utiliser des outils NLP personnalisables, tels que ceux disponibles dans Python et R.
Caractères spéciaux
Les caractères spéciaux sont définis en tant que caractères uniques qui ne peuvent pas être identifiés comme une autre partie de la parole et peuvent inclure des signes de ponctuation : deux-points, des points-virgules, etc.
Mots vides
Un mot « STOP » (ou mot vide) est un mot qui est souvent supprimé des index, car il est courant et fournit peu de valeur pour la récupération des informations, même s’il peut être linguistiquement significatif.
Par exemple, de nombreux langages font une distinction sémantique entre les articles finis et indéfinis (« le bâtiment » et « un bâtiment »), mais pour la Machine Learning et la récupération des informations, les informations ne sont parfois pas pertinentes. Par conséquent, vous pouvez décider d’ignorer ces mots.
l’environnement Machine Learning comprend les listes des mots vides les plus courantes pour chacune des langues prises en charge.
Language | Nombre de mots vides | Exemples |
---|---|---|
Néerlandais | 49 | aan, AF, Al |
Anglais | 312 | a, à propos de, ci-dessus |
Français | 154 | de, des, d', la |
Allemand | 602 | a, AB, aber |
Italien | 135 | a, Adesso, IA |
Espagnol | 368 | ésa, ésta, éste |
À des fins pratiques, un fichier compressé contenant les mots vides par défaut pour toutes les langues actuelles a été mis à disposition dans le stockage Azure : Stopwords.zip.
Comment modifier la liste mot vide
Nous pensons que de nombreux utilisateurs souhaitent créer leurs propres listes mot vide, ou modifier les termes inclus dans la liste par défaut. l’expérience suivante dans le Cortana Intelligence Gallery montre comment vous pouvez personnaliser une liste de mots vides.
Si vous modifiez la liste ou créez votre propre liste de mots vides, observez les conditions requises suivantes :
Le fichier doit contenir une seule colonne de texte. Vous pouvez obtenir l’erreur suivante si une colonne supplémentaire est présente : « le modèle de sélection de colonne d’erreur de texte prétraité «colonne de texte à nettoyer » devrait fournir 1 colonne (s) sélectionnée (s) dans le jeu de données d’entrée, mais 2 colonnes sont réellement fournies. (Erreur 0022)»
Dans ce cas, recherchez les espaces, les tabulations ou les colonnes masquées présents dans le fichier à partir duquel la liste mot vide a été importée à l’origine. Selon la façon dont le fichier a été préparé, les tabulations ou les virgules incluses dans le texte peuvent également créer plusieurs colonnes.
Lorsque vous recevez cette erreur, examinez le fichier source ou utilisez le module Sélectionner des colonnes dans le jeu de données pour choisir une seule colonne à passer au module texte de prétraitement .
Chaque ligne ne peut contenir qu’un seul mot. Dans le cadre de l’analyse du fichier, les mots sont déterminés par l’insertion d’espaces.
La liste mot vide ne peut pas être vide.
Ordre des opérations
Dans ce module, vous pouvez appliquer plusieurs opérations à du texte. Toutefois, l’ordre dans lequel ces opérations sont appliquées ne peut pas être modifié. Cela peut affecter les résultats attendus.
Par exemple, si vous appliquez lemmatisation à du texte et que vous utilisez également la suppression mot vide, tous les mots sont convertis dans leurs formulaires Lemma avant l’application de la liste mot vide. Par conséquent, si votre texte contient un mot qui ne figure pas dans la liste mot vide, mais que son Lemma figure dans la liste mot vide, le mot est supprimé.
Veillez à tester les termes cibles à l’avance pour garantir les résultats corrects.
Langues non prises en charge
si votre colonne de texte comprend des langues non prises en charge par Machine Learning, nous vous recommandons d’utiliser uniquement les options qui ne nécessitent pas de traitement dépendant du langage. Cela peut aider à éviter des résultats étranges.
En outre, si vous utilisez la colonneoption qui contient la langue, vous devez vous assurer qu’aucune langue non prise en charge n’est incluse dans le texte traité. Si une langue non prise en charge ou son identificateur est présent dans le jeu de données, l’erreur d’exécution suivante est générée :
« Erreur de texte de prétraitement (0039) : spécifiez une langue prise en charge. »
Pour éviter de faire échouer la totalité de l’expérience, car une langue non prise en charge a été détectée, utilisez le module fractionner les données et spécifiez une expression régulière pour diviser le jeu de données en langages pris en charge et non pris en charge.
Par exemple, l’expression régulière suivante fractionne le DataSet en fonction de la langue détectée pour la colonne Sentence
:
\"Sentence Language" Dutch|English|French|Italian|Spanish
Si vous avez une colonne qui contient l’identificateur de langue ou si vous avez généré une telle colonne, vous pouvez utiliser une expression régulière telle que la suivante pour filtrer sur la colonne d’identificateur :
\"Sentence Iso6391 Name" nl|en|fr|it|es
Entrées attendues
Nom | Type | Description |
---|---|---|
Dataset | Table de données | Données d’entrée |
Mots vides | Table de données | Liste personnalisée facultative de mots vides à supprimer |
Paramètres du module
Nom | Type | Plage | Facultatif | Default | Description |
---|---|---|---|---|---|
Supprimer les URL | Booléen | True False |
Obligatoire | true | Supprimer les URL |
Langage | Langage | Anglais Espagnol Français Néerlandais Allemand Italien |
Obligatoire | Anglais | Sélectionner la langue à prétraiter |
Colonne de texte à nettoyer | Sélection de colonnes | Obligatoire | StringFeature | Sélectionnez la colonne de texte à nettoyer | |
Expression régulière personnalisée | String | Facultatif | Spécifier l’expression régulière personnalisée | ||
Chaîne de remplacement personnalisée | String | Facultatif | Spécifier la chaîne de remplacement personnalisée pour l’expression régulière personnalisée | ||
Supprimer les mots vides | Boolean | Obligatoire | true | Supprimer les mots vides | |
Lemmatisation | Boolean | Obligatoire | true | Utiliser lemmatisation | |
Supprimer par partie de la reconnaissance vocale | Type true false | true false |
Obligatoire | False | Indiquez si l’analyse de la parole doit être utilisée pour identifier et supprimer certaines classes Word |
Supprimer les noms | Booléen | S’applique lorsque l’option Filtrer par partie de la reconnaissance vocale est sélectionnée | true | Supprimer les noms | |
Supprimer les adjectifs | Booléen | S’applique lorsque l’option Filtrer par partie de la reconnaissance vocale est sélectionnée | true | Supprimer les adjectifs | |
Supprimer les verbes | Booléen | S’applique lorsque l’option Filtrer par partie de la reconnaissance vocale est sélectionnée | true | Supprimer les verbes | |
Détecter les phrases | Boolean | Obligatoire | true | Détecter les phrases en ajoutant une marque de fin de phrase \ "| | | \ "qui peut être utilisé par le module d’extraction de fonctionnalités n-Gram | |
Normaliser la casse en minuscules | Boolean | Obligatoire | true | Normaliser la casse en minuscules | |
Supprimer les nombres | Boolean | Obligatoire | true | Supprimer les nombres | |
Supprimer les caractères spéciaux | Boolean | Obligatoire | true | Supprimer les caractères spéciaux non alphanumériques et les remplacer par le caractère « | \ » | |
Supprimer les caractères en double | Boolean | Obligatoire | true | Supprimer les caractères en double | |
Supprimer les adresses de messagerie | Boolean | Obligatoire | true | Supprimer les adresses de messagerie |
Sorties
Nom | Type | Description |
---|---|---|
Jeu de données de résultats | Table de données | Jeu de données de résultats |
Exceptions
Exception | Description |
---|---|
Erreur 0003 | Une exception se produit si une ou plusieurs entrées ont la valeur Null ou sont vides. |
Erreur 0030 | Une exception se produit lorsqu'il n'est pas possible de télécharger un fichier. |
Erreur 0048 | Une exception se produit quand il n'est pas possible d'ouvrir un fichier. |
Erreur 0049 | Une exception se produit quand il n'est pas possible d'analyser un fichier. |
pour obtenir la liste des erreurs spécifiques aux modules Studio (classiques), consultez Machine Learning codes d’erreur.
pour obtenir la liste des exceptions d’api, consultez Machine Learning les Codes d’erreur de l' api REST.