Condividi tramite


Informazioni di riferimento sui componenti hash delle funzionalità

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 questa 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 numeri 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, seguite 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 degli 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
libro 3
I 3
books 1
Era 1

Dopo la compilazione del dizionario, il componente Feature Hashing converte i termini del dizionario in valori hash. Calcola quindi se in ogni caso è stata usata una funzionalità. 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 delle funzionalità potrebbero avere un aspetto simile al seguente:

Classificazione Funzione 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 di stringhe, ottenere i pesi delle caratteristiche è molto più veloce.

Configurare il componente Hashing delle funzionalità

  1. Aggiungere il componente Feature Hashing alla pipeline nella finestra di progettazione.

  2. 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à.

  3. Impostare Colonne di destinazione sulle colonne di testo che si desidera convertire in funzionalità con hash. Occorre ricordare che:

    • 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.

  4. 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 conflitti, a seconda delle dimensioni del vocabolario n-grammi nel testo di training.

  5. 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, trattato come un'unità unica.

    Ad esempio, se si immettono 3, unigrammi, bigram e trigrammi verranno creati.

  6. 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 dell'importanza 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à di hashing 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 hash.

  • È consigliabile usare queste opzioni di pre-elaborazione del testo per semplificare i risultati e migliorare l'accuratezza:

    • Interruzione di parola
    • Arresto della rimozione delle parole
    • Normalizzazione del caso
    • 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