Guida alle attività di classificazione del testo

L'attività Classificazione di testo MediaPipe consente di classificare il testo in un insieme di categorie definite, come un sentiment positivo o negativo. Le categorie vengono definite durante l'addestramento del modello. Questa attività opera su dati di testo con un modello di machine learning (ML) come dati statici e genera un elenco di categorie con i relativi punteggi di probabilità.

Prova!

Inizia

Inizia a utilizzare questa attività seguendo una di queste guide all'implementazione per la piattaforma su cui stai lavorando:

Queste guide specifiche per piattaforma illustrano l'implementazione di base di questa attività, inclusi un modello consigliato ed un esempio di codice con le opzioni di configurazione consigliate.

Dettagli attività

Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.

Funzionalità

  • Elaborazione del testo di input: supporta la tokenizzazione fuori dal grafico per i modelli senza tokenizzazione nel grafico
  • Più teste di classificazione: ogni testa può utilizzare il proprio set di categorie
  • Impostazioni internazionali mappa etichette: imposta la lingua utilizzata per i nomi visualizzati.
  • Soglia punteggio: filtra i risultati in base ai punteggi delle previsioni
  • Risultati di classificazione Top-K: filtra il numero di risultati del rilevamento
  • Lista consentita e lista bloccata: specifica le categorie rilevate
Input attività Output attività
Il classificatore di testo accetta il seguente tipo di dati di input:
  • Stringa
Il classificatore di testo restituisce un elenco di categorie contenenti:
  • Indice di categoria: l'indice della categoria negli output del modello
  • Punteggio: il punteggio di affidabilità per questa categoria, espresso come probabilità compresa tra zero e uno come valore in virgola mobile.
  • Nome categoria (facoltativo): il nome della categoria come specificato nei metadati del modello TensorFlow Lite, se disponibili.
  • Nome visualizzato della categoria (facoltativo): un nome visualizzato per la categoria, come specificato nei metadati del modello TensorFlow Lite, nella lingua specificata tramite le opzioni internazionali dei nomi visualizzati, se disponibili.

Opzioni di configurazione

Questa attività prevede le seguenti opzioni di configurazione:

Nome opzione Descrizione Intervallo di valori Valore predefinito
displayNamesLocale Imposta la lingua delle etichette da utilizzare per i nomi visualizzati forniti nei metadati del modello dell'attività, se disponibili. Il valore predefinito è en per l'inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato utilizzando l'API Metadata Writer di TensorFlow Lite Codice impostazioni internazionali it
maxResults Imposta il numero massimo facoltativo di risultati di classificazione con il punteggio più alto da restituire. Se < 0, verranno restituiti tutti i risultati disponibili. Eventuali numeri positivi -1
scoreThreshold Imposta la soglia del punteggio di previsione che sostituisce quella fornita nei metadati del modello (se presenti). I risultati inferiori a questo valore vengono rifiutati. Qualsiasi elemento in virgola mobile Non impostata
categoryAllowlist Consente di impostare l'elenco facoltativo di nomi di categorie consentite. Se il campo non è vuoto, i risultati della classificazione il cui nome categoria non è presente in questo set verranno filtrati. I nomi di categoria duplicati o sconosciuti vengono ignorati. Questa opzione si esclude a vicenda con categoryDenylist e l'utilizzo di entrambe genera un errore. Qualsiasi stringa Non impostata
categoryDenylist Consente di impostare l'elenco facoltativo di nomi di categorie non consentiti. Se il campo non è vuoto, i risultati di classificazione il cui nome di categoria è presente in questo set verranno filtrati. I nomi di categoria duplicati o sconosciuti vengono ignorati. Questa opzione si esclude a vicenda con categoryAllowlist e l'uso di entrambe genera un errore. Qualsiasi stringa Non impostata

ottimizzabili

Il classificatore di testo può essere utilizzato con più modelli ML. Inizia con il modello predefinito consigliato per la tua piattaforma di destinazione quando inizi a sviluppare con questa attività. Gli altri modelli disponibili di solito fanno compromessi tra prestazioni, accuratezza, risoluzione e requisiti delle risorse e, in alcuni casi, includono funzionalità aggiuntive.

I modelli preaddestrati sono addestrati per l'analisi del sentiment e prevedono se il sentiment del testo di input è positivo o negativo. I modelli sono stati addestrati sul set di dati SST-2 (Stanford Sentiment Treebank), che consiste in recensioni di film etichettate come positive o negative. Tieni presente che i modelli supportano solo l'inglese. Poiché sono stati addestrati sulla base di un set di dati di recensioni di film, potresti notare una qualità inferiore per i testi che riguardano altre aree di argomenti.

Questo modello utilizza un'architettura basata su BERT (in particolare, il modello MobileBERT) ed è consigliato per la sua elevata accuratezza. Contiene metadati che consentono all'attività di eseguire la tokenizzazione BERT fuori dal grafico.

Nome modello Forma di input Tipo di quantizzazione Versions
Classificatore BERT [1x128],[1x128],[1x128] intervallo dinamico Più recente

Modello di incorporamento delle parole medio

Questo modello utilizza un'architettura di incorporamento delle parole media. Questo modello offre dimensioni ridotte e latenza inferiore, a parità di precisione di previsione inferiore rispetto al classificatore BERT. La personalizzazione di questo modello mediante addestramento aggiuntivo è anche più rapida rispetto all'addestramento del classificatore basato su BERT. Questo modello contiene metadati che consentono all'attività di eseguire tokenizzazione regex fuori grafico.

Nome modello Forma di input Tipo di quantizzazione Versions
Media di incorporamenti di parole 1 x 256 Nessuna (float32) Più recente

Benchmark attività

Ecco i benchmark delle attività per l'intera pipeline basati sui modelli preaddestrati precedenti. Il risultato della latenza è la latenza media su Pixel 6 utilizzando CPU / GPU.

Nome modello Latenza CPU Latenza GPU
Media di incorporamenti di parole 0,14 ms -
Classificatore BERT 57,68 ms -

Modelli personalizzati

Per questa attività puoi utilizzare un modello di ML personalizzato se vuoi migliorare o modificare le funzionalità dei modelli forniti. Con Model Maker puoi modificare i modelli esistenti o crearne uno con strumenti come TensorFlow. I modelli personalizzati utilizzati con MediaPipe devono essere in formato TensorFlow Lite e devono includere metadati specifici che descrivono i parametri operativi del modello. Ti consigliamo di utilizzare Model Maker per modificare i modelli forniti per questa attività prima di crearne di nuovi.