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

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

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

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

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

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

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

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

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

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detection 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 определения языка ранжирует языки от самой высокой до самой низкой вероятности.

Функция 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 определения языка в нашей демонстрации . Введите текст, написанный на разных языках, в текстовом поле.

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

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

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

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

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

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

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

Ресурсы

,

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

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

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

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

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

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

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

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

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detection 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 определения языка ранжирует языки от самой высокой до самой низкой вероятности.

Функция 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 определения языка в нашей демонстрации . Введите текст, написанный на разных языках, в текстовом поле.

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

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

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

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

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

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

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

Ресурсы