Опубликовано: 24 сентября 2024 г., Последнее обновление: 20 мая 2025 г.
Прежде чем переводить текст с одного языка на другой, необходимо определить, какой язык используется в данном тексте. Раньше для перевода требовалось загрузить текст в облачный сервис, выполнить перевод на сервере и затем скачать результаты.
API Language Detector работает на стороне клиента, что позволяет защитить конфиденциальность пользователей. Хотя можно предоставить специальную библиотеку, которая реализует эту функцию, её загрузка потребует дополнительных ресурсов.
Когда использовать определение языка
API определителя языка в первую очередь полезен в следующих сценариях:
- Определите язык входного текста, чтобы его можно было перевести.
- Определите язык входного текста, чтобы можно было загрузить правильную модель для задач, специфичных для конкретного языка, например, для обнаружения токсичности.
- Определите язык входного текста, чтобы его можно было правильно маркировать, например, на сайтах социальных сетей.
- Определите язык вводимого текста, чтобы можно было соответствующим образом настроить интерфейс приложения. Например, на бельгийском сайте можно отображать только интерфейс, подходящий пользователям, говорящим по-французски.
Начать
Запустите функцию обнаружения, чтобы узнать, поддерживает ли браузер API определения языка.
if ('LanguageDetector' in self) {
// The Language Detector API is available.
}
Загрузка модели
Определение языка основано на модели, точно настроенной под конкретную задачу. Хотя API встроен в браузер, модель загружается по запросу при первой попытке сайта использовать API. В Chrome эта модель очень мала по сравнению с другими моделями. Возможно, она уже присутствует, поскольку используется другими функциями Chrome.
Чтобы определить, готова ли модель к использованию, вызовите асинхронную функцию LanguageDetector.availability()
. Если ответ на функцию availability()
— downloadable
, отслеживайте ход загрузки и информируйте пользователя, так как загрузка может занять некоторое время.
Чтобы запустить загрузку и создать экземпляр детектора языка, проверьте активацию пользователя . Затем вызовите асинхронную функцию LanguageDetector.create()
.
const detector = await LanguageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
Запустите детектор языка
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-площадка
Поэкспериментируйте с API определения языка на нашей площадке API . Введите текст на разных языках в текстовое поле.
Политика разрешений, фреймы и веб-работники
По умолчанию API определения языка доступен только для окон верхнего уровня и для iframe с тем же источником. Доступ к API можно делегировать iframe с другим источником с помощью атрибута политики разрешений allow=""
:
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Language Detector API by
setting the `allow="language-detector"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="language-detector"></iframe>
API определения языка недоступно в Web Workers. Это связано со сложностью создания ответственного документа для каждого Worker, необходимого для проверки статуса политики разрешений.
Поделитесь своим мнением
Мы хотим увидеть, что вы создаёте с помощью API определения языка. Поделитесь с нами своими веб-сайтами и веб-приложениями на X , YouTube и LinkedIn .
Если у вас есть отзыв о реализации Chrome, отправьте сообщение об ошибке Chromium .