Задача определения языка 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." .
Пример кода, необходимого для обработки и визуализации результатов этой задачи, можно найти в примере .