Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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)
Descrzione
Trasformazioni di testo che possono essere eseguite sui dati prima di addestrare un modello.
dettagli
La featurize_text trasformata produce un sacchetto di conteggi di sequenze di parole consecutive, chiamate n-grammi, da un dato corpus di testo.
Ci sono due modi in cui può farlo:
costruire un dizionario di n-grammi e usare l'ID nel dizionario come indice nella borsa;
Hasha ogni n-gramma e usa il valore hash come indice nella bustina.
Lo scopo dell'hashing è convertire documenti di testo a lunghezza variabile in vettori numerici di caratteristiche di uguale lunghezza, per supportare la riduzione della dimensionalità e rendere più veloce la ricerca dei pesi delle caratteristiche.
La trasformazione del testo viene applicata alle colonne di input di testo. Offre rilevamento del linguaggio, tokenizzazione, rimozione delle parole chiare, normalizzazione del testo e generazione di funzionalità. Supporta di default le seguenti lingue: inglese, francese, tedesco, olandese, italiano, spagnolo e giapponese.
Gli n-grammi sono rappresentati come vettori di conteggio, con slot vettoriali corrispondenti o a n-grammi (creati usando n_gram) o ai loro hash (creati usando n_gram_hash). Incorporare ngrammi in uno spazio vettoriale permette di confrontarne i contenuti in modo efficiente.
I valori delle fessure nel vettore possono essere ponderati dai seguenti fattori:
Frequenza del termine - Il numero di occorrenze dello slot nel testo
Frequenza inversa del documento - Un rapporto (il logaritmo della frequenza relativa inversa della fessura) che misura le informazioni che una fessura fornisce determinando quanto sia comune o rara su tutto il testo.
Termine frequenza-frequenza inversa del documento - il termine prodotto frequenza e l'inverso del documento frequenza.
Arguments
Cols
Una stringa di caratteri o una lista di nomi di variabili da trasformare. Se dict, le chiavi rappresentano i nomi delle nuove variabili da creare.
language
Specifica il linguaggio utilizzato nel set di dati. Sono supportati i valori seguenti:
"AutoDetect": per il rilevamento automatico del linguaggio."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Specifica il rimuovente di parole chiuse da usare. Sono disponibili tre opzioni:
Nessuno: Non viene utilizzato il rimuovente delle parole chiuse.
predefined: Viene utilizzata una lista precompilata specifica per linguaggio di parole di stop che include le parole più comuni da Microsoft Office.custom: Una lista definita dall'utente di parole stopword. Accetta la seguente opzione:stopword.
Il valore predefinito è None.
caso
Uso delle maiusculazioni di testo usando le regole della cultura invariante. Assume i seguenti valori:
"Lower""Upper""None"
Il valore predefinito è "Lower".
keep_diacritics
False rimuovere i segni diacritici; True per mantenere i segni diacritici. Il valore predefinito è False.
keep_punctuations
False rimuovere la punteggiatura; True per mantenere la punteggiatura. Il valore predefinito è True.
keep_numbers
False rimuovere i numeri; True per mantenere i numeri. Il valore predefinito è True.
Dizionario
Un dizionario di termini ammessi che accetta le seguenti opzioni:
term: Un vettore caratteri opzionale di termini o categorie.dropUnknowns: Lascia cadere oggetti.sort: Specifica come ordinare gli elementi quando vettorizzati. Sono supportate due ordinazioni:-
"occurrence": gli oggetti appaiono nell'ordine in cui si incontrano. -
"value": gli elementi sono ordinati secondo il loro confronto predefinito. Ad esempio, l'ordinamento del testo sarà sensibile alla maiuscola (ad esempio, 'A' poi 'Z' poi 'a').
-
Il valore predefinito è None. Si noti che la lista delle parole chiuse ha la precedenza su quella del dizionario, poiché le parole chiave vengono rimosse prima che i termini del dizionario vengano ammessi.
word_feature_extractor
Specifica la parola argomenti di estrazione delle caratteristiche. Esistono due diversi meccanismi di estrazione delle caratteristiche:
n_gram(): Estrazione delle caratteristiche basata sul conteggio (equivalente a WordBag). Accetta le seguenti opzioni:max_num_termseweighting.n_gram_hash(): Estrazione di caratteristiche basata su hashing (equivalente a WordHashBag). Accetta le seguenti opzioni:hash_bits,seed,orderedeinvert_hash.
Il valore predefinito è n_gram.
char_feature_extractor
Specifica gli argomenti di estrazione delle caratteristiche del personaggio. Esistono due diversi meccanismi di estrazione delle caratteristiche:
n_gram(): Estrazione delle caratteristiche basata sul conteggio (equivalente a WordBag). Accetta le seguenti opzioni:max_num_termseweighting.n_gram_hash(): Estrazione di caratteristiche basata su hashing (equivalente a WordHashBag). Accetta le seguenti opzioni:hash_bits,seed,orderedeinvert_hash.
Il valore predefinito è None.
vector_normalizer
Normalizzare i vettori (righe) singolarmente riscalandoli alla norma unitaria. Assume uno dei seguenti valori:
"None""L2""L1""LInf"
Il valore predefinito è "L2".
karg
Argomenti aggiuntivi inviati al motore di calcolo.
Returns
Oggetto che definisce la trasformazione.
Esempio
'''
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())
Output:
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
Estrattori N-grammi
microsoftml.n_gram: converte il testo in funzionalità usando n-grammi
microsoftml.n_gram_hash: converte il testo in funzionalità usando n-grammi con hash
Rimuoventi parole chiuse
microsoftml.custom: rimuove le parole non significative personalizzate
microsoftml.predefined : rimuove le parole non significative predefinite
Contenuti correlati
- microsoftml.n_gram: converte il testo in funzionalità usando n-grammi
- microsoftml.n_gram_hash: converte il testo in funzionalità usando n-grammi con hash
- microsoftml.custom: rimuove le parole non significative personalizzate
- microsoftml.predefined : rimuove le parole non significative predefinite
- microsoftml.get_sentiment: analisi del sentiment