Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 sobre 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 formas de o fazer:
construir um dicionário de n-gramas e usar o ID do dicionário como índice no saco;
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, suportar a redução de dimensionalidade e tornar a pesquisa dos pesos das características mais rápida.
A transformação de texto é aplicada às colunas de entrada de texto. Oferece deteção de linguagem, tokenização, remoção de palavras-chave, normalização de texto e geração de funcionalidades. Suporta as seguintes línguas por defeito: inglês, francês, alemão, neerlandê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). A incorporação de ngramas num espaço vetorial permite comparar o seu conteúdo de forma 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 do documento - Uma razão (o logaritmo da frequência relativa inversa das ranhuras) que mede a informação que uma ranhura fornece ao determinar quão comum ou rara é em todo o texto.
termo frequência-inversa do documento frequência - o termo produto frequência e o inverso do documento frequência.
Arguments
Cols
Uma cadeia de caracteres ou lista de nomes de variáveis a transformar. Se dict, as chaves representam os nomes das novas variáveis a serem criadas.
linguagem
Especifica a linguagem usada no conjunto de dados. Os seguintes valores são suportados:
"AutoDetect": para deteção automática de linguagem."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Especifica o removedor de stopwords a usar. Existem três opções suportadas:
Nenhum: Não é usado removedor de palavras de parada.
predefined: É utilizada uma lista pré-compilada específica de palavras de parada que inclui as palavras mais comuns do Microsoft Office.custom: Uma lista definida pelo utilizador de palavras terminais. Aceita a seguinte opção:stopword.
O valor predefinido é None.
caso
Caso de texto usando as regras da cultura invariante. Assume os seguintes valores:
"Lower""Upper""None"
O valor predefinido é "Lower".
keep_diacritics
False remover marcas diacríticas; True para manter marcas diacríticas. O valor predefinido é False.
keep_punctuations
False para remover a pontuação; True para manter a pontuação. O valor predefinido é True.
keep_numbers
False remover números; True para reter números. O valor predefinido é True.
dictionary
Um dicionário de termos permitidos que aceita as seguintes opções:
term: Um vetor de caracteres opcional de termos ou categorias.dropUnknowns: Largar itens.sort: Especifica como ordenar itens quando vetorizados. São suportadas duas ordenações:-
"occurrence": os itens aparecem na ordem encontrada. -
"value": os itens são ordenados de acordo com a sua comparação padrão. Por exemplo, a ordenação de texto será sensível a maiúsculas minúsculas (por exemplo, 'A' depois 'Z' e depois 'a').
-
O valor predefinido é None. Note-se que a lista de palavras-chave tem precedência sobre a lista de dicionários, pois as palavras de encerramento são removidas antes de os termos do dicionário serem incluídos.
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 funcionalidades baseada em hash (equivalente ao WordHashBag). Aceita as seguintes opções:hash_bits,seed,orderedeinvert_hash.
O valor predefinido é n_gram.
char_feature_extractor
Especifica os argumentos de extração da característica 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 funcionalidades baseada em hash (equivalente ao WordHashBag). Aceita as seguintes opções:hash_bits,seed,orderedeinvert_hash.
O valor predefinido é None.
vector_normalizer
Normalize os vetores (linhas) individualmente, reescalando-os para a norma unitária. Assume um dos seguintes valores:
"None""L2""L1""LInf"
O valor predefinido é "L2".
Kargs
Argumentos adicionais enviados ao motor de computação.
Devoluções
Um objeto que define a transformação.
Example
'''
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-gramas
microsoftml.n_gram: Converte texto em recursos usando n-gramas
microsoftml.n_gram_hash: Converte texto em recursos usando n-gramas em hash
Removedores de palavras finais
Conteúdo relacionado
- microsoftml.n_gram: Converte texto em recursos usando n-gramas
- microsoftml.n_gram_hash: Converte texto em recursos usando n-gramas em hash
- microsoftml.custom: Remove palavras paradas personalizadas
- microsoftml.predefined: Remove palavras paradas predefinidas
- microsoftml.get_sentiment: Análise de sentimento