L'attività Classificatore di testo MediaPipe ti consente di classificare il testo in un insieme di categorie definite, come sentiment positivi o negativi. Le categorie sono determinate dal modello che usi e come è stato addestrato quel modello. Queste istruzioni mostrano come utilizzare il classificatore di testo per le app web e JavaScript.
Puoi vedere questa attività in azione visualizzando la demo. Per ulteriori informazioni su funzionalità, modelli di questa attività, consulta la Panoramica.
Esempio di codice
Il codice di esempio per il classificatore di testo fornisce un'implementazione completa in JavaScript come riferimento. Questo codice è utile per testare l'attività a creare la tua app di classificazione del testo. Puoi visualizzare, eseguire Modifica il codice di esempio del classificatore di testo. usando solo il browser web.
Configurazione
Questa sezione descrive i passaggi chiave per configurare l'ambiente di sviluppo e per i progetti di codice che usano Classificatore di testo. Per informazioni generali su l'impostazione dell'ambiente di sviluppo per l'utilizzo di Attività di MediaPipe, tra cui: i requisiti di versione della piattaforma, consulta Guida alla configurazione per il web.
Pacchetti JavaScript
Il codice classificatore di testo è disponibile tramite
@mediapipe/tasks-text
pacchetto. Puoi trovare e scaricare queste librerie dai link forniti nei
piattaforma
Guida alla configurazione.
Puoi installare i pacchetti richiesti con il seguente codice per la gestione temporanea locale utilizzando il seguente comando:
npm install @mediapipe/tasks-text
Se vuoi eseguire il deployment su un server, puoi usare una distribuzione dei contenuti di rete (CDN), come jsDelivr a Aggiungi il codice direttamente alla pagina HTML, nel seguente modo:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
crossorigin="anonymous"></script>
</head>
Modello
L'attività Classificatore di testo MediaPipe richiede un modello addestrato compatibile con dell'attività. Per ulteriori informazioni sui modelli addestrati disponibili per il classificatore di testo, consulta la panoramica delle attività nella sezione Modelli.
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 l'oggetto baseOptions
modelAssetPath
come mostrato di seguito:
baseOptions: {
modelAssetPath: `/assets/bert_text_classifier.tflite`
}
Crea l'attività
Usa una delle funzioni del classificatore di testo TextClassifier.createFrom...()
per
per preparare l'attività per l'esecuzione delle inferenze. Puoi usare createFromModelPath()
con un percorso relativo o assoluto al file del modello addestrato. Il codice
l'esempio seguente mostra l'utilizzo dell'elemento TextClassifier.createFromOptions()
personalizzata. Per ulteriori informazioni sulle opzioni di configurazione disponibili, vedi
Opzioni di configurazione.
Il codice seguente illustra 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à include le seguenti opzioni di configurazione per web e JavaScript applicazioni:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
displayNamesLocale |
Imposta la lingua delle etichette da utilizzare per i nomi visualizzati forniti nel
metadati del modello dell'attività, se disponibili. Il valore predefinito è en per
Inglese. Puoi aggiungere etichette localizzate ai metadati di un modello personalizzato
Utilizzando l'API TensorFlow Metadata Writer
| Codice impostazioni internazionali | it |
maxResults |
Imposta il numero massimo facoltativo di risultati della classificazione con il punteggio più alto su per tornare indietro. Se < 0, verranno restituiti tutti i risultati disponibili. | Qualsiasi numero positivo | -1 |
scoreThreshold |
Imposta la soglia del punteggio di previsione che sostituisce quella fornita in gli eventuali metadati del modello. I risultati al di sotto di questo valore vengono rifiutati. | Qualsiasi numero in virgola mobile | Non impostato |
categoryAllowlist |
Consente di impostare l'elenco facoltativo di nomi di categorie consentiti. Se il campo non è vuoto,
i risultati della classificazione i cui nome non è incluso in questo set saranno
esclusi. I nomi di categorie duplicati o sconosciuti vengono ignorati.
Questa opzione si esclude a vicenda con categoryDenylist e utilizza
entrambi generano un errore. |
Qualsiasi stringa | Non impostato |
categoryDenylist |
Consente di impostare un elenco facoltativo di nomi di categorie non consentiti. Se
non vuoti, i risultati di classificazione con nome della categoria incluso in questo set verranno filtrati
fuori. I nomi di categorie duplicati o sconosciuti vengono ignorati. Questa opzione è reciproca
è esclusivo con categoryAllowlist e l'utilizzo di entrambi genera un errore. |
Qualsiasi stringa | Non impostato |
Preparazione dei dati
Classificatore di 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.
Tutte le pre-elaborazioni vengono gestite all'interno della funzione classify()
. Non è necessario
per un'ulteriore pre-elaborazione del testo di input in anticipo.
const inputText = "The input text to be classified.";
Esegui l'attività
Il classificatore di testo utilizza la funzione classify()
per attivare le inferenze. Per testo
la classificazione, ciò significa restituire le possibili categorie per il testo di input.
Il codice seguente mostra come eseguire l'elaborazione con l'attività un modello di machine learning.
// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
inputText
);
Gestire e visualizzare i risultati
Il classificatore di testo restituisce un TextClassifierResult
che contiene l'elenco
di possibili categorie per il testo di input. Le categorie sono definite
modello che utilizzi, quindi se vuoi categorie diverse, scegli un modello diverso
o riaddestrare una rete 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 il classificatore BERT sul testo di input:
"an imperfect but overall entertaining mystery"
.