Compartir vía


stopwordsDefault: transformación de texto de Machine Learning

Transformaciones de texto que se pueden realizar en los datos antes de entrenar un modelo.

Uso

  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", ...)

Argumentos

dataFile

carácter: <cadena>. Archivo de datos que contiene los términos (datos de formato corto).

terms

Vector de carácter opcional de términos o categorías.

sort

Especifica cómo ordenar los elementos cuando se vectorizan. Se admiten dos ordenes:

  • "occurrence": los elementos aparecen en el orden encontrado.
  • "value": los elementos se ordenan según su comparación predeterminada. Por ejemplo, la organización del texto distingue entre mayúsculas y minúsculas (por ejemplo, "a", luego "z" y después "a").

vars

Lista con nombre de vectores de caracteres de nombres de variables de entrada y el nombre de la variable de salida. Tenga en cuenta que todas las variables de entrada deben ser del mismo tipo. Para las asignaciones uno a uno entre variables de entrada y salida, se puede usar un vector de caracteres con nombre.

language

Especifica el lenguaje utilizado en el conjunto de datos. Se admiten los valores siguientes:

  • "AutoDetect": para la detección automática de lenguaje.
  • "English".
  • "French".
  • "German".
  • "Dutch".
  • "Italian".
  • "Spanish".
  • "Japanese".

stopwordsRemover

Especifica el eliminador de palabras irrelevantes que se usará. Se admiten tres opciones:

  • NULL: no se usa ningún eliminador de palabras irrelevantes.
  • stopwordsDefault: una lista precompilada de palabras irrelevantes específica del idioma que incluye las palabras más comunes de Microsoft Office.
  • stopwordsCustom: una lista de palabras irrelevantes definida por el usuario. Acepta la opción siguiente: dataFile.
    El valor predeterminado es NULL.

case

Uso de mayúsculas y minúsculas del texto mediante las reglas de la referencia cultural invariable. Toma los siguientes valores:

  • "lower".
  • "upper".
  • "none".
    El valor predeterminado es "lower".

keepDiacritics

FALSEpara quitar las marcas diacríticas, TRUE para mantenerlas. El valor predeterminado es FALSE.

keepPunctuations

FALSE para quitar la puntuación, TRUE para mantenerla. El valor predeterminado es TRUE.

keepNumbers

FALSE para quitar los números, TRUE para mantenerlos. El valor predeterminado es TRUE.

dictionary

Un termDictionary de términos permitidos que acepta las opciones siguientes:

  • terms,
  • dataFile y
  • sort.
    El valor predeterminado es NULL. Tenga en cuenta que la lista de palabras irrelevantes tiene prioridad sobre la lista de permitidos del diccionario, ya que estas se quitan antes de que se permitan los términos del diccionario.

wordFeatureExtractor

Especifica los argumentos de extracción de características de palabra. Hay dos mecanismos de extracción de características diferentes:

  • ngramCount: extracción de características basada en recuento (equivalente a WordBag). Acepta las opciones siguientes: maxNumTerms y weighting.
  • ngramHash: extracción de características basada en hash (equivalente a WordHashBag). Acepta las opciones siguientes: hashBits, seed, ordered y invertHash.
    El valor predeterminado es ngramCount.

charFeatureExtractor

Especifica los argumentos de extracción de características char. Hay dos mecanismos de extracción de características diferentes:

  • ngramCount: extracción de características basada en recuento (equivalente a WordBag). Acepta las opciones siguientes: maxNumTerms y weighting.
  • ngramHash: extracción de características basada en hash (equivalente a WordHashBag). Acepta las opciones siguientes: hashBits, seed, ordered y invertHash.
    El valor predeterminado es NULL.

vectorNormalizer

Normaliza vectores (filas) de forma individual al cambiar la escala a la norma de la unidad. Toma uno de los valores siguientes:

  • "none".
  • "l2".
  • "l1".
  • "linf". El valor predeterminado es "l2".

...

Argumentos adicionales que se envían al motor de proceso.

Detalles

La transformación featurizeText genera un contenedor de recuentos de
secuencias de palabras consecutivas, denominadas n-gramas, a partir de un corpus de texto determinado. Esto puede hacerse de dos formas:

crear un diccionario de n-gramas y usar el identificador en el diccionario como índice en la bolsa;

aplicar un algoritmo hash a cada n-grama y usar el valor hash como índice de la bolsa.

El propósito del código hash es convertir documentos de texto de longitud variable en vectores de características numéricos de igual longitud, para admitir la reducción de dimensionalidad y acelerar la búsqueda de pesos de características.

La transformación de texto se aplica a las columnas de entrada de texto. Ofrece detección de idioma, tokenización, eliminación de palabras irrelevantes, normalización de texto y generación de características. Admite los siguientes idiomas de forma predeterminada: inglés, francés, alemán, neerlandés, italiano, español y japonés.

Los n-gramas se representan como vectores de recuento, con ranuras de vector que corresponden a n-gramas (creados mediante ngramCount) o a sus hashes (creados mediante ngramHash). La inserción de n-gramas en un espacio vectorial permite comparar su contenido de forma eficaz. Los valores de ranura del vector se pueden ponderar por los siguientes factores:

frecuencia de término: el número de apariciones de la ranura en el texto

frecuencia inversa del documento: una proporción (el logaritmo de la frecuencia inversa de ranura relativa) que mide la información que proporciona una ranura mediante la determinación de cuán común o poco frecuente es en todo el texto.

frecuencia de término-frecuencia de documento inverso: la frecuencia de término del producto y la frecuencia inversa del documento.

Value

Un objeto maml que define la transformación.

Autores

Microsoft Corporation Microsoft Technical Support

Consulte también

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

Ejemplos


 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