Guida alle attività di classificazione del testo

Interfaccia utente di esempio che mostra una recensione positiva di un film come input e come output cinque stelle e un pollice rivolto verso l'alto

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

Prova!

Inizia

Per iniziare a utilizzare questa attività, segui una di queste guide all'implementazione per la piattaforma su cui stai lavorando:

Queste guide specifiche per la piattaforma illustrano un'implementazione di base di questa attività, incluso un modello consigliato e 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 grafo per i modelli senza tokenizzazione all'interno del grafo
  • Più intestazioni di classificazione: ogni intestazione può utilizzare il proprio insieme di categorie
  • Impostazioni internazionali mappa delle etichette: imposta la lingua utilizzata per i nomi visualizzati
  • Soglia di punteggio: filtra i risultati in base ai punteggi di previsione.
  • Risultati di classificazione Top-k: filtra il numero di risultati di rilevamento
  • Etichetta lista consentita e lista bloccata: specifica le categorie rilevate
Input delle attività Output delle attività
Il classificatore di testo accetta il seguente tipo di dati di input:
  • Stringa
Il classificatore di testo genera un elenco di categorie contenenti:
  • indice categoria: l'indice della categoria negli output del modello
  • Punteggio: il punteggio di affidabilità per questa categoria, espresso come probabilità tra zero e uno come valore in virgola mobile.
  • Nome della categoria (facoltativo): il nome della categoria specificato nei metadati del modello TensorFlow Lite, se disponibile.
  • 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à ha 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 disponibile. Il valore predefinito è en per l'inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato utilizzando l'API TensorFlow Lite Metadata Writer Codice delle 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. Qualsiasi numero positivo -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 stato mobile Non impostato
categoryAllowlist Imposta l'elenco facoltativo dei nomi delle categorie consentite. Se non è vuoto, i risultati di classificazione il cui nome della categoria non è presente in questo insieme verranno eliminati. I nomi di categorie duplicati o sconosciuti vengono ignorati. Questa opzione è mutuamente esclusiva con categoryDenylist e l'utilizzo di entrambe genera un errore. Qualsiasi stringa Non impostato
categoryDenylist Imposta l'elenco facoltativo dei nomi di categorie non consentiti. Se non è vuoto, i risultati di classificazione il cui nome della categoria è presente in questo insieme verranno esclusi. I nomi di categorie duplicati o sconosciuti vengono ignorati. Questa opzione è mutuamente esclusa da categoryAllowlist e l'utilizzo di entrambe genera un errore. Qualsiasi stringa Non impostato

Modelli

Il classificatore di testo può essere utilizzato con più di un modello di ML. Quando inizi a sviluppare con questa attività, inizia con il modello predefinito e consigliato per la tua piattaforma di destinazione. Gli altri modelli disponibili di solito prevedono compromessi tra prestazioni, precisione, risoluzione e requisiti di 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), costituito da recensioni di film etichettate come positive o negative. Tieni presente che i modelli supportano solo l'inglese. Poiché sono stati addestrati su un set di dati di recensioni di film, la qualità del testo che tratta altri argomenti potrebbe essere ridotta.

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

Nome modello Forma di input Tipo di quantizzazione Versioni
Classificatore BERT [1x128],[1x128],[1x128] dynamic range Ultime notizie

Modello di embedding di parole medio

Questo modello utilizza un'architettura di embedding delle parole media. Questo modello offre dimensioni più ridotte e una latenza inferiore, a fronte di una minore accuratezza di previsione rispetto al classificatore BERT. La personalizzazione di questo modello tramite un addestramento aggiuntivo è anche più veloce dell'addestramento del classificatore basato su BERT. Questo modello contiene metadati che consentono all'attività di eseguire la tokenizzazione con regex al di fuori del grafico.

Nome modello Forma di input Tipo di quantizzazione Versioni
Word embedding medio 1 x 256 Nessuno (float32) Ultime notizie

Benchmark delle attività

Ecco i benchmark delle attività per l'intera pipeline in base ai modelli preaddestrati sopra indicati. Il risultato della latenza è la latenza media su Pixel 6 che utilizza CPU / GPU.

Nome modello Latenza della CPU Latenza GPU
Embedding di parole medio 0,14 ms -
Classificatore BERT 57,68 ms -

Modelli personalizzati

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