Wykrywanie języka w Chrome za pomocą wbudowanej AI

Opublikowano: 24 września 2024 r.

Zanim przetłumaczysz tekst z jednego języka na inny, musisz najpierw określić, w jakim języku jest on zapisany. Wcześniej wymagało to przesłania tekstu do usługi w chmurze. Dzięki wnioskowaniu na urządzeniu możesz zwiększyć prywatność. Można przesłać konkretną bibliotekę, która to umożliwia, jednak pobranie dodatkowych zasobów wymagałoby dodatkowych zasobów.

Proponowana interfejs API wykrywania języka i tłumaczenia ma na celu rozwiązanie tego problemu poprzez dostosowanie modelu do tego zadania za pomocą interfejsu API wbudowanego w przeglądarkę.

Przykłady użycia

Interfejs Language Detector API przydaje się przede wszystkim w tych sytuacjach:

  • Określa język tekstu wejściowego, aby można go było przetłumaczyć.
  • Określ język tekstu wejściowego, aby można było załadować właściwy model na potrzeby zadań związanych z językiem, takich jak wykrywanie toksyczności.
  • Ustal język tekstu wejściowego, aby mógł być prawidłowo oznaczony np. w sieciach społecznościowych.
  • Określa język tekstu wejściowego, aby można było odpowiednio dostosować interfejs aplikacji. Na przykład w przypadku witryny belgijskiej możesz wyświetlać interfejs tylko użytkownikom posługującym się językiem francuskim.

Korzystanie z interfejsu Language Detector API

Interfejs Language Detector API należy do większej rodziny interfejsów Translator API. Najpierw uruchom wykrywanie funkcji, aby sprawdzić, czy przeglądarka obsługuje interfejs LanguageDetector API.

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

Pobieranie modelu

Rozpoznawanie języka zależy od modelu, który jest dostrojony do konkretnego zadania polegającego na rozpoznawaniu języków. Interfejs API jest wbudowany w przeglądarce, ale model jest pobierany na żądanie przy pierwszej próbie jego użycia przez witrynę. W Chrome ten model jest bardzo mały w porównaniu z innymi modelami. Może on już być widoczny, ponieważ ten model jest też używany przez funkcje przeglądarki Chrome.

Aby sprawdzić, czy model jest gotowy do użycia, wywołaj asynchroniczną funkcję translation.canDetect(). Dostępne są 3 odpowiedzi:

  • 'no': bieżąca przeglądarka obsługuje interfejs Language Detector API, ale nie można go obecnie używać. Może to być spowodowane na przykład tym, że nie ma wystarczającej ilości wolnego miejsca na dysku do pobrania modelu.
  • 'readily': bieżąca przeglądarka obsługuje interfejs Language Detector API i można go od razu użyć.
  • 'after-download': obecna przeglądarka obsługuje interfejs Language Detector API, ale musi najpierw pobrać model.

Aby aktywować pobieranie i utworzenie wystąpienia wzorca do wykrywania języka, wywołaj asynchroniczną funkcję translation.createDetector(). Jeśli odpowiedź na canDetect() to 'after-download', zalecamy sprawdzanie postępu pobierania, aby poinformować użytkownika, jeśli trwa to zbyt długo.

Ten przykład pokazuje, jak zainicjować detekcję języka.

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

Uruchom wykrywanie języka

Interfejs Language Detector API używa modelu rankingowego do określania, który język jest najprawdopodobniej używany w danym fragmencie tekstu. Ranking to typ systemów uczących się, którego celem jest uporządkowanie listy elementów. W tym przypadku interfejs Language Detector API sortuje języki według prawdopodobieństwa, od najwyższego do najniższego.

Funkcja detect() może zwracać pierwszy wynik, najbardziej prawdopodobną odpowiedź lub przeszukiwać posortowanych kandydatów z poziomem pewności. Zwracana jest jako lista obiektów {detectedLanguage, confidence}. Poziom confidence jest wyrażany jako wartość z zakresu 0.0 (najniższy poziom ufności) i 1.0 (najwyższy poziom ufności).

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
// ...

Prezentacja

Wypróbuj interfejs Language Detector API w naszym demo. Wpisz tekst w różnych językach w polu tekstowym.

Rejestrowanie się w wersji próbnej origin

Zarejestruj się w ramach testów interfejsu Language Detector API, aby rozpocząć testowanie tego interfejsu API z udziałem użytkowników. Testowanie origin trwa od wersji Chrome 130 do 135.

Dowiedz się więcej o tym, jak działają testy origin.

Nakłady na standaryzację

Interfejs Language Detector API został przeniesiony do grupy społecznościowej W3C Web Incubator, ponieważ odpowiednia propozycja uzyskała wystarczające poparcie. Interfejs API jest częścią większej oferty Translation API. Zespół Chrome poprosił o opinię W3C Technical Architecture Group oraz MozillaWebKit o stanowisko tych przeglądarek do standardów.

Prześlij opinię

Jeśli chcesz podzielić się opinią na temat implementacji Chrome, zgłoś błąd w Chromium. Prześlij opinię na temat interfejsu API Language Detector API, komentując istniejący problem lub otwierając nowy w repertuarze Translation API na GitHubie.

Zasoby