Tecniche di trasformazione delle feature
Le trasformazioni sono fasi di pre-elaborazione cruciali che convertono o scalano i dati in un formato adatto all'apprendimento e all'analisi dei modelli, garantendo prestazioni e precisione ottimali. Questo documento funge da risorsa di sintassi supplementare e fornisce dettagli approfonditi sulle tecniche di trasformazione delle funzioni chiave per la preelaborazione dei dati.
I modelli di apprendimento automatico non possono elaborare direttamente valori stringa o valori null, rendendo essenziale la preelaborazione dei dati. Questa guida spiega come utilizzare varie trasformazioni per imputare i valori mancanti, convertire i dati categorici in formati numerici e applicare tecniche di ridimensionamento delle funzioni come la codifica a caldo e la vettorizzazione. Questi metodi consentono ai modelli di interpretare e apprendere efficacemente dai dati, migliorando in ultima analisi le loro prestazioni.
Trasformazione automatica delle feature automatic-transformations
Se si sceglie di ignorare la clausola TRANSFORM
nel comando CREATE MODEL
, la trasformazione della funzionalità viene eseguita automaticamente. La preelaborazione automatica dei dati include la sostituzione nulla e le trasformazioni di funzionalità standard (in base al tipo di dati). Le colonne numeriche e di testo vengono imputate automaticamente, quindi le trasformazioni delle funzioni vengono eseguite per garantire che i dati siano in un formato appropriato per l’apprendimento automatico dei modelli. Questo processo include l’imputazione dei dati mancanti e le trasformazioni categoriche, numeriche e booleane.
Nelle tabelle seguenti viene illustrato come vengono gestiti diversi tipi di dati quando la clausola TRANSFORM
viene omessa durante il comando CREATE MODEL
.
Sostituzione nulla automatic-null-replacement
ml_unknown
.FALSE
.Trasformazione delle feature automatic-feature-transformation
esempio
CREATE model modelname options(model_type='logistic_reg', label='rating') AS SELECT * FROM movie_rating;
Trasformazioni di feature manuali manual-transformations
Per definire la preelaborazione dei dati personalizzati nell'istruzione CREATE MODEL
, utilizzare la clausola TRANSFORM
in combinazione con un numero qualsiasi di funzioni di trasformazione disponibili. Queste funzioni di pre-elaborazione manuale possono essere utilizzate anche al di fuori della clausola TRANSFORM
. Tutte le trasformazioni descritte nella sezione trasformatore seguente possono essere utilizzate per la preelaborazione manuale dei dati.
Caratteristiche principali key-characteristics
Di seguito sono riportate le caratteristiche chiave della trasformazione delle feature da considerare quando definite le funzioni di pre-elaborazione:
-
Sintassi:
TRANSFORM(functionName(colName, parameters) <aliasNAME>)
- Il nome alias è obbligatorio nella sintassi. È necessario fornire un nome di alias per evitare che la query abbia esito negativo.
-
Parametri: i parametri sono argomenti posizionali. Ciò significa che ogni parametro può accettare solo determinati valori e richiedere che tutti i parametri precedenti siano specificati se vengono forniti valori personalizzati. Per informazioni dettagliate su quale funzione utilizza un determinato argomento, consulta la documentazione pertinente.
-
Trasformatori concatenamento: l'output di un trasformatore può diventare l'input di un altro trasformatore.
-
Utilizzo funzionalità: l'ultima trasformazione funzionalità viene utilizzata come funzionalità del modello di apprendimento automatico.
Esempio
CREATE MODEL modelname
TRANSFORM(
string_imputer(language, 'adding_null') AS imp_language,
numeric_imputer(users_count, 'mode') AS imp_users_count,
string_indexer(imp_language) AS si_lang,
vector_assembler(array(imp_users_count, si_lang, watch_minutes)) AS features
)
OPTIONS(MODEL_TYPE='logistic_reg', LABEL='rating')
AS SELECT * FROM df;
Trasformazioni disponibili available-transformations
Sono disponibili 19 trasformazioni. Queste trasformazioni sono suddivise in trasformazioni generali, trasformazioni numeriche, trasformazioni categoriche e trasformazioni testuali.
Trasformazioni generali general-transformations
Leggi questa sezione per informazioni dettagliate sui trasformatori utilizzati per un’ampia gamma di tipi di dati. Queste informazioni sono essenziali se devi applicare trasformazioni che non sono specifiche per dati categorici o testuali.
Imputer numerico numeric-imputer
Il trasformatore Numeric imputer completa i valori mancanti in un set di dati. Questa opzione utilizza la media, la mediana o la modalità delle colonne in cui si trovano i valori mancanti. Le colonne di input devono essere DoubleType
o FloatType
. Ulteriori informazioni ed esempi sono disponibili nella documentazione sull'algoritmo Spark.
Tipi di dati
- Tipo di dati di input: numerico
- Tipo di dati di output: numerico
Definizione
transformer(numeric_imputer(hour, 'mean') hour_imputed)
Parametri
STRATEGY
mean
, median
, mode
].Esempio prima dell'imputazione
Esempio dopo imputazione (utilizzando la strategia media)
Imputer stringa string-imputer
Il trasformatore String imputer completa i valori mancanti in un set di dati utilizzando una stringa fornita dall'utente come argomento di funzione. Le colonne di input e output devono essere del tipo di dati string
.
Tipi di dati
- Tipo di dati di input: String
- Tipo di dati di output: String
Definizione
transform(string_imputer(name, 'unknown_name') as name_imputed)
Parametri
NULL_REPLACEMENT
Esempio prima dell'imputazione
Esempio dopo imputazione (utilizzando 'ml_unknown' come sostituto)
Imputer booleano boolean-imputer
Il trasformatore Boolean imputer completa i valori mancanti in un set di dati per una colonna booleana. Le colonne di input e output devono essere di tipo Boolean
.
Tipi di dati
- Tipo di dati di input: booleano
- Tipo di dati di output: booleano
Definizione
transform(boolean_imputer(name, true) as name_imputed)
Parametri
NULL_REPLACEMENT
true
, false
].Esempio prima dell'imputazione
Esempio dopo imputazione (utilizzando 'true' come sostituto)
Assemblatore vettoriale vector-assembler
Il trasformatore VectorAssembler
combina un elenco specificato di colonne di input in un'unica colonna vettoriale, semplificando la gestione di più funzionalità nei modelli di apprendimento automatico. Questo è particolarmente utile per unire le feature grezze e quelle generate da diversi trasformatori di feature in un unico vettore di feature unificato. VectorAssembler
accetta colonne di input di tipo numerico, booleano e vettoriale. In ogni riga, i valori delle colonne di input vengono concatenati in un vettore nell'ordine specificato.
Tipi di dati
- Tipo di dati di input:
array[string]
(nomi di colonna con valori numerici/matrice[numerici]) - Tipo di dati di output:
Vector[double]
Definizione
transform(vector_assembler(id, hour, mobile, userFeatures) as features)
Parametri
Esempio prima della trasformazione
Esempio dopo trasformazione
Trasformazioni numeriche numeric-transformations
Leggi questa sezione per scoprire i trasformatori disponibili per l’elaborazione e il ridimensionamento dei dati numerici. Questi trasformatori sono necessari per gestire e ottimizzare le funzioni numeriche nei set di dati.
Binarizzatore binarizer
Il trasformatore Binarizer
converte le funzionalità numeriche in funzionalità binarie (0/1) tramite un processo denominato binarizzazione. I valori delle feature superiori alla soglia specificata vengono convertiti in 1,0, mentre i valori uguali o inferiori alla soglia vengono convertiti in 0,0. Binarizer
supporta sia Vector
che Double
tipi per la colonna di input.
Tipi di dati
- Tipo di dati di input: colonna numerica
- Tipo di dati di output: numerico
Definizione
transform(numeric_imputer(rating, 'mode') rating_imp, binarizer(rating_imp) rating_binarizer)
Parametri
THRESHOLD
Input di esempio prima della binarizzazione
Output di esempio dopo la binarizzazione (soglia predefinita di 0,0)
Definizione con soglia personalizzata
transform(numeric_imputer(age, 'mode') age_imp, binarizer(age_imp, 14.0) age_binarizer)
Output di esempio dopo la binarizzazione (con una soglia di 14,0)
Bucketizer bucketizer
Il trasformatore Bucketizer
converte una colonna di funzionalità continue in una colonna di contenitori di funzionalità, in base alle soglie specificate dall'utente. Questo processo è utile per segmentare i dati continui in contenitori o bucket discreti. Bucketizer
richiede un parametro splits
, che definisce i limiti dei bucket.
Tipi di dati
- Tipo di dati di input: colonna numerica
- Tipo di dati di output: numerico (valori associati)
Definizione
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
Parametri
splits
n+1
divisioni, sono presenti n
bucket. Le divisioni devono essere in ordine rigorosamente crescente e l’intervallo (x,y) viene utilizzato per ciascun bucket ad eccezione dell’ultimo, che include y.Esempi di divisioni
- Array(Double.NegativeInfinity, 0.0, 1.0, Double.PositiveInfinity)
- Array(0,0, 1,0, 2,0)
Le [PROD143]e devono coprire l'intero intervallo di valori Double. In caso contrario, i valori al di fuori delle [PROD143]e specificate verranno trattati come errori.
Esempio di trasformazione
Questo esempio prende una colonna di funzioni continue (course_duration
), la racchiude in base al splits
fornito e quindi assembla i bucket risultanti con altre funzioni.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
MinMaxScaler minmaxscaler
Il trasformatore MinMaxScaler
ridimensiona ogni funzione in un set di dati di righe vettoriali a un intervallo specificato, in genere [0, 1]. In questo modo tutte le feature contribuiscono allo stesso modo al modello. Questa funzione è particolarmente utile per i modelli sensibili alla modifica in scala delle feature, ad esempio per gli algoritmi basati sulla discendenza con gradiente. MinMaxScaler
funziona sui seguenti parametri:
- min: il limite inferiore della trasformazione, condiviso da tutte le funzionalità. Il valore predefinito è
0.0
. - max: limite superiore della trasformazione, condiviso da tutte le funzionalità. Il valore predefinito è
1.0
.
Tipi di dati
- Tipo di dati di input:
Array[Double]
- Tipo di dati di output:
Array[Double]
Definizione
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
Parametri
min
max
Esempio di trasformazione
Questo esempio trasforma un insieme di feature, ridimensionandole all'intervallo specificato utilizzando MinMaxScaler dopo l'applicazione di diverse altre trasformazioni.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
MaxAbsScaler maxabsscaler
Il trasformatore MaxAbsScaler
ridimensiona ogni funzione in un set di dati di righe vettoriali all'intervallo [-1, 1] dividendo per il valore assoluto massimo di ogni funzione. Questa trasformazione è ideale per preservare la sparsità nei set di dati con valori sia positivi che negativi, in quanto non sposta o centra i dati. Questo rende MaxAbsScaler
particolarmente adatto per i modelli sensibili alla scala delle funzioni di input, come ad esempio quelli che prevedono calcoli di distanza.
Tipi di dati
- Tipo di dati di input:
Array[Double]
- Tipo di dati di output:
Array[Double]
Definizione
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling)
Parametri
Esempio di trasformazione
In questo esempio vengono applicate diverse trasformazioni, tra cui MaxAbsScaler
, per ridimensionare le funzionalità nell'intervallo [-1, 1].
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling)
Normalizzatore normalizer
Normalizer
è un trasformatore che normalizza ogni vettore in un set di dati di righe vettoriali per avere una norma unitaria. Questo processo assicura una scala coerente senza alterare la direzione dei vettori. Questa trasformazione è particolarmente utile nei modelli di apprendimento automatico che si basano su misurazioni di distanza o altri calcoli basati su vettori, specialmente quando la grandezza dei vettori varia in modo significativo.
Tipi di dati
- Tipo di dati di input:
array[double]
/vector[double]
- Tipo di dati di output:
vector[double]
Definizione
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, normalizer(vec_assembler, 3) as normalized)
Parametri
p
p-norm
utilizzato per la normalizzazione (ad esempio 1-norm
, 2-norm
, ecc.).Esempio di trasformazione
In questo esempio viene illustrato come applicare diverse trasformazioni, incluso Normalizer
, per normalizzare un set di funzionalità utilizzando p-norm
specificato.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, normalizer(vec_assembler, 3) as normalized)
QuantileDiscretizer quantilediscretizer
QuantileDiscretizer
è un trasformatore che converte una colonna con caratteristiche continue in caratteristiche categoriche unite, con il numero di raccoglitori determinato dal parametro numBuckets
. In alcuni casi, il numero effettivo di bucket può essere inferiore al numero specificato se sono presenti troppi pochi valori distinti per creare un numero sufficiente di quantili.
Questa trasformazione è particolarmente utile per semplificare la rappresentazione dei dati continui o per prepararla per gli algoritmi che funzionano meglio con l’input categoriale.
Tipi di dati
- Tipo di dati di input: colonna numerica
- Tipo di dati di output: colonna numerica (categorica)
Definizione
TRANSFORM(quantile_discretizer(hour, 3) as result)
Parametri
NUM_BUCKETS
Esempio di trasformazione
In questo esempio viene illustrato come QuantileDiscretizer
racchiude una colonna di funzionalità continue (hour
) in tre bucket categorici.
TRANSFORM(quantile_discretizer(hour, 3) as result)
Esempio prima e dopo la discretizzazione
StandardScaler standardscaler
StandardScaler
è un trasformatore che normalizza ogni funzionalità in un set di dati di righe vettoriali in modo che abbia una deviazione standard unitaria e/o una media pari a zero. Questo processo rende i dati più adatti per gli algoritmi che presumono che le funzioni siano centrate intorno allo zero con una scala coerente. Questa trasformazione è particolarmente importante per i modelli di apprendimento automatico come SVM, regressione logistica e reti neurali, in cui dati non standardizzati potrebbero portare a problemi di convergenza o a una precisione ridotta.
Tipi di dati
- Tipo di dati di input: vettoriale
- Tipo di dati di output: vettoriale
Definizione
TRANSFORM(standard_scaler(feature) as ss_features)
Parametri
withStd
withMean
Esempio di trasformazione
In questo esempio viene illustrato come applicare StandardScaler a un insieme di feature, normalizzandole con deviazione standard unitaria e media zero.
TRANSFORM(standard_scaler(feature) as ss_features)
Trasformazioni categoriche categorical-transformations
Leggi questa sezione per una panoramica dei trasformatori disponibili progettati per convertire e pre-elaborare dati categorici per modelli di apprendimento automatico. Queste trasformazioni sono progettate per punti dati che rappresentano categorie o etichette distinte, anziché valori numerici.
StringIndexer stringindexer
StringIndexer
è un trasformatore che codifica una colonna stringa di etichette in una colonna di indici numerici. Gli indici variano da 0 a numLabels
e sono ordinati per frequenza di etichetta (l'etichetta più frequente riceve un indice pari a 0). Se la colonna di input è numerica, viene inserita in una stringa prima dell’indicizzazione. Le etichette non visualizzate possono essere assegnate all'indice numLabels
se specificato dall'utente.
Questa trasformazione è particolarmente utile per convertire i dati stringa categorici in forma numerica, rendendoli adatti a modelli di apprendimento automatico che richiedono input numerici.
Tipi di dati
- Tipo di dati di input: String
- Tipo di dati di output: numerico
Definizione
TRANSFORM(string_indexer(category) as si_category)
Parametri
StringIndexer
non richiede parametri aggiuntivi per l'operazione.Esempio di trasformazione
In questo esempio viene illustrato come applicare StringIndexer
a una funzionalità categorica, convertendola in un indice numerico.
TRANSFORM(string_indexer(category) as si_category)
OneHotEncoder onehotencoder
OneHotEncoder
è un trasformatore che converte una colonna di indici di etichetta in una colonna di vettori binari sparsi, dove ogni vettore ha al massimo un singolo valore. Questa codifica è particolarmente utile per consentire agli algoritmi che richiedono un input numerico, come la regressione logistica, di incorporare in modo efficace dati categorici.
Tipi di dati
- Tipo di dati di input: numerico
- Tipo di dati di output: Vector[Int]
Definizione
TRANSFORM(string_indexer(category) as si_category, one_hot_encoder(si_category) as ohe_category)
Parametri
Esempio di trasformazione
In questo esempio viene illustrato come applicare StringIndexer
a una funzionalità categorica e quindi utilizzare OneHotEncoder
per convertire i valori indicizzati in un vettore binario.
TRANSFORM(string_indexer(category) as si_category, one_hot_encoder(si_category) as ohe_category)
Trasformazioni testuali textual-transformations
Questa sezione fornisce dettagli sui trasformatori disponibili per l’elaborazione e la conversione di dati testuali in formati utilizzabili dai modelli di apprendimento automatico. Questa sezione è fondamentale per gli sviluppatori che lavorano con dati in linguaggio naturale e analisi testuale.
CountVectorizer countvectorizer
CountVectorizer
è un trasformatore che converte una raccolta di documenti di testo in vettori di conteggi di token, producendo rappresentazioni sparse basate sul vocabolario estratto dal corpo. Questa trasformazione è essenziale per convertire i dati di testo in un formato numerico che può essere utilizzato dagli algoritmi di machine learning, come LDA (Latent Dirichlet Allocation), rappresentando la frequenza dei token all'interno di ciascun documento.
Tipi di dati
- Tipo di dati di input: Array[String]
- Tipo di dati di output: vettore denso
Definizione
TRANSFORM(count_vectorizer(texts) as cv_output)
Parametri
VOCAB_SIZE
vocabSize
termini ordinati in base alla frequenza dei termini all'interno del corpo.MIN_DOC_FREQ
MAX_DOC_FREQ
MIN_TERM_FREQ
Esempio di trasformazione
In questo esempio viene illustrato come CountVectorizer converte una raccolta di matrici di testo in vettori di conteggi di token, generando una rappresentazione sparsa.
TRANSFORM(count_vectorizer(texts) as cv_output)
Esempio prima e dopo la vettorizzazione
NGram ngram
NGram
è un trasformatore che genera una sequenza di n-grammi, dove un n-grammo è una sequenza di ('??') token (in genere parole) per un numero intero (𝑛
). L’output è costituito da stringhe delimitate da spazi di parole consecutive "??", che possono essere utilizzate come funzioni nei modelli di apprendimento automatico, in particolare quelli incentrati sull’elaborazione del linguaggio naturale.
Tipi di dati
- Tipo di dati di input: Array[String]
- Tipo di dati di output: Array[String]
Definizione
TRANSFORM(tokenizer(review_comments) as token_comments, ngram(token_comments, 3) as n_tokens)
Parametri
N
Esempio di trasformazione
Questo esempio illustra come il trasformatore NGram crea una sequenza di 3 grammi da un elenco di token derivati dai dati di testo.
TRANSFORM(tokenizer(review_comments) as token_comments, ngram(token_comments, 3) as n_tokens)
Esempio prima e dopo trasformazione n grammi
StopWordsRemover stopwordsremover
StopWordsRemover
è un trasformatore che rimuove le parole non significative da una sequenza di stringhe, filtrando le parole comuni che non hanno un significato significativo. Come input viene utilizzata una sequenza di stringhe (ad esempio l'output di un token) e vengono rimosse tutte le parole non significative specificate dal parametro stopWords
.
Questa trasformazione è utile per la pre-elaborazione dei dati testuali, migliorando l’efficacia dei modelli di apprendimento automatico a valle eliminando le parole che non contribuiscono molto al significato generale.
Tipi di dati
- Tipo di dati di input: Array[String]
- Tipo di dati di output: Array[String]
Definizione
TRANSFORM(stop_words_remover(raw) as filtered)
Parametri
stopWords
Esempio di trasformazione
In questo esempio viene illustrato come StopWordsRemover
esclude le parole non significative comuni in inglese da un elenco di token.
TRANSFORM(stop_words_remover(raw) as filtered)
Rimozione delle parole di interruzione prima e dopo
Esempio con parole di interruzione personalizzate
In questo esempio viene illustrato come utilizzare un elenco personalizzato di parole non significative per filtrare parole specifiche dalle sequenze di input.
TRANSFORM(stop_words_remover(raw, array("red", "I", "had")) as filtered)
Rimozione delle parole non significative personalizzate prima e dopo
TF-IDF tf-idf
TF-IDF
(Term Frequency-Inverse Document Frequency) è un trasformatore utilizzato per misurare l'importanza di una parola all'interno di un documento rispetto a un corpus. Frequenza termine (TF) si riferisce al numero di volte in cui un termine (t) viene visualizzato in un documento (d), mentre la frequenza documento (DF) misura il numero di documenti nel corpo (D) contengono il termine (t). Questo metodo è ampiamente utilizzato nell'estrazione di testo per ridurre l'influenza di parole comunemente presenti, come "a", "the" e "of", che contengono poche informazioni univoche.
Questa trasformazione è particolarmente utile nelle attività di estrazione del testo e di elaborazione del linguaggio naturale, in quanto assegna un valore numerico all'importanza di ogni parola all'interno di un documento e in tutto il corpo.
Tipi di dati
- Tipo di dati di input: Array[String]
- Tipo di dati di output: Vector[Int]
Definizione
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Parametri
NUM_FEATURES
MIN_DOC_FREQ
Esempio di trasformazione
Questo esempio illustra come utilizzare TF-IDF per trasformare frasi tokenizzate in un vettore di funzione che rappresenta l’importanza di ogni termine nel contesto dell’intero corpus.
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Tokenizer tokenizer
Tokenizer
è un trasformatore che suddivide il testo, ad esempio una frase, in singoli termini, in genere parole. Converte le frasi in array di token, fornendo un passaggio fondamentale nella preelaborazione del testo che prepara i dati per ulteriori processi di analisi del testo o modellazione.
Tipi di dati
- Tipo di dati di input: frase testuale
- Tipo di dati di output: Array[String]
Definizione
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Parametri
Tokenizer
non richiede parametri aggiuntivi per l'operazione.Esempio di trasformazione
In questo esempio viene illustrato come Tokenizer
suddivide le frasi in singole parole (token) come parte di una pipeline di elaborazione del testo.
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Word2Vec word2vec
Word2Vec
è uno stimatore che elabora sequenze di parole che rappresentano documenti e addestra un Word2VecModel
. Questo modello mappa ogni parola su un unico vettore a dimensione fissa e trasforma ogni documento in un vettore calcolando la media dei vettori di tutte le parole del documento. Ampiamente utilizzato nelle attività di elaborazione del linguaggio naturale, Word2Vec
crea incorporamenti di parole che acquisiscono un significato semantico, convertendo i dati di testo in vettori numerici che rappresentano le relazioni tra le parole e consentendo un'analisi più efficace del testo e modelli di apprendimento automatico.
Tipi di dati
- Tipo di dati di input: Array[String]
- Tipo di dati di output: Vector[Double]
Definizione
TRANSFORM(tokenizer(review) as tokenized, word2Vec(tokenized, 10, 1) as word2Vec)
Parametri
VECTOR_SIZE
MIN_COUNT
Word2Vec
.Esempio di trasformazione
In questo esempio viene illustrato come Word2Vec
converte una revisione tokenizzata in un vettore di dimensione fissa che rappresenta la media dei vettori di parola nel documento.
TRANSFORM(tokenizer(review) as tokenized, word2Vec(tokenized, 10, 1) as word2Vec)
Esempio prima e dopo la trasformazione di Word2Vec