Поделиться через


Обнаружение языков с помощью API детектора языка

API детектора языка — это экспериментальный веб-API, который позволяет определять язык текста с помощью модели, встроенной в #REF!, из кода JavaScript на веб-сайте или в расширении браузера.

Подробное содержимое:

Введение

Вводные сведения об API детектора языка см. в следующих разделах:

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

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

Дополнительные сведения об API переводчика см. в статье Перевод текста с помощью API переводчика.

Доступность API детектора языка

API детектора языка доступен в качестве предварительной версии для разработчиков на каналах #REF! Canary или Dev, начиная с версии 147.0.3897.0. Чтобы скачать канал предварительной версии #REF! (бета-версия, разработка или Canary), перейдите в раздел Стать участником программы предварительной оценки #REF!.

Преимущества API детектора языка

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

  • Снижение стоимости: Использование облачной службы обнаружения языка не связано с затратами.

  • Независимость сети: Помимо начальной загрузки модели, при использовании этого API для определения языков не возникает задержки в сети, и api также можно использовать, когда устройство находится в автономном режиме.

  • Улучшенная конфиденциальность: Входные данные в модель никогда не покидают устройство и не собираются для обучения других моделей ИИ.

Модель обнаружения языка загружается при первом использовании API в #REF!, а затем используется на всех веб-сайтах в браузере. Доступ к модели осуществляется через простой веб-API, который не требует знаний о сторонних платформах и не требует опыта в области искусственного интеллекта (ИИ) или машинного обучения (ML).

Альтернативы API детектора языка

Вы можете отправлять сетевые запросы в облачные службы обнаружения языков с более сложными возможностями. См. документацию по языку ИИ Azure.

В качестве альтернативы на устройстве API запроса используется более настраиваемые сценарии с моделью небольшого языка, встроенной в #REF!. См . статью Запрос встроенной языковой модели с помощью API запроса.

Заявление об отказе от ответственности

Как и другие модели машинного обучения, модель обнаружения языка в #REF! потенциально может давать результаты, которые являются неточными или ненадежными для определенных входных данных, таких как короткий текст или отдельные слова.

Доступность модели

При первом вызове API детектора языка требуется начальное скачивание модели. Вы можете отслеживать скачивание модели с помощью параметра монитора при создании нового сеанса API детектора языка. См . раздел Мониторинг хода загрузки модели (монитор) ниже.

Включение API детектора языка

Чтобы использовать API детектора языка в #REF!, установите флаг следующим образом:

  1. В #REF! перейдите по адресу edge://versionи убедитесь, что вы используете #REF! версии 147.0.3897.0 или более поздней, например канал Предварительной версии Canary или Dev microsoft Edge.

    Чтобы скачать канал предварительной версии #REF! (бета-версия, разработка или Canary), перейдите в раздел Стать участником программы предварительной оценки #REF!.

  2. В этой версии #REF! откройте новую вкладку или окно и перейдите по адресу edge://flags.

  3. В текстовом поле Флаги поиска в верхней части окна начните вводить API веб-платформы обнаружения языка:

    Страница

    В списке указан следующий флаг:

    • API веб-платформы обнаружения языка

      В этой записи отображается #edge-language-detection-apiedge://flags/#edge-language-detection-api(ссылка на ).

  4. В разделе API веб-платформы обнаружения языка выберите Включено.

    В правом нижнем углу отображается кнопка Перезапустить .

  5. Нажмите кнопку Перезапустить .

См. рабочий пример

Чтобы просмотреть API детектора языка в действии и просмотреть существующий код, который использует этот API, выполните следующие действия:

  1. Включите API детектора языка, как описано выше.

  2. В #REF! Canary или Dev перейдите на тестовую площадку API детектора языка в новом окне или вкладке.

  3. В информационном баннере в верхней части проверка состояние: изначально отображается: API на устройстве и модель доступна.

  4. В текстовом поле Текст для анализа можно при необходимости изменить текст.

  5. Нажмите кнопку Определить язык .

    Модель начинает определять язык текста.

    Выходные данные создаются в разделе ответа страницы.

    Выходные данные отображаются:

    • Имя обнаруженного языка.
    • Процент определенности языка.

    Демонстрационная страница

См. также:

  • /built-in-ai/ — исходный код и файл сведений для демонстрации встроенных игровых площадок ИИ.

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

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

Проверьте, включен ли API детектора языка.

Перед использованием API детектора языка в коде веб-сайта проверка, что API включен, проверив наличие LanguageDetector объекта:

if (!LanguageDetector) {
  // The Language Detector API is not available.
} else {
  // The Language Detector API is available.
}

Проверьте, можно ли использовать модель (availability())

API детектора языка можно использовать, если модель и среда выполнения модели были загружены #REF!.

Чтобы проверка, можно ли использовать API, вызовите availability():

const availability = await LanguageDetector.availability();

if (availability == "unavailable") {
  // The model is not available.
}

if (availability == "downloadable" || availability == "downloading") {
  // The model can be used, but it needs to be downloaded first.
}

if (availability == "available") {
  // The model is available and can be used.
}

Создание нового сеанса (create())

Создание сеанса позволяет браузеру загрузить модель обнаружения языка в память, чтобы ее можно было использовать. Прежде чем определить язык, создайте новый сеанс с помощью create() метода :

// Create a Language Detector session.
const session = await LanguageDetector.create();

Чтобы настроить сеанс модели, можно передать параметры в create() метод:

// Create a Language Detector session with options.
const session = await LanguageDetector.create({
  expectedInputLanguages: ["en", "es", "fr"]
  monitor: monitorProgress
});

Доступны следующие параметры:

Вариант Описание
expectedInputLanguages Массив кодов языка. Если существуют определенные языки, которые необходимо определить для вашего варианта использования, добавьте их в expectedInputLanguages параметр . Это позволяет #REF! при необходимости скачивать дополнительные ресурсы для повышения точности. Коды языков должны быть в формате BCP 47 (например, "en" для английского, "es" для испанского или "fr" французского).
monitor Функция, используемая для отслеживания хода загрузки модели. См . раздел Мониторинг хода загрузки модели (монитор) ниже.

Мониторинг хода загрузки модели (monitor)

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

// Create a Language Detector session with the monitor option to monitor the
// model download.
const session = await LanguageDetector.create({
  monitor: m => {
    // Use the monitor object argument to add a listener for the 
    // downloadprogress event.
    m.addEventListener("downloadprogress", event => {
      // The event is an object with the loaded and total properties.
      if (event.loaded == event.total) {
        // The model is fully downloaded.
      } else {
        // The model is still downloading.
        const percentageComplete = (event.loaded / event.total) * 100;
      }
    });
  }
});

Запуск API детектора языка (detect())

После создания сеанса модели можно определить язык текста. API детектора detect() языка предоставляет метод для обнаружения языков:

// Create a Language Detector session.
const session = await LanguageDetector.create();

// Detect the language of the text.
const results = await session.detect(someUserText);

// Use the results.
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely.
  console.log(result.detectedLanguage, result.confidence);
}

Метод detect() возвращает обещание, которое разрешается в массив результатов обнаружения языка. Каждый результат представляет собой объект со следующими свойствами:

Свойство Описание
detectedLanguage Тег языка BCP 47 обнаруженного языка (например, "en" для английского, "es" испанского или "und" для неопределенного).
confidence Число от 0,0 до 1,0, указывающее уровень достоверности обнаружения. Более высокие значения указывают на более высокую достоверность.

Результаты сортируются по достоверности в порядке убывания, с наиболее вероятным языком в первую очередь. Последняя запись в массиве результатов всегда является неопределенным языком ("und"). Элемент undetermined в массиве представляет процентную уверенность в том, что текст не находится ни на одном из языков, известных модели.

Общие сведения о оценках достоверности

Оценки достоверности, возвращаемые API детектора языка, имеют следующие характеристики:

  • Диапазон: Каждая оценка достоверности — это число от 0 (наименьшая достоверность) до 1 (наивысшая достоверность) включительно.

  • Отсортированные результаты: Результаты сортируются от наибольшей до наименьшей достоверности.

  • Фильтрация с низкой достоверностью: Языки с очень низкой достоверностью автоматически отфильтровываются, чтобы снизить уровень шума. Низкая достоверность обычно меньше 1 %, или меньше уверенности по сравнению с категорией "неопределенная".

  • Сумма оценок: Сумма всех оценок достоверности может быть меньше 1, так как языки с низкой вероятностью опущены в результатах.

Уничтожение сеанса (destroy())

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

Вы можете уничтожить сеанс двумя разными способами:

  • С помощью destroy() метода .
  • С помощью AbortController.

Подробные сведения приведены ниже.

Уничтожение сеанса путем вызова destroy()

Чтобы уничтожить сеанс путем вызова destroy() с помощью сеанса, выполните приведенные далее действия.LanguageDetector

const session = await LanguageDetector.create();

// Later, destroy the session by using the destroy method.
session.destroy();

Уничтожение сеанса с помощью AbortController

Чтобы уничтожить сеанс путем создания AbortController объекта, создайте LanguageDetector сеанс, а затем вызовите abort():

// Create an AbortController object.
const controller = new AbortController();

// Create a Language Detector session and pass the 
// AbortController object by using the signal option.
const session = await LanguageDetector.create({
  signal: controller.signal
});

// Later, perhaps when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();

Отправка отзывов

Мы заинтересованы в изучении:

  • Диапазон сценариев, для которых планируется использовать API детектора языка.
  • Все проблемы, возникающие с API или моделью обнаружения языка.
  • Будут ли полезны другие встроенные API для конкретных задач.

Чтобы отправить отзыв о своих сценариях и задачах, которые вы хотите выполнить, добавьте комментарий к проблеме обратной связи API детектора языка.

Если вы заметили какие-либо проблемы при использовании API, сообщите об этом в репозитории.

Вы также можете принять участие в обсуждении разработки API детектора языка в репозитории рабочей группы веб-машинного обучения W3C.

См. также

Получение #REF!:

Github:

документация по #REF!:

Репозиторий демонстраций: