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 tłumaczenie wymagało przesłania tekstu do usługi w chmurze, przetłumaczenia go na serwerze, a następnie pobrania wyników.

Interfejs Language Detector API wykorzystuje wnioskowanie na urządzeniu, dzięki czemu możesz poprawić swoją prywatność. Chociaż można przesłać konkretną bibliotekę, która to umożliwia, wymaga to pobrania dodatkowych zasobów.

Dostępność

Rejestrowanie się w wersji próbnej origin

Aby zacząć korzystać z interfejsu Language Detector API:

  1. Potwierdź zasady Google dotyczące niedozwolonych zastosowań generatywnej AI.
  2. Przejdź do testowania origin interfejsu Language Detector API.
  3. Kliknij Zarejestruj się i wypełnij formularz.
    • W polu Źródło internetowe podaj źródło lub identyfikator rozszerzenia, chrome-extension://YOUR_EXTENSION_ID.
  4. Aby przesłać dane, kliknij Zarejestruj.
  5. Skopiuj podany token i dodaj go do każdej strony internetowej w źródle lub pliku rozszerzenia, na której chcesz włączyć wersję próbną.
  6. Zacznij używać interfejsu Language Detection API.

Dowiedz się więcej o tym, jak rozpocząć okres próbny.

Dodawanie obsługi localhost

Aby uzyskać dostęp do interfejsu Language Detection API w localhost podczas testowania origin, musisz zaktualizować Chrome do najnowszej wersji. Następnie wykonaj poniższe czynności:

  1. Otwórz Chrome na jednej z tych platform: Windows, Mac lub Linux.
  2. Jedź do: chrome://flags/#language-detection-api.
  3. Kliknij Włączono.
  4. Kliknij Uruchom ponownie lub uruchom ponownie Chrome.

Przykłady użycia

Interfejs Language Detector API jest przydatny przede wszystkim w tych sytuacjach:

  • Określa język tekstu wejściowego, aby można go było przetłumaczyć.
  • określa język tekstu wejściowego, aby można było załadować odpowiedni model do zadań związanych z danym językiem, takich jak wykrywanie toksyczności;
  • określenie języka tekstu wejściowego, aby można było go prawidłowo oznaczyć, na przykład w mediach 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 tworzony w przeglądarce, ale model jest pobierany na żądanie przy pierwszym użyciu interfejsu API przez stronę. W Chrome ten model jest bardzo mały w porównaniu z innymi modelami. W zasadzie może on być już obecny, 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 możliwe 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': obecna przeglądarka obsługuje interfejs Language Detector API i można go od razu używać.
  • 'after-download': bieżąca przeglądarka obsługuje interfejs Language Detector API, ale musi najpierw pobrać model.

Aby wywołać pobieranie i utworzyć instancję detektora 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 ono 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ślenia, który język jest najczęściej używany w danym tekście. Ranking to rodzaj uczenia maszynowego, 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.

Standardizacja

Interfejs Language Detector API został przeniesiony do grupy W3C Web Incubator Community, 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 ich stanowisko w sprawie standardów.

Prześlij opinię

Jeśli chcesz podzielić się opinią na temat implementacji w 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.