Руководство по определению языка для Интернета

Задача MediaPipe Language Detector позволяет определить язык фрагмента текста. В этих инструкциях показано, как использовать детектор языка для веб-приложений и приложений JavaScript. Пример кода, описанный в этой инструкции, доступен на GitHub .

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

Пример кода

В примере кода Language Detector представлена ​​полная реализация этой задачи на JavaScript. Этот код поможет вам протестировать эту задачу и приступить к созданию собственной функции определения языка. Вы можете просматривать, запускать и редактировать пример кода Language Detector, используя только веб-браузер.

Настраивать

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

JavaScript-пакеты

Код детектора языка доступен через пакет @mediapipe/tasks-text . Вы можете найти и загрузить эти библиотеки по ссылкам, приведенным в руководстве по установке платформы.

Вы можете установить необходимые пакеты с помощью следующего кода для локальной установки, используя следующую команду:

npm install @mediapipe/tasks-text

Если вы хотите выполнить развертывание на сервере, вы можете использовать службу сети доставки контента (CDN), например jsDelivr , для добавления кода непосредственно на вашу HTML-страницу следующим образом:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Модель

Для задачи «Детектор языка MediaPipe» требуется обученная модель, совместимая с этой задачей. Дополнительную информацию о доступных обученных моделях для Language Detector смотрите в разделе «Модели обзора задач».

Выберите и загрузите модель, а затем сохраните ее в каталоге проекта:

<dev-project-root>/app/shared/models

Укажите путь к модели с помощью параметра modelAssetPath объекта baseOptions , как показано ниже:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

Создать задачу

Используйте одну из функций LanguageDetector.createFrom...() детектора языка, чтобы подготовить задачу к выполнению логических выводов. Вы можете использовать функцию createFromModelPath() с относительным или абсолютным путем к файлу обученной модели. В примере кода ниже показано использование функции createFromOptions() . Дополнительные сведения о настройке задач см. в разделе Параметры конфигурации .

Следующий код демонстрирует, как создать и настроить эту задачу.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

Варианты конфигурации

Эта задача имеет следующие параметры конфигурации для веб-приложений и приложений JavaScript:

Название опции Описание Диапазон значений Значение по умолчанию
maxResults Устанавливает необязательное максимальное количество возвращаемых языковых подсказок с наибольшим количеством оценок. Если это значение меньше нуля, возвращаются все доступные результаты. Любые положительные числа -1
scoreThreshold Устанавливает порог оценки прогноза, который переопределяет тот, который указан в метаданных модели (если таковые имеются). Результаты ниже этого значения отклоняются. Любой плавающий Не установлено
categoryAllowlist Устанавливает дополнительный список разрешенных языковых кодов. Если оно не пусто, языковые прогнозы, код языка которых отсутствует в этом наборе, будут отфильтрованы. Эта опция является взаимоисключающей с categoryDenylist , и использование обеих приводит к ошибке. Любые строки Не установлено
categoryDenylist Устанавливает дополнительный список кодов языков, которые не разрешены. Если не пусто, языковые прогнозы, код языка которых находится в этом наборе, будут отфильтрованы. Этот параметр является взаимоисключающим с categoryAllowlist , и использование обоих приводит к ошибке. Любые строки Не установлено

Подготовьте данные

Language Detector работает с текстовыми ( string ) данными. Задача выполняет предварительную обработку входных данных, включая токенизацию и предварительную обработку тензоров. Вся предварительная обработка выполняется внутри функции detect . Предварительная дополнительная обработка входного текста не требуется.

const inputText = "The input text for the detector.";

Запустить задачу

Детектор языка использует функцию detect для инициирования выводов. Для определения языка это означает возврат возможных языков для входного текста.

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

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

Обработка и отображение результатов

Задача «Детектор языка» выводит результат LanguageDetectorResult , состоящий из списка языковых прогнозов, а также вероятностей этих прогнозов. Ниже показан пример выходных данных этой задачи:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Этот результат был получен путем запуска модели на входном тексте: "Il ya beaucoup de bouches qui parlent et fort peu de têtes qui pensent." .

Пример кода, необходимого для обработки и визуализации результатов этой задачи, см. в примере веб-приложения .