stopwordsDefault: transformação de texto do Machine Learning
Transformações de texto que podem ser executadas nos dados antes de treinar um 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
caracteres: <string>. Arquivo de dados que contém os termos (dados de forma abreviada).
terms
Um vetor de caractere opcional de termos ou categorias.
sort
Especifica como ordenar itens quando eles são vetorizados. Há dois tipos de ordenação compatíveis:
"occurrence"
: os itens são exibidos na ordem encontrada."value"
: os itens são classificados de acordo com a respectiva comparação padrão. Por exemplo, a classificação de texto vai diferenciar maiúsculas de minúsculas (por exemplo, "A", "Z" e "a").
vars
Uma lista nomeada de vetores de caracteres de nomes de variáveis de entrada e o nome da variável de saída. Observe que as variáveis de entrada precisam ser do mesmo tipo. Para mapeamentos um para um entre variáveis de entrada e saída, um vetor de caractere nomeado pode ser usado.
language
Especifica o idioma usado no conjunto de dados. Os seguintes valores têm suporte:
"AutoDetect"
: usado para executar a detecção automática de idioma."English"
."French"
."German"
."Dutch"
."Italian"
."Spanish"
."Japanese"
.
stopwordsRemover
Especifica o removedor de palavras irrelevantes a ser usado. Há três opções compatíveis:
NULL
Nenhum removedor de palavras irrelevantes é usado.stopwordsDefault
: uma lista pré-compilada de palavras irrelevantes específicas a um idioma é usada e inclui as palavras mais comuns do Microsoft Office.stopwordsCustom
: uma lista definida pelo usuário de palavras irrelevantes. Ela aceita esta opção:dataFile
.
O valor padrão éNULL
.
case
Uso de maiúsculas/minúsculas no texto com regras de cultura invariável. Usa os seguintes valores:
"lower"
."upper"
."none"
.
O valor padrão é"lower"
.
keepDiacritics
FALSE
para remover marcas diacríticas e TRUE
para manter marcas diacríticas. O valor padrão é FALSE
.
keepPunctuations
FALSE
para remover a pontuação e TRUE
para manter a pontuação. O valor padrão é TRUE
.
keepNumbers
FALSE
para remover os números e TRUE
para manter os números. O valor padrão é TRUE
.
dictionary
Um termDictionary
de termos incluídos na lista de permitidos que aceita as seguintes opções:
terms
,dataFile
esort
.
O valor padrão éNULL
. Observe que a lista de palavras irrelevantes tem precedência sobre a lista de permitidos do dicionário, pois as palavras irrelevantes são removidas antes que os termos do dicionário sejam incluídos na lista de permitidos.
wordFeatureExtractor
Especifica os argumentos de extração de recursos de palavras. Há dois mecanismos de extração de recursos:
- ngramCount: extração de recursos baseada em contagem (equivalente a WordBag). Ela aceita estas opções:
maxNumTerms
eweighting
. - ngramHash: extração de recursos baseada em hash (equivalente a WordHashBag). Ela aceita estas opções:
hashBits
,seed
,ordered
einvertHash
.
O valor padrão éngramCount
.
charFeatureExtractor
Especifica os argumentos de extração de recursos de caracteres. Há dois mecanismos de extração de recursos:
- ngramCount: extração de recursos baseada em contagem (equivalente a WordBag). Ela aceita estas opções:
maxNumTerms
eweighting
. - ngramHash: extração de recursos baseada em hash (equivalente a WordHashBag). Ela aceita estas opções:
hashBits
,seed
,ordered
einvertHash
.
O valor padrão éNULL
.
vectorNormalizer
Normaliza vetores (linhas) de modo individual, redimensionando-os como norma de unidade. Usa um dos seguintes valores:
"none"
."l2"
."l1"
."linf"
. O valor padrão é"l2"
.
...
Argumentos adicionais enviados ao mecanismo de computação.
Detalhes
A transformação featurizeText
produz um recipiente de contagens de
sequências de palavras consecutivas, chamadas n-grams, de um determinado corpus de texto.
Há dois modos de executar isso:
Crie um dicionário de n-gramas e use a ID no dicionário como um índice no recipiente;
Use um hash em cada n-grama e o valor de hash como um índice no recipiente.
A finalidade de usar o hash é converter documentos de texto de tamanho variável em vetores de recurso numérico de igual tamanho para dar suporte à redução de dimensionalidade e agilizar a pesquisa de pesos de recurso.
A transformação de texto se aplica a colunas de entrada de texto. Oferece detecção de idioma, geração de tokens, remoção de palavras irrelevantes, normalização de texto e criação de recursos. Ela é compatível com estes idiomas por padrão: inglês, francês, alemão, holandês, italiano, espanhol e japonês.
Os n-gramas são representados como vetores de contagem com slots de vetor correspondentes a n-gramas (criados com o ngramCount
) ou aos respectivos hashes (criados com o ngramHash
). Inserir n-gramas em um espaço de vetor permite que o respectivo conteúdo seja comparado de modo eficiente.
Os valores de slot podem ser ponderados no vetor pelos seguintes fatores:
Frequência do termo – O número de ocorrências do slot no texto
Frequência inversa do documento – Uma taxa (logaritmo da frequência inversa relativa do slot) que mede as informações que um slot fornece ao determinar como ele é comum ou raro em todo o texto.
Frequência do documento de frequência inversa do temo – A frequência do termo do produto e a frequência inversa do documento.
Valor
Um objeto maml
que define a transformação.
Autor(es)
Microsoft Corporation Microsoft Technical Support
Confira também
ngramCount, ngramHash, rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.
Exemplos
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