Condividi tramite


Extract N-Gram Features from Text

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Crea funzionalità del dizionario N-Gram ed esegue la selezione delle caratteristiche su di esse

Categoria: Analisi del testo

Nota

Si applica a: Machine Learning Studio (versione classica)

Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.

Panoramica del modulo

Questo articolo illustra come usare il modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo) di Machine Learning Studio (versione classica) per creare funzionalità di testo ed estrarre solo le informazioni più importanti da stringhe di testo lunghe.

Il modulo funziona creando un dizionario di n-grammi da una colonna di testo libero specificata come input. Il modulo applica varie metriche delle informazioni all'elenco di n-gram per ridurre la dimensionalità dei dati e identificare gli n-grammi con il valore di informazioni maggiore.

Se è già stato creato un vocabolario di n-grammi, è possibile aggiornarne le statistiche o unire in nuovi termini, usando un algoritmo di ponderazione di propria scelta.

Poiché questo modulo supporta la creazione di funzionalità da n-grammi, può essere usato anche per l'assegnazione dei punteggi.

Come configurare l'estrazione di caratteristiche di N-gramma dal testo

Tali moduli supportano gli scenari seguenti per la creazione, l'aggiornamento o l'applicazione di un dizionario n-gram:

  • Si sta sviluppando un nuovo modello usando una colonna di testo libero e si vogliono estrarre caratteristiche di testo basate esclusivamente sui dati di input. Vedere le istruzioni.

  • Si dispone di un set esistente di funzionalità di testo e si vogliono aggiornare i pesi elaborando nuovi input di testo. Vedere le istruzioni.

  • Si generano punteggi da un modello predittivo ed è necessario generare e usare input di testo con un dizionario n-gram come parte del processo di assegnazione dei punteggi. Vedere le istruzioni.

È possibile usare l'esperimento di esempio come riferimento.

Creare un nuovo dizionario n-gram da una colonna di testo

  1. Aggiungere il modulo Extract N-Gram Features from Text (Estrai caratteristiche N-gramma da testo) all'esperimento e connettere il set di dati contenente il testo da elaborare.

  2. Per Colonna di testo scegliere una colonna di tipo stringa contenente il testo da estrarre.

    Per impostazione predefinita, il modulo seleziona tutte le colonne stringa. Tuttavia, poiché il risultato è dettagliato, potrebbe essere necessario elaborare una singola colonna alla volta.

  3. In Modalità vocabolario selezionare Crea per indicare che si sta creando un nuovo elenco di caratteristiche di n-gramma.

    Per informazioni su come aggiornare un set esistente di caratteristiche di n-grammi, vedere questa sezione.

  4. Per N-Grammi, digitare un numero che indica le dimensioni massime degli n-grammi da estrarre e archiviare.

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

  5. Per K-Skip size (Dimensione K-Skip) digitare il numero massimo di caratteri che possono essere diversi quando si identificano varianti di n-grammi. Se il valore di k è impostato su 0, è possibile creare n-grammi solo da una sequenza di caratteri contigua univoca.

    Si supponga, ad esempio, che il dizionario contenga l'unigramma "computer". Un valore k pari a 0 indica che "computer" è l'unico unigramma valido. Se si aumenta il valore di k a 1, è possibile ignorare un carattere che interviene, che consente di trovare sequenze più simili. Un skip-gram con un valore k pari a 1 differirebbe di un carattere rispetto all'unigramma 0-k. Di conseguenza, i "conputer" e "compuuter" skip-grammi verrebbero entrambi considerati parte della stessa voce di dizionario di "computer". L'impostazione del valore k su 2 corrisponderebbe a parole ancora più dissimili.

    Per altre informazioni sull'uso di skip-grammi nell'analisi del testo, vedere questo documento: Candidate Generation and Feature Engineering for Supervised Lexical Normalization (Generazione candidata e progettazione di funzionalità per la normalizzazione lessicale supervisionata)

  6. L'opzione Funzione di ponderazione è obbligatoria solo se si uniscono o si aggiornano i vocabolari. Specifica il modo in cui i termini nei due vocabolari e i relativi punteggi devono essere ponderati l'uno rispetto all'altro.

  7. In Lunghezza minima parole digitare la lunghezza minima delle parole delle stringhe che possono essere analizzate.

    Si supponga, ad esempio, che la lunghezza minima delle parole sia stata impostata su 3 (valore predefinito) e che sia stato creato un input con una singola parola e un altro con testo breve, ad esempio "nice place". Entrambe le righe verrebbero ignorate.

  8. In Lunghezza massima parole digitare il numero massimo di lettere che possono essere usate in una singola parola in un n-gramma.

    Per impostazione predefinita, sono consentiti fino a 25 caratteri per parola o token. Parole più lunghe di quelle rimosse, presupponendo che siano probabilmente sequenze di caratteri arbitrari anziché elementi lessicali effettivi.

  9. Per Frequenza assoluta minima n-grammi del documento, digitare un numero che indica le occorrenze minime necessarie per includere una singola parola o token nel dizionario n-gram.

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

  10. Per Rapporto massimo n-grammi del documento, digitare un numero che rappresenta questo rapporto: il numero di righe che contengono un determinato n-gramma, rispetto al numero di righe nel corpus complessivo.

    Ad esempio, un rapporto di 1 indicherà che, anche se in ogni riga è presente un n-gramma specifico, l'n-gramma può essere aggiunto al dizionario n-gram. Più in genere, una parola che si verifica in ogni riga viene considerata una parola non utilizzata e viene rimossa. Per filtrare le parole non erre dipendenti dal dominio, provare a ridurre questo rapporto.

    Importante

    La frequenza di occorrenza di determinate parole non è uniforme, ma 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 ad alta frequenza e vicino a una parola non significativa, ma essere un termine significativo in altri contesti.

  11. Selezionare l'opzione Rileva righe out-of-vocabulary se si vuole generare un indicatore per le righe che contengono parole non presenti nel vocabolario n-grammi, denominate parole "fuori vocabolario" (OOV).

    Tutti i lessico sono finiti; Pertanto, è quasi garantito che il corpus di testo includa parole non presenti nel dizionario lessico o n-gramma. Tuttavia, tali parole possono avere vari effetti sui modelli linguistici, inclusi i tassi di errore più elevati rispetto alle parole nel vocabolario (IV). A seconda del dominio, queste parole OOV potrebbero rappresentare parole importanti per il contenuto.

    Identificando le righe che contengono queste parole, è possibile compensare gli effetti di questi termini o gestire separatamente i termini e le righe correlate.

  12. Selezionare l'opzione Contrassegna inizio frase per aggiungere una sequenza di caratteri speciale che indica l'inizio di una frase nel dizionario n-gram. Il prefisso n-grammi che iniziano una frase con un carattere speciale è comune nell'analisi del testo e può essere utile nell'analisi dei limiti del discorso.

    Azure ML Studio (versione classica) inserisce il simbolo |||. Non è possibile specificare un carattere personalizzato.

  13. Selezionare l'opzione Normalize n-gram feature vectors (Normalizza vettori di funzionalità n-gram) se si vuole normalizzare i vettori di funzionalità. Quando si esegue questa operazione, ogni vettore di funzionalità di n-grammi viene diviso per la norma L2.

    La normalizzazione viene usata per impostazione predefinita.

  14. Impostare Usa selezione funzionalità basata su filtro su True se si vogliono abilitare opzioni aggiuntive per la gestione delle dimensioni del vettore di funzionalità di testo.

    • La selezione delle caratteristiche può essere utile per ridurre la dimensionalità degli n-grammi.
    • Quando non si applica la selezione del filtro, vengono creati tutti i possibili n-grammi, aumentando la copertura a scapito di rendere il dizionario più lungo ed eventualmente includendo molti termini poco frequenti.
    • In un corpus di piccole dimensioni, l'uso della selezione delle caratteristiche può ridurre notevolmente il numero di termini creati.
    • Per altre informazioni, vedere Selezione di funzionalità in base al filtro.

    Se si usa la selezione delle funzionalità, è necessario selezionare un metodo dall'elenco a discesa Metodo di assegnazione dei punteggi delle funzionalità:

    • PearsonCorrelation: calcola la correlazione di Pearson in base al valore della colonna etichetta e al vettore di testo.
    • MutualInformation: calcola un punteggio di informazioni reciproche, in base al valore della colonna etichetta e al vettore di testo.
    • KendallCorrelation: calcola la correlazione di Kendall, in base al valore della colonna etichetta e al vettore di testo.
    • SpearmanCorrelation: calcola la correlazione di Spearman in base al valore della colonna label e al vettore di testo.
    • ChiSquared: usa il metodo chi quadrato per calcolare la correlazione tra il valore della colonna etichetta e il vettore di testo.
    • FisherScore: calcola il punteggio Disertore per il valore della colonna etichetta e il vettore di testo.
    • Selezione delle caratteristiche in base al conteggio: crea nuove funzionalità in base al conteggio dei valori. Con questo metodo non è necessaria una colonna etichetta.

    A seconda del metodo scelto, impostare una delle opzioni seguenti:

    • Number of desired features (Numero di caratteristiche desiderate): obbligatorio se si usa un metodo di selezione delle caratteristiche diverso dalla selezione delle caratteristiche basata sul conteggio.

      Nel processo di selezione delle caratteristiche, tutti gli n-grammi ottengono un punteggio di funzionalità e gli n-grammi vengono classificati in base al punteggio. Il valore impostato qui determina il numero di funzionalità con la più alta posizione di output. Gli n-grammi con punteggi di funzionalità inferiori vengono eliminati.

    • Numero minimo di elementi diversi da zero: obbligatorio se si usa la selezione di funzionalità basata sul conteggio.

      Digitare un numero intero che rappresenta il numero minimo di istanze totali necessarie per la tabulazione dei conteggi per una potenziale funzionalità.

  15. Eseguire l'esperimento.

    Vedere questa sezione per una spiegazione dei risultati e del relativo formato.

Aggiornare un dizionario n-gram esistente o unire dizionari

  1. Aggiungere il modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo) all'esperimento e connettere il set di dati contenente il testo da elaborare alla porta del set di dati.

  2. Per Colonna di testo scegliere la colonna di testo che contiene il testo che si vuole ottenere. Per impostazione predefinita, il modulo seleziona tutte le colonne di tipo string. Per ottenere risultati ottimali, elaborare una singola colonna alla volta.

  3. Aggiungere il set di dati salvato contenente un dizionario n grammi generato in precedenza e connetterlo alla porta del vocabolario input . È anche possibile connettere l'output del vocabolario Result di un'istanza upstream del modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo ).

    Per unire o aggiornare il vocabolario, lo schema del vocabolario di input deve corrispondere esattamente al formato previsto. Non rimuovere colonne da o aggiungere colonne al vocabolario di input.

  4. In Modalità vocabolario selezionare una delle opzioni di aggiornamento seguenti nell'elenco a discesa:

    • ReadOnly: rappresenta il corpus di input in termini di vocabolario di input. In altre parole, anziché calcolare le frequenze dei termini del nuovo set di dati di testo (sull'input a sinistra), i pesi n grammi del vocabolario di input vengono applicati così come sono.

      Suggerimento

      Usare questa opzione quando si classifica un classificatore di testo.

    • Update: crea un nuovo vocabolario n grammi dal corpus di input e lo unisce al vocabolario di input. In altre parole, è possibile aggiungere nuove voci al vocabolario creato dal vocabolario di input oppure aggiornare le voci esistenti.

      Suggerimento

      Usare questa opzione per gli aggiornamenti incrementali del vocabolario con batch di dati in ingresso.

    • Merge: genera un nuovo vocabolario n grammi dal corpus di input.

      Questa opzione è utile se si passa un vocabolario in background come input al modulo e si vuole ridurre il peso delle parole non pronunciate. In altre parole, a ogni voce con un punteggio di frequenza del documento elevato nel vocabolario in background verrà assegnato un punteggio di frequenza del documento inverso inferiore nel vocabolario creato.

      Suggerimento

      Usare questa opzione se non si vogliono aggiungere nuove voci al vocabolario creato dall'input e si vogliono modificare solo i punteggi delle voci esistenti.

  5. L'opzione Scegliere la funzione di ponderazione è obbligatoria se si uniscono o si aggiornano i vocabolari. La funzione di ponderazione specifica il modo in cui i punteggi DF e IDF nei due vocabolari devono essere ponderati tra loro:

    • Peso binario: assegna un valore di presenza binario agli n grammi estratti. In altre parole, il valore per ogni n grammo è 1 quando è presente nel documento specificato e 0 in caso contrario.
    • Peso TF: assegna un punteggio di frequenza term (TF) agli n grammi estratti. Il valore di ogni n grammo è la frequenza di occorrenza nel documento specificato.
    • Peso IDF: assegna un punteggio di frequenza del documento inverso (IDF) agli n grammi estratti. Il valore di ogni n grammo è il log delle dimensioni del corpus diviso per la frequenza di occorrenza nell'intero corpus. Cioè: IDF = log of corpus_size / document_frequency
    • Peso TF-IDF: assegna un termine frequency/inverse document frequency score (TF/IDF) al n grammi estratto. Il valore per ogni n grammo è il punteggio TF moltiplicato per il punteggio IDF.
    • Graph peso: assegna il punteggio ai grammi n estratti in base alla classificazione del grafo TextRank. TextRank è un modello di classificazione basato su grafo per l'elaborazione del testo. Graph basati su algoritmi di classificazione basati su sono essenzialmente un modo per decidere l'importanza in base alle informazioni globali. Per altre informazioni, vedere TextRank: Bringing Order into Texts di Rada Mihalcea e Paul Tarau.
  6. Per tutte le altre opzioni, vedere le descrizioni delle proprietà nella sezione precedente.

  7. Eseguire l'esperimento.

    Vedere questa sezione per una spiegazione dei risultati e del relativo formato.

Punteggio o pubblicazione di un modello che usa n grammi

  1. Copiare il modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo) dal flusso di dati di training al flusso di dati di assegnazione dei punteggi.

  2. Connessione'output del vocabolario dei risultati dal flusso di dati di training al vocabolario di input nel flusso di dati di assegnazione dei punteggi.

  3. Nel flusso di lavoro di assegnazione dei punteggi modificare il modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo) e apportare queste modifiche, lasciando tutti gli altri elementi uguali:

    • Impostare il parametro Della modalità vocabolario su ReadOnly.

    • Modificare l'opzione Usa selezione funzionalità basata su filtro in False.

  4. Per pubblicare l'esperimento, salvare il vocabolario dei risultati come set di dati.

    Connettere quindi il set di dati salvato al modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo) nel grafico di assegnazione dei punteggi.

Risultati

Il modulo Extract N-Gram Features from Text (Estrai funzionalità N-Gram da testo) crea due tipi di output:

  • Set di dati dei risultati: riepilogo del testo analizzato insieme ai grammi n estratti. Le colonne non selezionate nell'opzioneColonna di testo vengono passate all'output. Per ogni colonna di testo analizzata, il modulo genera queste colonne:

    • NgramsString: stringa contenente tutti gli n grammi univoci.
    • NumUniqueNgrams: numero di n grammi estratti usando le proprietà specificate.
    • Matrice di tipo sparse di occorrenze di n grammi: il modulo genera una colonna per ogni n grammo trovato nel corpus totale e aggiunge un punteggio in ogni colonna per indicare il peso dell'n grammo per tale riga.
  • Vocabolario dei risultati: il vocabolario contiene il dizionario effettivo di n grammi, insieme ai punteggi di frequenza dei termini generati nell'ambito dell'analisi. È possibile salvare il set di dati per usarlo di nuovo con un set di input diverso o per un aggiornamento successivo. È anche possibile aggiornare i punteggi o riutilizzare il vocabolario per la modellazione e l'assegnazione dei punteggi.

Risultati dell'esempio

Per illustrare come usare i risultati, il breve esempio seguente usa il set di dati Amazon Book Review disponibile in Studio (versione classica). Il dataaset è stato filtrato in modo da visualizzare solo le revisioni con un punteggio di 4 o 5 e le revisioni con una lunghezza di stringa inferiore a 300 caratteri.

Da questo set di dati è stata selezionata una breve revisione contenente solo 92 parole. Qui il nome dell'autore è stato sostituito con Xxx e il titolo del libro è stato sostituito con Yyy:

"Xxx at his best ! Yyy is one of Xxx's best yet! I highly recommend this novel."

Set di dati dei risultati per il testo di revisione di esempio

Per questo esempio, il modulo ha generato queste colonne:

  • NumUniqueNgrams: per questa revisione di 92 parole, usando le impostazioni predefinite, sono stati estratti 11 n grammi dalla revisione di esempio.

    Quando la lunghezza di n grammi è stata aumentata a 3 e il valore skip-gram è stato impostato su 1, sono stati trovati 15 n grammi.

    Quando la selezione della funzionalità è stata applicata all'impostazione predefinita, non sono stati estratti n grammi.

  • NgramsString: Con le impostazioni predefinite, sono stati restituiti questi n grammi: ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel"]

    Con una lunghezza di n grammi pari a 3 e un valore skip-gram pari a 1, questi n grammi sono stati restituiti: ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel","best_one","one_best","highly_this","highly_recommend_this"]

  • Matrice di tipo sparse di occorrenze di n grammi

    Per questa particolare revisione, i risultati includevano le colonne seguenti:

    ReviewText. [gestisce] ReviewText. [and_highly] ReviewText. [altamente] ReviewText. [highly_recommend]
    0 0 0.301511 0.301511

    Suggerimento

    In caso di problemi di visualizzazione di una determinata colonna, collegare il modulo Seleziona colonne nel set di dati all'output e quindi usare la funzione di ricerca per filtrare le colonne in base al nome.

Vocabolario dei risultati per il testo di revisione di esempio

Il vocabolario contiene il dizionario effettivo di n grammi, insieme ai punteggi di frequenza dei termini generati nell'ambito dell'analisi. È possibile salvare il set di dati per usarlo di nuovo con un set di input diverso o per un aggiornamento successivo. I punteggi DF e IDF vengono generati indipendentemente dalle altre opzioni. Quando si combinano i vocabolari, questi valori archiviati vengono usati come input per la funzione di ponderazione scelta.

  • 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: il termine punteggio di frequenza per n grammi nel corpus originale.
  • IDF: punteggio di frequenza del documento inverso per l'n-grammo nel corpus originale.

È possibile aggiornare manualmente questo set di dati. Tuttavia, prestare attenzione, in quanto è possibile introdurre errori. Ad esempio:

  • Viene generato un errore se il modulo trova righe duplicate con la stessa chiave nel vocabolario di input. Assicurarsi che nessuna riga del 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 del punteggio DF devono essere di tipo Integer.
  • La colonna IDF deve essere di tipo FLOAT (virgola mobile).

Note tecniche

È consigliabile sperimentare diversi intervalli di valori per la lunghezza di n grammi, il numero di skip-grammi e l'uso della selezione delle caratteristiche per determinare la dimensionalità del corpus di testo e il rapporto ottimale delle caratteristiche.

Per altre informazioni su n-grammi e skip-grammi, vedere queste risorse:

Input previsti

Nome Tipo Descrizione
Set di dati Tabella dati Dati di input
Vocabolario di input Tabella dati Vocabolario di input

Parametri del modulo

Nome Tipo Intervallo Facoltativo Predefinito Descrizione
Minimum number of non-zero elements Integer >=1 Si applica solo quando si usa il metodo seguente:

Basata sui conteggi
1 Specifica il numero di funzioni da restituire come output (per il metodo CountBased)
Colonna di testo Selezione colonne Necessario StringFeature Nome o indice in base uno della colonna di testo
Modalità vocabolario Modalità vocabolario Crea

ReadOnly

Aggiornamento

Unione
Necessario Crea Specificare la modalità di creazione del vocabolario n grammi dal corpus
Dimensioni N grammi Integer >=1 Necessario 1 Indicare le dimensioni massime di n grammi da creare
Dimensioni K-Skip Integer >=0 Necessario 0 Indicare le dimensioni k-skip
Funzione di ponderazione Funzione weighting Peso binario

Peso TF

Peso IDF

Peso TF-IDF

Graph peso
Necessario Peso binario Scegliere la funzione di ponderazione da applicare a ogni valore di n grammi
Lunghezza minima delle parole Integer >=1 Necessario 3 Specificare la lunghezza minima delle parole da includere in n grammi
Lunghezza massima delle parole Integer >=2 Necessario 25 Specificare la lunghezza massima delle parole da includere in n grammi
Frequenza assoluta minima n grammi del documento Float >=1.0 Necessario 5,0 Frequenza assoluta minima n grammi del documento
Rapporto massimo tra n grammi del documento Float >=0,0001 Necessario 1.0 Rapporto massimo tra n grammi del documento
Rilevare righe out-of-vocabulary Boolean Necessario true Rilevare le righe con parole non presenti nel vocabolario n grammi (OOV)
Contrassegna inizio frase Boolean Necessario false Indicare se un segno di inizio frase deve essere aggiunto a n grammi
Normalizzare i vettori di funzionalità n-gram Boolean Necessario Normalizzare i vettori di funzionalità n-gram. Se true, il vettore di funzionalità n grammi viene diviso per la norma L2.
Usare la selezione di funzionalità basata su filtro Tipo True False Vero

Falso
Necessario True Usare la selezione di funzionalità basata su filtro per ridurre la dimensionalità
Feature scoring method Metodo di assegnazione dei punteggi Correlazione di Pearson

Informazione mutua

Correlazione di Kendall

Correlazione di Spearman

Chi quadrato

Punteggio di Fisher

Basata sui conteggi
Si applica solo quando l'opzione Usa selezione funzionalità basata su filtro è Impostata su True Punteggio di Fisher Scegliere il metodo da usare per l'assegnazione dei punteggi
Target column Selezione colonne Si applica quando si usa uno dei metodi seguenti:

Correlazione di Pearson

Informazione mutua

Correlazione di Kendall

Correlazione di Spearman

Chi quadrato

Punteggio di Fisher
Specifica la colonna di destinazione
Number of desired features Integer >=1 Si applica quando si usa uno dei metodi seguenti:

Correlazione di Pearson

Informazione mutua

Correlazione di Kendall

Correlazione di Spearman

Chi quadrato

Punteggio di Fisher
1 Specifica il numero di funzioni da restituire come output nei risultati

Output

Nome Tipo Descrizione
Set di dati di risultati Tabella dati Funzionalità estratte
Vocabolario dei risultati Tabella dati Vocabolario dei risultati

Vedi anche

Analisi del testo
Elenco A-Z di Machine Learning moduli