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

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

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

Пример кода

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

Настраивать

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

пакеты 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 требуется обученная модель, совместимая с данной задачей. Дополнительную информацию о доступных обученных моделях для определения языка см. в разделе «Модели» обзора задачи.

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

<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 Sets the optional list of allowed language codes. If non-empty, language predictions whose language code is not in this set will be filtered out. This option is mutually exclusive with categoryDenylist and using both results in an error. Любые строки Не задано
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." .

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