Web 语言检测指南

借助 MediaPipe Language Detector 任务,您可以识别一段文本使用的语言。这些 说明如何使用网页和 JavaScript 应用的语言检测器。 您可在 GitHub

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

代码示例

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

设置

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

JavaScript 软件包

语言检测器代码可通过 @mediapipe/tasks-text 软件包。您可以从 平台 设置指南

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

您可以使用以下代码安装本地暂存所需的软件包 创建 Deployment

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

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

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();

配置选项

此任务具有以下针对 Web 和 JavaScript 的配置选项 应用:

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

准备数据

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

有关处理和直观呈现 请参阅 Web 示例应用