L'attività di classificazione del testo di MediaPipe consente di classificare il testo in un insieme di categorie definite, ad esempio sentiment positivo o negativo. Le categorie sono determinate dal modello che utilizzi e da come è stato addestrato. Queste istruzioni mostrano come utilizzare il classificatore di testo per app web e JavaScript.
Puoi vedere questa attività in azione visualizzando la demo. Per saperne di più sulle funzionalità, sui modelli e sulle opzioni di configurazione di questa attività, consulta la panoramica.
Codice di esempio
Il codice di esempio per Text Classifier fornisce un'implementazione completa di questa attività in JavaScript come riferimento. Questo codice ti aiuta a testare questa attività e a iniziare a creare la tua app di classificazione del testo. Puoi visualizzare, eseguire e modificare l'esempio di Text Classifier utilizzando solo il browser web.
Configurazione
Questa sezione descrive i passaggi chiave per configurare l'ambiente di sviluppo e i progetti di codice specifici per l'utilizzo di Text Classifier. Per informazioni generali sulla configurazione dell'ambiente di sviluppo per l'utilizzo di MediaPipe Tasks, inclusi i requisiti della versione della piattaforma, consulta la Guida alla configurazione per il web.
Pacchetti JavaScript
Il codice di Text Classifier è disponibile tramite il pacchetto
@mediapipe/tasks-text. Puoi trovare e scaricare queste librerie dai link forniti nella
guida
di configurazione della piattaforma.
Puoi installare i pacchetti richiesti con il seguente codice per lo staging locale utilizzando il seguente comando:
npm install @mediapipe/tasks-text
Se vuoi eseguire il deployment su un server, puoi utilizzare un servizio di rete CDN (Content Delivery Network), come jsDelivr, per aggiungere il codice direttamente alla tua pagina HTML, come segue:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
crossorigin="anonymous"></script>
</head>
Modello
L'attività di classificazione del testo di MediaPipe richiede un modello addestrato compatibile con questa attività. Per saperne di più sui modelli addestrati disponibili per Text Classifier, consulta la sezione Modelli della panoramica dell'attività.
Seleziona e scarica un modello, quindi archivialo nella directory del progetto:
<dev-project-root>/assets/bert_text_classifier.tflite
Specifica il percorso del modello con il parametro baseOptions object modelAssetPath, come mostrato di seguito:
baseOptions: {
modelAssetPath: `/assets/bert_text_classifier.tflite`
}
Creare l'attività
Utilizza una delle funzioni Text Classifier TextClassifier.createFrom...() per
preparare l'attività per l'esecuzione delle inferenze. Puoi utilizzare la funzione createFromModelPath()
con un percorso relativo o assoluto al file del modello addestrato. L'esempio di codice
riportato di seguito mostra l'utilizzo della funzione
TextClassifier.createFromOptions(). Per ulteriori informazioni sulle opzioni di configurazione disponibili, consulta
Opzioni di configurazione.
Il seguente codice mostra come creare e configurare questa attività:
async function createClassifier() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textClassifier = await TextClassifier.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
},
maxResults: 5
}
);
}
createClassifier();
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione per le applicazioni web e JavaScript:
| 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 TensorFlow Lite Metadata Writer.
| Codice di 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 numero in virgola mobile | Non impostato |
categoryAllowlist |
Imposta l'elenco facoltativo dei nomi delle categorie consentiti. Se non è vuoto,
i risultati della classificazione la cui categoria non è presente in questo insieme verranno
filtrati. I nomi di categorie duplicati o sconosciuti vengono ignorati.
Questa opzione si esclude a vicenda con categoryDenylist e l'utilizzo
di entrambe genera un errore. |
Qualsiasi stringa | Non impostato |
categoryDenylist |
Imposta l'elenco facoltativo di nomi di categorie non consentiti. Se
non vuoto, i risultati della classificazione il cui nome della categoria è in questo insieme verranno filtrati. I nomi di categorie duplicati o sconosciuti vengono ignorati. Questa opzione è
mutualmente esclusiva con categoryAllowlist e l'utilizzo di entrambe genera un errore. |
Qualsiasi stringa | Non impostato |
Preparazione dei dati
Classificazione del testo funziona con i dati di testo (String). L'attività gestisce la
pre-elaborazione dell'input di dati, inclusa la tokenizzazione e la pre-elaborazione dei tensori.
Tutta la pre-elaborazione viene gestita all'interno della funzione classify(). Non è necessario
un ulteriore pre-elaborazione del testo di input.
const inputText = "The input text to be classified.";
Esegui l'attività
Text Classifier utilizza la funzione classify() per attivare le inferenze. Per la classificazione
del testo, questo significa restituire le possibili categorie per il testo di input.
Il seguente codice mostra come eseguire l'elaborazione con il modello di attività.
// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
inputText
);
Gestire e visualizzare i risultati
Text Classifier restituisce un TextClassifierResult che contiene l'elenco
delle possibili categorie per il testo di input. Le categorie sono definite dal modello che utilizzi, quindi se vuoi categorie diverse, scegli un modello diverso o esegui il retraining di uno esistente.
Di seguito è riportato un esempio dei dati di output di questa attività:
TextClassificationResult:
Classification #0 (single classification head):
ClassificationEntry #0:
Category #0:
category name: "positive"
score: 0.8904
index: 0
Category #1:
category name: "negative"
score: 0.1096
index: 1
Questo risultato è stato ottenuto eseguendo la classificazione BERT sul testo di input:
"an imperfect but overall entertaining mystery".