stopwordsDefault : transformation de texte Machine Learning

Transformations de texte qui peuvent être effectuées sur les données avant d’effectuer l’apprentissage d’un modèle.

Utilisation

  stopwordsDefault()

  stopwordsCustom(dataFile = "")

  termDictionary(terms = "", dataFile = "", sort = "occurrence")

  featurizeText(vars, language = "English", stopwordsRemover = NULL,
    case = "lower", keepDiacritics = FALSE, keepPunctuations = TRUE,
    keepNumbers = TRUE, dictionary = NULL,
    wordFeatureExtractor = ngramCount(), charFeatureExtractor = NULL,
    vectorNormalizer = "l2", ...)

Arguments

dataFile

caractère : <chaîne>. Fichier de données contenant les termes (données de forme abrégée).

terms

Un vecteur de caractères facultatif des termes ou des catégories.

sort

Indique comment ordonner les éléments en cas de vectorisation. Deux commandes sont prises en charge :

  • "occurrence" : les éléments apparaissent dans l’ordre rencontré.
  • "value" : les éléments sont triés en fonction de leur comparaison par défaut. Par exemple, le tri de texte respecte la casse (par exemple, « A », « Z » puis « a »).

vars

Liste nommée de vecteurs de caractères des noms de variables d’entrée, et le nom de la variable de sortie. Notez que les variables d’entrée doivent être du même type. Pour les mappages un-à-un entre les variables d’entrée et de sortie, un vecteur de caractères nommé peut être utilisé.

language

Spécifie la langue utilisée dans le jeu de données. Les valeurs suivantes sont admises :

  • "AutoDetect" : pour la détection automatique de la langue.
  • "English".
  • "French".
  • "German".
  • "Dutch".
  • "Italian".
  • "Spanish".
  • "Japanese".

stopwordsRemover

Spécifie l’utilitaire de suppression des mots vides à utiliser. Trois options sont prises en charge :

  • NULL : aucun utilitaire de suppression des mots vides n’est utilisé.
  • stopwordsDefault : une liste spécifique au langage précompilée de mots vides est utilisée et comprend les mots les plus courants de Microsoft Office.
  • stopwordsCustom : liste définie par l’utilisateur de mots vides. Elle accepte l’option suivante : dataFile.
    La valeur par défaut est NULL.

case

Casse du texte utilisant les règles de la culture dite indifférente. Prend les valeurs suivantes :

  • "lower".
  • "upper".
  • "none".
    La valeur par défaut est "lower".

keepDiacritics

FALSE pour supprimer les signes diacritiques ; TRUE pour conserver les signes diacritiques. La valeur par défaut est FALSE.

keepPunctuations

FALSE pour supprimer la ponctuation ; TRUE pour conserver la ponctuation. La valeur par défaut est TRUE.

keepNumbers

FALSE pour supprimer des nombres ; TRUE pour conserver les nombres. La valeur par défaut est TRUE.

dictionary

Un termDictionary de termes de la liste d’autorisation qui accepte les options suivantes :

  • terms,
  • dataFile. Et
  • sort.
    La valeur par défaut est NULL. Notez que la liste de mots vides est prioritaire sur la liste d'autorisation du dictionnaire, car les mots vides sont supprimés avant que les termes du dictionnaire ne soient placés dans la liste d’autorisation.

wordFeatureExtractor

Indique les arguments de l’extraction de caractéristiques mots. Il existe deux mécanismes d’extraction de caractéristiques :

  • ngramCount : extraction de caractéristiques basée sur le nombre (équivalent à WordBag). Il accepte les options suivantes : maxNumTerms et weighting.
  • ngramHash : extraction de caractéristiques basée sur le hachage (équivalent à WordHashBag). Il accepte les options suivantes : hashBits, seed, ordered et invertHash.
    La valeur par défaut est ngramCount.

charFeatureExtractor

Indique les arguments de l’extraction de caractéristiques caractères. Il existe deux mécanismes d’extraction de caractéristiques :

  • ngramCount : extraction de caractéristiques basée sur le nombre (équivalent à WordBag). Il accepte les options suivantes : maxNumTerms et weighting.
  • ngramHash : extraction de caractéristiques basée sur le hachage (équivalent à WordHashBag). Il accepte les options suivantes : hashBits, seed, ordered et invertHash.
    La valeur par défaut est NULL.

vectorNormalizer

Normalise les vecteurs (lignes) individuellement par remise à l’échelle à la norme unitaire. Prend l’une des valeurs suivantes :

  • "none".
  • "l2".
  • "l1".
  • "linf". La valeur par défaut est "l2".

...

Arguments supplémentaires envoyés au moteur de calcul.

Détails

La transformation featurizeText produit un jeu de nombres de
séquences de mots consécutifs (appelées n-grams) à partir d’un corpus de texte donné. Vous avez deux façons de procéder :

Générer un dictionnaire de n-grammes et utiliser l’ID dans le dictionnaire comme index dans le conteneur.

Hacher chaque n-gramme et utiliser la valeur de hachage en tant qu’index dans le conteneur.

Le hachage consiste à convertir des documents texte de longueur variable en vecteurs de fonctions numériques de longueur égale, pour prendre en charge la réduction de la dimensionnalité et accélérer la recherche du poids des fonctions.

Le processus de transformation de texte est appliqué aux colonnes d’entrée de texte. Il permet de détecter la langue, de créer des jetons, de supprimer les mots vides, de normaliser du texte et de générer des fonctionnalités. Il prend en charge les langues suivantes par défaut : anglais, français, allemand, néerlandais, italien, espagnol et japonais.

Les n-grammes sont représentés en tant que vecteurs de comptage, avec des emplacements vectorisés correspondant à n-grammes (créés à l’aide de ngramCount) ou à leurs codes de hachage (créés à l’aide de ngramHash). L’incorporation des n-grammes dans un espace vectoriel permet de comparer efficacement leur contenu. Les valeurs d’emplacement dans le vecteur peuvent être pondérées par les facteurs suivants :

fréquence des termes : nombre d’occurrences de l’emplacement dans le texte

fréquence documentaire inverse : rapport (logarithme de la fréquence d’emplacement relative inverse) qui mesure l’information fournie par un emplacement en déterminant sa fréquence ou sa rareté dans l’ensemble du texte.

fréquence de termes-fréquence documentaire inversefréquence des termes et fréquence documentaire inverse.

Valeur

Un objet maml définissant la transformation.

Auteur(s)

Microsoft Corporation Microsoft Technical Support

Voir aussi

ngramCount, ngramHash, rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.

Exemples


 trainReviews <- data.frame(review = c( 
         "This is great",
         "I hate it",
         "Love it",
         "Do not like it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I kind of hate it",
         "I do like it",
         "I really hate it",
         "It is very good",
         "I hate it a bunch",
         "I love it a bunch",
         "I hate it",
         "I like it very much",
         "I hate it very much.",
         "I really do love it",
         "I really do hate it",
         "Love it!",
         "Hate it!",
         "I love it",
         "I hate it",
         "I love it",
         "I hate it",
         "I love it"),
      like = c(TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, 
         FALSE, TRUE, FALSE, TRUE), stringsAsFactors = FALSE
     )

     testReviews <- data.frame(review = c(
         "This is great",
         "I hate it",
         "Love it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I love it",
         "I do like it",
         "I really hate it",
         "I love it"), stringsAsFactors = FALSE)


 outModel <- rxLogisticRegression(like ~ reviewTran, data = trainReviews,
     mlTransforms = list(featurizeText(vars = c(reviewTran = "review"),
     stopwordsRemover = stopwordsDefault(), keepPunctuations = FALSE)))
 # 'hate' and 'love' have non-zero weights
 summary(outModel)

 # Use the model to score
 scoreOutDF5 <- rxPredict(outModel, data = testReviews, 
     extraVarsToWrite = "review")
 scoreOutDF5