Распознавание языка в Chrome со встроенным AI,Определение языка в Chrome со встроенным AI

Опубликовано: 24 сентября 2024 г.

Прежде чем переводить текст с одного языка на другой, необходимо сначала определить, какой язык используется в данном тексте. Раньше для этого требовалось загрузить текст в облачный сервис. С помощью вывода на устройстве вы можете улучшить свою историю конфиденциальности. Хотя можно поставить специальную библиотеку, которая делает это, для ее загрузки потребуются дополнительные ресурсы.

Предложение API-интерфейса детектора языка и переводчика направлено на решение этой проблемы путем точной настройки модели для этой задачи с помощью API, встроенного в браузер.

Примеры использования

API детектора языка в первую очередь полезен в следующих сценариях:

  • Определите язык входного текста, чтобы его можно было перевести.
  • Определите язык входного текста, чтобы можно было загрузить правильную модель для задач, специфичных для языка, таких как обнаружение токсичности.
  • Определите язык ввода текста, чтобы его можно было правильно пометить, например, на сайтах социальных сетей.
  • Определите язык ввода текста, чтобы можно было соответствующим образом настроить интерфейс приложения. Например, на бельгийском сайте показывать интерфейс только для пользователей, говорящих по-французски.

Используйте API детектора языка

API-интерфейс Language Detector является частью более крупного семейства API-переводчика. Сначала запустите обнаружение функций, чтобы узнать, поддерживает ли браузер API Language Detector.

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

Загрузка модели

Обнаружение языка зависит от модели, настроенной для конкретной задачи обнаружения языков. Хотя API встроен в браузер, модель загружается по требованию при первой попытке сайта использовать API. В Chrome эта модель очень маленькая по сравнению с другими моделями. Фактически, он уже может присутствовать, учитывая, что эта модель также используется функциями браузера Chrome.

Чтобы проверить, готова ли модель к использованию, вызовите функцию асинхронного translation.canDetect() . Возможны три варианта ответа:

  • 'no' : текущий браузер поддерживает API детектора языка, но в данный момент его нельзя использовать. Например, потому что на диске недостаточно свободного места для загрузки модели.
  • 'readily' : текущий браузер поддерживает API детектора языка, и его можно использовать сразу.
  • 'after-download' : текущий браузер поддерживает API детектора языка, но сначала необходимо загрузить модель.

Чтобы запустить загрузку и создать экземпляр детектора языка, вызовите функцию асинхронного translation.createDetector() . Если ответом на canDetect() был 'after-download' , лучше всего прослушивать ход загрузки, чтобы вы могли сообщить пользователю, если загрузка займет некоторое время.

В следующем примере показано, как инициализировать детектор языка.

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

Запустите детектор языка

API детектора языка использует модель ранжирования, чтобы определить, какой язык с наибольшей вероятностью используется в данном фрагменте текста. Ранжирование — это тип машинного обучения, цель которого — упорядочить список элементов. В этом случае API Language Detector ранжирует языки от самой высокой до самой низкой вероятности.

Функция detect() может возвращать либо первый результат, наиболее вероятный ответ, либо перебирать ранжированных кандидатов с уровнем достоверности. Он возвращается в виде списка объектов {detectedLanguage, confidence} . Уровень confidence выражается как значение от 0.0 (самая низкая достоверность) до 1.0 (самая высокая достоверность).

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

Демо

Предварительный просмотр API Language Detector в нашей демонстрации . Введите текст, написанный на разных языках, в текстовом поле.

Зарегистрируйтесь на пробную версию Origin

Зарегистрируйтесь для участия в пробной версии API Language Detector, чтобы начать тестирование этого API со своими пользователями. Эта пробная версия Origin работает с Chrome 130 по 135.

Узнайте больше о том , как работают пробные версии происхождения .

Усилия по стандартизации

API-интерфейс Language Detector был перенесен в группу сообщества W3C Web Incubator после того, как соответствующее предложение получило достаточную поддержку. API является частью более крупного предложения API перевода . Команда Chrome запросила отзыв у группы технической архитектуры W3C и запросила у Mozilla и WebKit позицию по стандартам конкретного поставщика браузера.

Поделитесь своим отзывом

Если у вас есть отзывы о реализации Chrome, сообщите об ошибке Chromium . Поделитесь своим мнением о форме API Language Detector API, прокомментировав существующую или открыв новую проблему в репозитории API перевода GitHub .

Ресурсы