Python 语言检测指南

借助 MediaPipe Language Detector 任务,您可以识别一段文本使用的语言。这些 说明向您展示如何在 Python 中使用语言检测器。代码示例 这些说明中描述的 GitHub

要了解此任务的实际运行情况,请查看 演示。 如需详细了解功能、模型和配置选项 部分,请参阅概览

代码示例

语言检测器的示例代码提供了该 API 的完整实现, 供您参考。此代码可帮助您测试此任务, 开始构建您自己的语言检测功能。您可以查看、运行 修改语言检测器 示例代码 只需使用网络浏览器即可。

设置

本部分介绍了设置开发环境和 代码项目。有关 设置开发环境以使用 MediaPipe 任务,包括 平台版本要求,请参阅 Python 设置指南

<ph type="x-smartling-placeholder">

软件包

语言检测器使用 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'

使用 BaseOptions 对象 model_asset_path 指定模型的路径 参数中,如下所示:

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 将评分最高的语言预测的可选数量上限设置为 return。如果此值小于零,则返回所有可用的结果。 任何正数 -1
score_threshold 设置预测分数阈值,以替换 模型元数据(如果有)。低于此值的结果将被拒绝。 任意浮点数 未设置
category_allowlist 设置允许的语言代码的可选列表。如果不为空, 语言代码不在此集中的语言预测将 已滤除。此选项与 category_denylist,同时使用这两个元素会导致错误。 任何字符串 未设置
category_denylist 设置不允许使用的语言代码的可选列表。如果 非空语言预测,如果语言代码在此集合内,则将被滤除 。此选项与 category_allowlist 和 会导致错误。 任何字符串 未设置

准备数据

语言检测器使用文本 (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 y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."

有关处理和直观呈现结果所需的代码示例 请参阅 Python 示例应用