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

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

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

Пример кода

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

Настраивать

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

Пакеты

Language Detector использует пакет mediapipe pip. Вы можете установить зависимость следующим образом:

$ python -m pip install mediapipe

Импорт

Импортируйте следующие классы для доступа к функциям задачи «Детектор языка»:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

Модель

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

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

model_path = '/absolute/path/to/language_detector.tflite'

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

base_options = BaseOptions(model_asset_path=model_path)

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

Задача «Детектор языка MediaPipe» использует функцию create_from_options для настройки задачи. Функция create_from_options принимает значения параметров конфигурации для установки параметров детектора. Вы также можете инициализировать задачу с помощью фабричной функции create_from_model_path . Функция create_from_model_path принимает относительный или абсолютный путь к файлу обученной модели. Дополнительные сведения о настройке задач см. в разделе Параметры конфигурации .

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

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.LanguageDetectorOptions(base_options=base_options)

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

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

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

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

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

input_text = 'The input text to be classified.'

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

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

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

with python.text.LanguageDetector.create_from_options(options) as detector:
  detection_result = detector.detect(input_text)

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

Детектор языка выводит 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." .

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