Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
Transformaciones de texto que pueden realizarse sobre datos antes de entrenar un modelo.
Detalles
La featurize_text transformada produce una bolsa de conteos de secuencias de palabras consecutivas, llamadas n-gramas, a partir de un corpus dado de texto.
Hay dos formas en que puede hacerlo:
construir un diccionario de n-gramas y usar el ID del diccionario como índice en la bolsa;
Haz el hash de cada n-gramo y usa el valor hash como índice en la bolsa.
El propósito del hashing es convertir documentos de texto de longitud variable en vectores numéricos de características de igual longitud, para apoyar la reducción de dimensionalidad y facilitar 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 lenguaje, tokenización, eliminación de palabras clave, normalización de texto y generación de características. Soporta por defecto los siguientes idiomas: inglés, francés, alemán, neerlandés, italiano, español y japonés.
Los n-gramos se representan como vectores de conteo, con ranuras vectoriales correspondientes a n-gramos (creados usando n_gram) o a sus hashes (creados usando n_gram_hash). Incrustar ngramas en un espacio vectorial permite comparar su contenido de manera eficiente.
Los valores de las ranuras en el vector pueden ponderarse por los siguientes factores:
Frecuencia de términos - El número de ocurrencias de la ranura en el texto
Frecuencia inversa de documentos - Una razón (el logaritmo de la frecuencia relativa inversa de ranuras) que mide la información que proporciona una ranura determinando cuán común o rara es en todo el texto.
Término frecuencia-inversa del documento - el producto del término frecuencia y el inverso del documento frecuencia.
Argumentos
cols
Una cadena de caracteres o lista de nombres de variables para transformar. Si dict, las claves representan los nombres de nuevas variables a crear.
language
Especifica el lenguaje utilizado en el conjunto de datos. Se admiten los siguientes valores:
"AutoDetect": para la detección automática del lenguaje."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Especifica el removedor de palabras clave que debe usar. Hay tres opciones compatibles:
Ninguno: No se utiliza eliminador de palabras terminadas.
predefined: Se utiliza una lista precompilada específica de palabras de parada que incluye las palabras más comunes de Microsoft Office.custom: Una lista definida por el usuario de palabras clave. Acepta la siguiente opción:stopword.
El valor predeterminado es None.
caso
Uso de las mayúsculas de texto usando las reglas de la cultura invariante. Toma los siguientes valores:
"Lower""Upper""None"
El valor por defecto es "Lower".
keep_diacritics
False eliminar marcas diacríticas; True para conservar las marcas diacríticas. El valor por defecto es False.
keep_punctuations
False eliminar la puntuación; True para conservar la puntuación. El valor por defecto es True.
keep_numbers
False eliminar números; True para retener números. El valor por defecto es True.
diccionario
Un diccionario de términos permitidos que acepta las siguientes opciones:
term: Un vector de caracteres opcional de términos o categorías.dropUnknowns: Suelta objetos.sort: Especifica cómo ordenar los elementos cuando se vectorizan. Se admiten dos ordenaciones:-
"occurrence": los objetos aparecen en el orden en que se encuentran. -
"value": los elementos se ordenan según su comparación predeterminada. Por ejemplo, la ordenación de texto será sensible a mayúsculas minúsculas (por ejemplo, 'A' luego 'Z' y luego 'a').
-
El valor predeterminado es None. Ten en cuenta que la lista de palabras clave tiene prioridad sobre la lista de permisos del diccionario, ya que se eliminan antes de que se incluyan los términos del diccionario.
word_feature_extractor
Especifica la palabra argumentos de extracción de características. Existen dos mecanismos diferentes de extracción de características:
n_gram(): Extracción de características basada en recuento (equivalente a WordBag). Acepta las siguientes opciones:max_num_termsyweighting.n_gram_hash(): Extracción de características basada en hash (equivalente a WordHashBag). Acepta las siguientes opciones:hash_bits,seed,orderedyinvert_hash.
El valor por defecto es n_gram.
char_feature_extractor
Especifica los argumentos de extracción de características de personaje. Existen dos mecanismos diferentes de extracción de características:
n_gram(): Extracción de características basada en recuento (equivalente a WordBag). Acepta las siguientes opciones:max_num_termsyweighting.n_gram_hash(): Extracción de características basada en hash (equivalente a WordHashBag). Acepta las siguientes opciones:hash_bits,seed,orderedyinvert_hash.
El valor predeterminado es None.
vector_normalizer
Normaliza vectores (filas) individualmente reescalándolos a norma unitaria. Toma uno de los siguientes valores:
"None""L2""L1""LInf"
El valor por defecto es "L2".
kargs
Argumentos adicionales enviados al motor de proceso.
Returns
Objeto que define la transformación.
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())
Salida:
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
Extractores de N-grams
microsoftml.n_gram: convierte el texto en características mediante n-gramas
microsoftml.n_gram_hash: convierte el texto en características con de n-gramas hash
Removedores de palabras clave
microsoftml.custom: quita las palabras irrelevantes personalizadas
microsoftml.predefinida: quita las palabras irrelevantes predefinidas
Contenido relacionado
- microsoftml.n_gram: convierte el texto en características mediante n-gramas
- microsoftml.n_gram_hash: convierte el texto en características con de n-gramas hash
- microsoftml.custom: quita las palabras irrelevantes personalizadas
- microsoftml.predefinida: quita las palabras irrelevantes predefinidas
- microsoftml.get_sentiment: de análisis de sentimiento