Condividi tramite


Estrarre le funzionalità N-Gram dal riferimento ai componenti di testo

Questo articolo descrive un componente nella finestra di progettazione di Azure Machine Learning. Usare il componente Extract N-Gram Features from Text (Estrai funzionalità N-Gram dal testo) per definire la definizione di dati di testo non strutturati.

Configurazione del componente Extract N-Gram Features from Text

Il componente supporta gli scenari seguenti per l'uso di un dizionario n-gram:

Creare un nuovo dizionario n-gram

  1. Aggiungere il componente Extract N-Gram Features from Text alla pipeline e connettere il set di dati con il testo che si vuole elaborare.

  2. Utilizzare La colonna Testo per scegliere una colonna di tipo stringa contenente il testo da estrarre. Poiché i risultati sono verbosi, è possibile elaborare solo una singola colonna alla volta.

  3. Impostare la modalità Vocabolario su Crea per indicare che si sta creando un nuovo elenco di caratteristiche n-gram.

  4. Impostare le dimensioni N-Grammi per indicare la dimensione massima dei n-grammi da estrarre e archiviare.

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

  5. La funzione di ponderazione specifica come compilare il vettore di funzionalità del documento e come estrarre il vocabolario dai documenti.

    • Peso binario: assegna un valore di presenza binaria agli n-grammi estratti. Il valore per ogni n-gram è 1 quando esiste nel documento e 0 in caso contrario.

    • Tf Weight(Peso TF): assegna un punteggio di frequenza dei termini (TF) al valore n-grammi estratto. Il valore per ogni n-gram è la frequenza di occorrenza nel documento.

    • Peso IDF: assegna un punteggio IDF (Inverse Document Frequency) al n-grammi estratti. Il valore per ogni n-gram è il log di dimensioni del corpus diviso per la frequenza di occorrenza nell'intero corpus.

      IDF = log of corpus_size / document_frequency

    • Tf-IDF Weight (Peso TF-IDF): assegna un punteggio di frequenza del documento inverso/frequenza dei documenti inversa (TF/IDF) all'n-grammi estratti. Il valore per ogni n-gram è il punteggio TF moltiplicato per il punteggio IDF.

  6. Impostare Lunghezza minima parola sul numero minimo di lettere che possono essere utilizzate in qualsiasi singola parola in un n-gram.

  7. Utilizzare Lunghezza massima parola per impostare il numero massimo di lettere che possono essere utilizzate in qualsiasi singola parola in un n-gram.

    Per impostazione predefinita, sono consentiti fino a 25 caratteri per parola o token.

  8. Usare la frequenza assoluta del documento n-gram minimo per impostare le occorrenze minime necessarie per l'inserimento di n-gram nel dizionario n-gram.

    Ad esempio, se si utilizza il valore predefinito 5, qualsiasi n-gram deve essere visualizzato almeno cinque volte nel corpus per essere incluso nel dizionario n-gram.

  9. Impostare Rapporto massimo n-grammo del documento al rapporto massimo del numero di righe che contengono un particolare n-gram, rispetto al numero di righe nel corpus complessivo.

    Ad esempio, un rapporto di 1 indica che, anche se un n-gram specifico è presente in ogni riga, il n-gram può essere aggiunto al dizionario n-gram. Più in genere, una parola che si verifica in ogni riga sarebbe considerata una parola non significativa e verrebbe rimossa. Per filtrare le parole non significative dipendenti dal dominio, provare a ridurre questo rapporto.

    Importante

    La frequenza di occorrenza di parole particolari non è uniforme. Varia da documento a documento. Ad esempio, se si analizzano i commenti dei clienti su un prodotto specifico, il nome del prodotto potrebbe essere molto elevato e vicino a una parola non significativa, ma essere un termine significativo in altri contesti.

  10. Selezionare l'opzione Normalizza vettori di funzionalità n-gram per normalizzare i vettori di funzionalità. Se questa opzione è abilitata, ogni vettore di funzionalità n-gram è diviso per la norma L2.

  11. Inviare la pipeline.

Usare un dizionario n-gram esistente

  1. Aggiungere il componente Extract N-Gram Features from Text alla pipeline e connettere il set di dati con il testo da elaborare alla porta Dataset .

  2. Utilizzare la colonna Testo per selezionare la colonna di testo contenente il testo che si desidera definire con le caratteristiche. Per impostazione predefinita, il componente seleziona tutte le colonne di tipo string. Per ottenere risultati ottimali, elaborare una singola colonna alla volta.

  3. Aggiungere il set di dati salvato che contiene un dizionario n-gram generato in precedenza e connetterlo alla porta del vocabolario di input . È anche possibile connettere l'output del vocabolario Result di un'istanza upstream del componente Extract N-Gram Features from Text.You can also connect the Result vocabolariy output of an upstream of the Extract N-Gram Features from Text component.

  4. Per Modalità vocabolario selezionare l'opzione ReadOnly update nell'elenco a discesa.

    L'opzione ReadOnly rappresenta il corpus di input per il vocabolario di input. Invece di calcolare le frequenze dei termini dal nuovo set di dati di testo (nell'input sinistro), i pesi n-gram dal vocabolario di input vengono applicati così come sono.

    Suggerimento

    Usare questa opzione quando si assegnare un punteggio a un classificatore di testo.

  5. Per tutte le altre opzioni, vedere le descrizioni delle proprietà nella sezione precedente.

  6. Inviare la pipeline.

Creare una pipeline di inferenza che usa n-grammi per distribuire un endpoint in tempo reale

Una pipeline di training che contiene la funzionalità Extract N-Grams From Text e Score Model per eseguire la stima sul set di dati di test, è compilata nella struttura seguente:

Esempio di pipeline di training di N-Grammi

La modalità vocabolario del componente Extract N-Grams Feature From Text circolare è Create e la modalità Vocabolario del componente che si connette al componente Score Model è ReadOnly.

Dopo aver inviato correttamente la pipeline di training, è possibile registrare l'output del componente cerchiato come set di dati.

registrare il set di dati

È quindi possibile creare una pipeline di inferenza in tempo reale. Dopo aver creato la pipeline di inferenza, è necessario modificare manualmente la pipeline di inferenza come segue:

pipeline di inferenza

Inviare quindi la pipeline di inferenza e distribuire un endpoint in tempo reale.

Risultati

Il componente Extract N-Gram Features from Text crea due tipi di output:

  • Set di dati dei risultati: questo output è un riepilogo del testo analizzato combinato con i n-grammi estratti. Le colonne non selezionate nell'opzione Colonna di testo vengono passate all'output. Per ogni colonna di testo analizzata, il componente genera queste colonne:

    • Matrice di occorrenze n-gram: il componente genera una colonna per ogni n-gram trovato nel corpus totale e aggiunge un punteggio in ogni colonna per indicare il peso del n-grammo per tale riga.
  • Vocabolario dei risultati: il vocabolario contiene il dizionario n-gram effettivo, insieme ai punteggi di frequenza dei termini generati come parte dell'analisi. È possibile salvare il set di dati per il riutilizzo con un set diverso di input o per un aggiornamento successivo. È anche possibile riutilizzare il vocabolario per la modellazione e l'assegnazione dei punteggi.

Vocabolario dei risultati

Il vocabolario contiene il dizionario n-gram con i punteggi di frequenza dei termini generati come parte dell'analisi. I punteggi di DF e IDF vengono generati indipendentemente da altre opzioni.

  • ID: identificatore generato per ogni n-grammo univoco.
  • NGram: n-grammo. Gli spazi o altri separatori di parole vengono sostituiti dal carattere di sottolineatura.
  • DF: punteggio di frequenza del termine per il n-gram nel corpus originale.
  • IDF: punteggio di frequenza del documento inverso per il n-gram nel corpus originale.

È possibile aggiornare manualmente questo set di dati, ma è possibile introdurre errori. Ad esempio:

  • Se il componente trova righe duplicate con la stessa chiave nel vocabolario di input, viene generato un errore. Assicurarsi che nessuna delle due righe nel vocabolario abbia la stessa parola.
  • Lo schema di input dei set di dati del vocabolario deve corrispondere esattamente, inclusi i nomi di colonna e i tipi di colonna.
  • La colonna ID e la colonna DF devono essere di tipo integer.
  • La colonna IDF deve essere di tipo float.

Nota

Non connettere direttamente l'output dei dati al componente Train Model. È necessario rimuovere le colonne di testo libero prima che vengano inserite nel modello di training. In caso contrario, le colonne di testo libero verranno considerate come funzionalità categorica.

Passaggi successivi

Vedere il set di componenti disponibili per Azure Machine Learning.