Taaldetectie in Chrome met ingebouwde AI,Taaldetectie in Chrome met ingebouwde AI

Gepubliceerd: 24 september 2024

Voordat u tekst van de ene taal naar de andere vertaalt, moet u eerst bepalen welke taal in de gegeven tekst wordt gebruikt. Voorheen vereiste dit het uploaden van de tekst naar een cloudservice. Met gevolgtrekking op het apparaat kunt u uw privacyverhaal verbeteren. Hoewel het mogelijk is om een ​​specifieke bibliotheek te leveren die dit doet, zijn er extra bronnen nodig om te downloaden.

Het Language Detector and Translator API-voorstel heeft tot doel deze uitdaging op te lossen door een model op deze taak af te stemmen, met een API ingebouwd in de browser.

Voorbeelden van gebruiksscenario's

De Language Detector API is vooral nuttig in de volgende scenario's:

  • Bepaal de taal van de invoertekst, zodat deze kan worden vertaald.
  • Bepaal de taal van de invoertekst, zodat het juiste model kan worden geladen voor taalspecifieke taken, zoals toxiciteitsdetectie.
  • Bepaal de taal van de invoertekst, zodat deze correct kan worden gelabeld, bijvoorbeeld op online sociale netwerksites.
  • Bepaal de taal van de invoertekst, zodat de interface van een app hierop kan worden aangepast. Bijvoorbeeld om op een Belgische site alleen de interface te tonen die relevant is voor gebruikers die Frans spreken.

Gebruik de Taaldetector-API

De Language Detector API maakt deel uit van de grotere familie van de Translator API. Voer eerst functiedetectie uit om te zien of de browser de Language Detector API ondersteunt.

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

Model downloaden

Taaldetectie is afhankelijk van een model dat is afgestemd op de specifieke taak van het detecteren van talen. Hoewel de API in de browser is ingebouwd, wordt het model op aanvraag gedownload wanneer een site de API voor het eerst probeert te gebruiken. In Chrome is dit model erg klein in vergelijking met andere modellen. Het zou zelfs al aanwezig kunnen zijn, aangezien dit model ook wordt gebruikt door de Chrome-browserfuncties.

Om te zien of het model klaar is voor gebruik, roept u de functie asynchrone translation.canDetect() aan. Er zijn drie mogelijke reacties:

  • 'no' : de huidige browser ondersteunt de Language Detector API, maar kan momenteel niet worden gebruikt. Bijvoorbeeld omdat er onvoldoende vrije schijfruimte beschikbaar is om het model te downloaden.
  • 'readily' : De huidige browser ondersteunt de Language Detector API en kan meteen worden gebruikt.
  • 'after-download' : de huidige browser ondersteunt de Language Detector API, maar moet eerst het model downloaden.

Om de download te activeren en de taaldetector te instantiëren, roept u de functie asynchrone translation.createDetector() aan. Als het antwoord op canDetect() 'after-download' was, kunt u het beste luisteren naar de downloadvoortgang, zodat u de gebruiker kunt informeren als het downloaden enige tijd kost.

In het volgende voorbeeld ziet u hoe u de taaldetector initialiseert.

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;
}

Voer de taaldetector uit

De Language Detector API gebruikt een classificatiemodel om te bepalen welke taal hoogstwaarschijnlijk in een bepaald stuk tekst wordt gebruikt. Ranking is een vorm van machinaal leren, waarbij het doel is om een ​​lijst met items te ordenen. In dit geval rangschikt de Language Detector API talen van de hoogste naar de laagste waarschijnlijkheid.

De functie detect() kan het eerste resultaat of het meest waarschijnlijke antwoord retourneren, of de gerangschikte kandidaten met het betrouwbaarheidsniveau herhalen. Dit wordt geretourneerd als een lijst met {detectedLanguage, confidence} -objecten. Het confidence wordt uitgedrukt als een waarde tussen 0.0 (laagste betrouwbaarheid) en 1.0 (hoogste betrouwbaarheid).

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

Bekijk een voorbeeld van de Language Detector API in onze demo . Voer tekst in die in verschillende talen is geschreven in het tekstgebied in.

Meld u aan voor de origin-proefperiode

Registreer u voor de proefversie van de Language Detector API om deze API met uw gebruikers te testen. Deze origin-proefperiode loopt van Chrome 130 tot 135.

Lees meer over hoe herkomstproeven werken .

Standaardisatie-inspanning

De Language Detector API werd verplaatst naar de W3C Web Incubator Community Group nadat het bijbehorende voorstel voldoende steun kreeg. De API maakt deel uit van een groter voorstel voor een Translation API . Het Chrome-team vroeg om feedback van de W3C Technical Architecture Group en vroeg Mozilla en WebKit naar de standaardposities van de betreffende browserleverancier.

Deel uw feedback

Als u feedback heeft over de implementatie van Chrome, dient u een Chromium-bug in. Deel uw feedback over de API-vorm van de Language Detector API door commentaar te geven op een bestaand probleem of een nieuw probleem te openen in de Translation API GitHub-repository .

Bronnen