Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Usage
microsoftml.featurize_text(cols: [str, dict, list], language: ['AutoDetect',
'English', 'French', 'German', 'Dutch', 'Italian', 'Spanish',
'Japanese'] = 'English', stopwords_remover=None, case: ['Lower',
'Upper', 'None'] = 'Lower', keep_diacritics: bool = False,
keep_punctuations: bool = True, keep_numbers: bool = True,
dictionary: dict = None, word_feature_extractor={'Name': 'NGram',
'Settings': {'Weighting': 'Tf', 'MaxNumTerms': [10000000],
'NgramLength': 1, 'AllLengths': True, 'SkipLength': 0}},
char_feature_extractor=None, vector_normalizer: ['None', 'L1', 'L2',
'LInf'] = 'L2', **kargs)
Description
Transformações de texto que podem ser realizadas em dados antes de treinar um modelo.
Detalhes
A featurize_text transformada produz um saco de contagens de sequências de palavras consecutivas, chamadas n-gramas, a partir de um dado corpus de texto.
Existem duas maneiras de fazer isso:
construir um dicionário de n-gramas e usar o ID no dicionário como índice na bolsa;
Faça o hash de cada n-grama e use o valor do hash como índice no saco.
O objetivo do hashing é converter documentos de texto de comprimento variável em vetores numéricos de características de comprimento igual, para suportar redução de dimensionalidade e tornar a busca pelos pesos de características mais rápida.
A transformação de texto é aplicada às colunas de entrada de texto. Ele oferece detecção de idiomas, tokenização, remoção de palavras de entrada, normalização de texto e geração de recursos. Ele suporta os seguintes 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 vetoriais correspondentes a n-gramas (criados usando n_gram) ou aos seus hashes (criados usando n_gram_hash). Incorporar ngramas em um espaço vetorial permite que seus conteúdos sejam comparados de maneira eficiente.
Os valores das ranhuras no vetor podem ser ponderados pelos seguintes fatores:
Frequência do termo - O número de ocorrências da fenda no texto
Frequência inversa de documentos - Uma razão (o logaritmo da frequência relativa inversa dos slots) que mede as informações que uma slot fornece determinando quão comum ou rara ela é em todo o texto.
termo frequência-inversa do documento frequência - o termo produto e o inverso do documento frequência.
Argumentos
Cols
Uma string de caracteres ou lista de nomes de variáveis para transformar. Se dict, as chaves representam os nomes das novas variáveis a serem criadas.
linguagem
Especifica a linguagem usada no conjunto de dados. Há suporte para os seguintes valores:
"AutoDetect": para detecção automática de linguagem."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Especifica o removedor de palavras de stop a ser usado. Existem três opções suportadas:
Nenhum: Não é usado removedor de palavras de stop.
predefined: Uma lista pré-compilada específica de palavras de parada é usada para cada idioma, que inclui as palavras mais comuns do Microsoft Office.custom: Uma lista definida pelo usuário de palavras de parada. Aceita a seguinte opção:stopword.
O valor padrão é None.
caso
Uso de letras usando as regras da cultura invariante. Assume os seguintes valores:
"Lower""Upper""None"
O valor padrão é "Lower".
keep_diacritics
False remover marcas diacríticas; True para manter marcas diacríticas. O valor padrão é False.
keep_punctuations
False remover pontuação; True para manter a pontuação. O valor padrão é True.
keep_numbers
False remover números; True para reter números. O valor padrão é True.
dicionário
Um dicionário de termos permitidos que aceita as seguintes opções:
term: Um vetor de caracteres opcional de termos ou categorias.dropUnknowns: Deixe os itens cair.sort: Especifica como ordenar itens quando vetorizados. São suportados dois ordenamentos:-
"occurrence": itens aparecem na ordem encontrada. -
"value": os itens são ordenados de acordo com sua comparação padrão. Por exemplo, a ordenação de texto será sensível a maiúsculas (por exemplo, 'A' depois 'Z' e depois 'a').
-
O valor padrão é None. Note que a lista de palavras de registro tem precedência sobre a lista de dicionários, pois as palavras de encerramento são removidas antes que os termos do dicionário sejam listados.
word_feature_extractor
Especifica a palavra argumentos de extração de características. Existem dois mecanismos diferentes de extração de características:
n_gram(): Extração de características baseada em contagem (equivalente ao WordBag). Aceita as seguintes opções:max_num_termseweighting.n_gram_hash(): Extração de recursos baseada em hashing (equivalente ao WordHashBag). Aceita as seguintes opções:hash_bits,seed,orderedeinvert_hash.
O valor padrão é n_gram.
char_feature_extractor
Especifica os argumentos de extração de características do personagem. Existem dois mecanismos diferentes de extração de características:
n_gram(): Extração de características baseada em contagem (equivalente ao WordBag). Aceita as seguintes opções:max_num_termseweighting.n_gram_hash(): Extração de recursos baseada em hashing (equivalente ao WordHashBag). Aceita as seguintes opções:hash_bits,seed,orderedeinvert_hash.
O valor padrão é None.
vector_normalizer
Normalize vetores (linhas) individualmente, reescalando-os para a norma unitária. Assume um dos seguintes valores:
"None""L2""L1""LInf"
O valor padrão é "L2".
kargs
Argumentos adicionais enviados ao mecanismo de computação.
Returns
Um objeto que define a transformação.
Exemplo
'''
Example with featurize_text and rx_logistic_regression.
'''
import numpy
import pandas
from microsoftml import rx_logistic_regression, featurize_text, rx_predict
from microsoftml.entrypoints._stopwordsremover_predefined import predefined
train_reviews = pandas.DataFrame(data=dict(
review=[
"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=[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]))
test_reviews = pandas.DataFrame(data=dict(
review=[
"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"]))
out_model = rx_logistic_regression("like ~ review_tran",
data=train_reviews,
ml_transforms=[
featurize_text(cols=dict(review_tran="review"),
stopwords_remover=predefined(),
keep_punctuations=False)])
# Use the model to score.
score_df = rx_predict(out_model, data=test_reviews, extra_vars_to_write=["review"])
print(score_df.head())
Saída:
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
Not adding a normalizer.
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
LBFGS multi-threading will attempt to load dataset into memory. In case of out-of-memory issues, turn off multi-threading by setting trainThreads to 1.
Warning: Too few instances to use 4 threads, decreasing to 1 thread(s)
Beginning optimization
num vars: 11
improvement criterion: Mean Improvement
L1 regularization selected 3 of 11 weights.
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.3725934
Elapsed time: 00:00:00.0131199
Beginning processing data.
Rows Read: 10, Read Time: 0, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0635453
Finished writing 10 rows.
Writing completed.
review PredictedLabel Score Probability
0 This is great True 0.443986 0.609208
1 I hate it False -0.668449 0.338844
2 Love it True 0.994339 0.729944
3 Really like it True 0.443986 0.609208
4 I hate it False -0.668449 0.338844
Extratores N-grams
microsoftml.n_gram: converte texto em recursos usando n-gramas
microsoftml.n_gram_hash: converte texto em recursos usando n-gramas de hash
Removedores de palavras de stop
microsoftml.custom: remove palavras irrelevantes personalizadas
microsoftml.predefined: remove palavras irrelevantes predefinidas
Conteúdo relacionado
- microsoftml.n_gram: converte texto em recursos usando n-gramas
- microsoftml.n_gram_hash: converte texto em recursos usando n-gramas de hash
- microsoftml.custom: remove palavras irrelevantes personalizadas
- microsoftml.predefined: remove palavras irrelevantes predefinidas
- microsoftml.get_sentiment: análise de sentimento