Informazioni di riferimento sui componenti hash delle funzionalità
Avviso
Questo componente È STATO DEPRECATO perché la relativa dipendenza, il progetto NimbusML , non viene più gestita attivamente. Di conseguenza, questo componente non riceverà aggiornamenti futuri o patch di sicurezza. Questo componente verrà rimosso nelle prossime versioni. Gli utenti sono consigliati per eseguire la migrazione a soluzioni alternative per garantire il supporto e la sicurezza continui.
Questo articolo descrive un componente incluso nella finestra di progettazione di Azure Machine Learning.
Usare il componente Feature Hashing per trasformare un flusso di testo in inglese in un set di funzionalità integer. È quindi possibile passare questo set di funzionalità con hash a un algoritmo di Machine Learning per eseguire il training di un modello di analisi del testo.
La funzionalità di hashing delle funzionalità fornita in questo componente è basata sul framework nimbusml. Per altre informazioni, vedere Classe NgramHash.
Che cos'è l'hashing delle funzionalità?
L'hashing delle funzionalità funziona convertendo token univoci in interi. Opera sulle stringhe esatte fornite come input e non esegue alcuna analisi linguistica o pre-elaborazione.
Ad esempio, prendere un set di frasi semplici come queste, seguito da un punteggio del sentiment. Si supponga di voler usare questo testo per compilare un modello.
Testo utente | Valutazione |
---|---|
Mi è piaciuto molto questo libro | 3 |
Ho odiato questo libro | 1 |
Questo libro è stato fantastico | 3 |
Amo i libri | 2 |
Internamente, il componente Feature Hashing crea un dizionario di n-grammi. Ad esempio, l'elenco di bigram per questo set di dati sarà simile al seguente:
Termine (bigrams) | Frequenza |
---|---|
Questo libro | 3 |
Mi è piaciuto molto | 1 |
Ho odiato | 1 |
Amo | 1 |
È possibile controllare le dimensioni del n-grammi usando la proprietà N-grammi . Se si sceglie bigrams, vengono calcolati anche gli unigrammi. Il dizionario include anche termini singoli come i seguenti:
Termine (unigrammi) | Frequenza |
---|---|
book | 3 |
I | 3 |
Libri | 1 |
fui | 1 |
Dopo aver compilato il dizionario, il componente Feature Hashing converte i termini del dizionario in valori hash. Calcola quindi se una funzionalità è stata usata in ogni caso. Per ogni riga di dati di testo, il componente restituisce un set di colonne, una colonna per ogni funzionalità con hash.
Ad esempio, dopo l'hashing, le colonne di funzionalità potrebbero avere un aspetto simile al seguente:
Valutazione | Funzionalità hash 1 | Funzionalità hash 2 | Funzionalità hash 3 |
---|---|---|---|
4 | 1 | 1 | 0 |
5 | 0 | 0 | 0 |
- Se il valore nella colonna è 0, la riga non contiene la funzionalità con hash.
- Se il valore è 1, la riga contiene la funzionalità.
L'hashing delle funzionalità consente di rappresentare documenti di testo di lunghezza variabile come vettori di funzionalità numerici di lunghezza uguale per ridurre la dimensionalità. Se si tenta di usare la colonna di testo per il training così come è, verrà considerata come una colonna di funzionalità categorica con molti valori distinti.
Gli output numerici consentono anche di usare metodi comuni di Machine Learning, tra cui classificazione, clustering e recupero delle informazioni. Poiché le operazioni di ricerca possono usare hash interi anziché confronti tra stringhe, anche ottenere i pesi delle funzionalità è molto più veloce.
Configurare il componente Feature Hashing
Aggiungere il componente Feature Hashing alla pipeline nella finestra di progettazione.
Connettere il set di dati contenente il testo da analizzare.
Suggerimento
Poiché l'hashing delle funzionalità non esegue operazioni lessicali, ad esempio stemming o troncamento, a volte è possibile ottenere risultati migliori pre-elaborando il testo prima di applicare l'hash delle funzionalità.
Impostare Colonne di destinazione sulle colonne di testo da convertire in funzionalità con hash. Tenere presente quanto segue:
Le colonne devono essere il tipo di dati string.
La scelta di più colonne di testo può avere un impatto significativo sulla dimensionalità delle caratteristiche. Ad esempio, il numero di colonne per un hash a 10 bit va da 1.024 per una singola colonna a 2.048 per due colonne.
Usare hashing bitsize per specificare il numero di bit da usare durante la creazione della tabella hash.
La dimensione di bit predefinita è 10. Per molti problemi, questo valore è adeguato. Potrebbe essere necessario più spazio per evitare collisioni, a seconda delle dimensioni del vocabolario n-grammi nel testo di training.
Per N-grammi, immettere un numero che definisce la lunghezza massima dei n-grammi da aggiungere al dizionario di training. Un n-gram è una sequenza di n parole, considerate come un'unità univoca.
Ad esempio, se si immettono 3, unigrammi, bigrams e trigrammi verranno creati.
Inviare la pipeline.
Risultati
Al termine dell'elaborazione, il componente restituisce un set di dati trasformato in cui la colonna di testo originale è stata convertita in più colonne. Ogni colonna rappresenta una funzionalità nel testo. A seconda della significatività del dizionario, il set di dati risultante può essere di grandi dimensioni:
Nome colonna 1 | Tipo di colonna 2 |
---|---|
USERTEXT | Colonna di dati originale |
SENTIMENTO | Colonna di dati originale |
USERTEXT - Funzionalità hash 1 | Colonna delle funzionalità con hash |
USERTEXT - Funzionalità hash 2 | Colonna delle funzionalità con hash |
USERTEXT - Funzionalità hash n | Colonna delle funzionalità con hash |
USERTEXT - Funzionalità hash 1024 | Colonna delle funzionalità con hash |
Dopo aver creato il set di dati trasformato, è possibile usarlo come input per il componente Train Model .
Procedure consigliate
Le procedure consigliate seguenti consentono di sfruttare al meglio il componente Hashing delle funzionalità:
Aggiungere un componente Preprocess Text prima di usare Feature Hashing per pre-elaborare il testo di input.
Aggiungere un componente Select Columns dopo il componente Feature Hashing per rimuovere le colonne di testo dal set di dati di output. Non sono necessarie le colonne di testo dopo la generazione delle funzionalità di hashing.
Prendere in considerazione l'uso di queste opzioni di pre-elaborazione del testo per semplificare i risultati e migliorare l'accuratezza:
- Separazione delle parole
- Arresto della rimozione delle parole
- Normalizzazione maiuscole/minuscole
- Rimozione della punteggiatura e dei caratteri speciali
- Stemming
Il set ottimale di metodi di pre-elaborazione da applicare in qualsiasi soluzione dipende dal dominio, dal vocabolario e dalle esigenze aziendali. pipeline con i dati per vedere quali metodi di elaborazione del testo sono più efficaci.
Passaggi successivi
Vedere il set di componenti disponibili per Azure Machine Learning