Rilevamento della lingua in Chrome con l'AI integrata

Data di pubblicazione: 24 settembre 2024

Prima di tradurre un testo da una lingua all'altra, devi prima determinare la lingua utilizzata nel testo in questione. In precedenza, era necessario caricare il testo su un servizio cloud. Con l'inferenza sul dispositivo, puoi migliorare la tua storia sulla privacy. Sebbene sia possibile inviare una libreria specifica che lo faccia, il download richiederebbe risorse aggiuntive.

La proposta di API per il rilevamento della lingua e il traduttore aims to solve this challenge by fine-tuning a model to this task, with an API incorporata nel browser.

Esempi di casi d'uso

L'API Language Detector è utile principalmente nei seguenti scenari:

  • Determina la lingua del testo inserito in modo che possa essere tradotto.
  • Determina la lingua del testo di input, in modo da poter caricare il modello corretto per attività specifiche per lingua, come il rilevamento della tossicità.
  • Determina la lingua del testo inserito in modo che possa essere etichettato correttamente, ad esempio nei siti di social network online.
  • Determina la lingua del testo inserito, in modo che l'interfaccia di un'app possa essere modificata di conseguenza. ad esempio su un sito belga per mostrare solo l'interfaccia pertinente agli utenti che parlano francese.

Utilizzare l'API Language Detector

L'API Language Detector fa parte della famiglia più grande dell'API Translator. Innanzitutto, esegui il rilevamento delle funzionalità per verificare se il browser supporta l'API LanguageDetector.

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

Download del modello

Il rilevamento della lingua dipende da un modello ottimizzato per il compito specifico di rilevare le lingue. Sebbene l'API sia integrata nel browser, il modello viene scaricato on demand la prima volta che un sito tenta di utilizzare l'API. In Chrome, questo modello è molto piccolo rispetto ad altri modelli. In effetti, potrebbe essere già presente dato che questo modello viene utilizzato anche dalle funzionalità del browser Chrome.

Per verificare se il modello è pronto per l'uso, chiama la funzione translation.canDetect() asincrona. Esistono tre possibili risposte:

  • 'no': il browser attuale supporta l'API Language Detector, ma al momento non può essere utilizzato. Ad esempio, perché non è disponibile spazio libero su disco sufficiente per scaricare il modello.
  • 'readily': il browser corrente supporta l'API Language Detector e può essere utilizzato immediatamente.
  • 'after-download': il browser corrente supporta l'API Language Detector, ma deve prima scaricare il modello.

Per attivare il download e creare un'istanza del rilevatore della lingua, chiama la funzione translation.createDetector() asincrona. Se la risposta a canDetect() è 'after-download', è buona prassi monitorare l'avanzamento del download in modo da poter informare l'utente nel caso in cui il download richieda tempo.

L'esempio seguente mostra come inizializzare il rilevatore di lingua.

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

Esegui il rilevatore della lingua

L'API Language Detector utilizza un modello di ranking per determinare la lingua più probabile utilizzata in un determinato testo. Il ranking è un tipo di apprendimento automatico il cui scopo è ordinare un elenco di elementi. In questo caso, l'API Language Detector assegna un ranking alle lingue dalla probabilità più alta a quella più bassa.

La funzione detect() può restituire il primo risultato, la risposta più probabile o eseguire l'iterazione sui candidati classificati con il livello di confidenza. Viene restituito sotto forma di elenco di oggetti {detectedLanguage, confidence}. Il livello confidence è espresso come valore compreso tra 0.0 (confidenza più bassa) e 1.0 (confidenza massima).

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

Demo

Visualizza l'anteprima dell'API Language Detector nella nostra demo. Inserisci il testo scritto in lingue diverse nell'area di testo.

Registrati per la prova dell'origine

Registrati per la prova dell'API Language Detector per iniziare a testare questa API con i tuoi utenti. Questa prova dell'origine viene eseguita dalla versione 130 alla versione 135 di Chrome.

Scopri di più su come funzionano le prove delle origini.

Impegno di standardizzazione

L'API Language Detector è stata spostata nel gruppo della community W3C Web Incubator dopo che la proposta corrispondente ha ricevuto un supporto sufficiente. L'API fa parte di una proposta più ampia per l'API Translation. Il team di Chrome ha richiesto un feedback al Technical Architecture Group del W3C e a Mozilla e WebKit per conoscere le posizioni degli standard dei singoli fornitori di browser.

Condividi il tuo feedback

Se hai un feedback sull'implementazione di Chrome, segnala un bug di Chromium. Condividi il tuo feedback sulla forma dell'API Language Detector commentando un problema esistente o apri un nuovo problema nel repository GitHub dell'API Translation.

Risorse