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