Guida al rilevamento della lingua per il web

L'attività MediaPipe Language Detector consente di identificare la lingua di una porzione di testo. Queste istruzioni mostrano come utilizzare il rilevatore di lingua per app web e JavaScript. L'esempio di codice descritto in queste istruzioni è disponibile su GitHub.

Puoi vedere questa attività in azione visualizzando la demo. Per ulteriori informazioni sulle funzionalità, sui modelli e sulle opzioni di configurazione di questa attività, consulta la Panoramica.

Esempio di codice

Il codice di esempio per il rilevatore della lingua fornisce un'implementazione completa di questa attività in JavaScript come riferimento. Questo codice consente di testare l'attività e iniziare a creare una funzionalità di rilevamento del linguaggio. Puoi visualizzare, eseguire e modificare il codice di esempio del rilevatore di lingua utilizzando solo il browser web.

Configurazione

In questa sezione vengono descritti i passaggi chiave per configurare l'ambiente di sviluppo e codificare i progetti in modo specifico per l'utilizzo del rilevatore della lingua. Per informazioni generali sulla configurazione dell'ambiente di sviluppo per l'utilizzo delle attività di MediaPipe, inclusi i requisiti di versione della piattaforma, consulta la Guida alla configurazione per il web.

Pacchetti JavaScript

Il codice del rilevatore di lingua è disponibile tramite il pacchetto @mediapipe/tasks-text. Puoi trovare e scaricare queste librerie dai link forniti nella Guida alla configurazione della piattaforma.

Puoi installare i pacchetti richiesti con il codice seguente per la gestione temporanea locale utilizzando il comando seguente:

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 pagina HTML, come indicato di seguito:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Modello

L'attività MediaPipe Language Detector richiede un modello addestrato compatibile con questa attività. Per ulteriori informazioni sui modelli addestrati disponibili per il rilevatore di linguaggio, consulta la sezione Modelli della panoramica delle attività.

Seleziona e scarica un modello, quindi archivialo all'interno della directory del progetto:

<dev-project-root>/app/shared/models

Specifica il percorso del modello con il parametro modelAssetPath dell'oggetto baseOptions, come mostrato di seguito:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

Creare l'attività

Utilizza una delle funzioni LanguageDetector.createFrom...() del rilevatore di linguaggio 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 createFromOptions(). Per ulteriori informazioni sulla configurazione delle attività, consulta Opzioni di configurazione.

Il codice seguente mostra come creare e configurare questa attività.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

Opzioni di configurazione

Questa attività prevede le seguenti opzioni di configurazione per le applicazioni web e JavaScript:

Nome opzione Descrizione Intervallo di valori Valore predefinito
maxResults Imposta il numero massimo facoltativo di previsioni relative alla lingua con il punteggio più alto da restituire. Se questo valore è inferiore a zero, vengono 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 codici lingua consentiti. Se il campo non è vuoto, le previsioni relative alle lingue il cui codice non è presente in questo set verranno filtrate. Questa opzione si escludono a vicenda con categoryDenylist e l'uso di entrambi genera un errore. Qualsiasi stringa Non impostata
categoryDenylist Consente di impostare l'elenco facoltativo di codici lingua non consentiti. Se il campo non è vuoto, le previsioni delle lingue il cui codice è incluso in questo set verranno omesse. Questa opzione si escluda a vicenda con categoryAllowlist e l'utilizzo di entrambe genera un errore. Qualsiasi stringa Non impostata

Preparazione dei dati

Rilevamento della lingua funziona con i dati di testo (string). L'attività gestisce la pre-elaborazione dell'input di dati, inclusa la tokenizzazione e la pre-elaborazione del tensore. L'intera pre-elaborazione viene gestita all'interno della funzione detect. Non è necessaria un'ulteriore pre-elaborazione del testo di input.

const inputText = "The input text for the detector.";

Esegui l'attività

Il rilevatore della lingua utilizza la funzione detect per attivare le inferenze. Per il rilevamento della lingua, ciò significa restituire le possibili lingue 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 detectionResult = languageDetector.detect(inputText);

Gestire e visualizzare i risultati

L'attività di rilevamento della lingua restituisce un LanguageDetectorResult che consiste in un elenco di previsioni della lingua insieme alle probabilità di queste previsioni. Di seguito è riportato un esempio dei dati di output di questa attività:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Eseguindo il modello sul testo di input, si ottiene questo risultato: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

Per un esempio del codice necessario per elaborare e visualizzare i risultati di questa attività, consulta l'app web di esempio.