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 esNULL
.
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
FALSE
para 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
ysort
.
El valor predeterminado esNULL
. 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
yweighting
. - ngramHash: extracción de características basada en hash (equivalente a WordHashBag). Acepta las opciones siguientes:
hashBits
,seed
,ordered
yinvertHash
.
El valor predeterminado esngramCount
.
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
yweighting
. - ngramHash: extracción de características basada en hash (equivalente a WordHashBag). Acepta las opciones siguientes:
hashBits
,seed
,ordered
yinvertHash
.
El valor predeterminado esNULL
.
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