检测语言

已完成

Azure AI 语言检测 API 将评估文本输入,并且对于提交的每个文档,返回语言标识符,分数指示分析强度。

此功能对于收集任意文本的内容存储非常有用,其中语言未知。 另一种方案可能涉及聊天机器人。 如果用户启动与聊天机器人的会话,则可以使用语言检测来确定他们使用的语言,并允许你以适当的语言配置机器人响应。

可以分析此分析的结果,以确定输入文档中使用哪种语言。 响应还返回一个分数,这反映了模型的置信度(值介于 0 和 1 之间)。

语言检测可用于文档或单个短语。 请务必注意,文档大小必须低于 5,120 个字符。 大小限制为每个文档,每个集合限制为 1,000 个项目(ID)。 此处显示了可以在请求正文中向服务提交的格式正确的 JSON 有效负载的示例,包括文档的集合,其中每个文档都包含唯一 ID 以及要分析的文本。 (可选)可以提供 countryHint 以提高预测性能。

{
    "kind": "LanguageDetection",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
              {
                "id": "1",
                "text": "Hello world",
                "countryHint": "US"
              },
              {
                "id": "2",
                "text": "Bonjour tout le monde"
              }
        ]
    }
}

该服务将返回一个 JSON 响应,其中包含请求正文中每个 文档 的结果,包括预测语言和指示预测置信度的值。 置信度是一个介于 0 到 1 之间的值,其值接近 1 是更高的置信度。 下面是映射到上述请求 JSON 的标准 JSON 响应的示例。

{   "kind": "LanguageDetectionResults",
    "results": {
        "documents": [
          {
            "detectedLanguage": {
              "confidenceScore": 1,
              "iso6391Name": "en",
              "name": "English"
            },
            "id": "1",
            "warnings": []
          },
          {
            "detectedLanguage": {
              "confidenceScore": 1,
              "iso6391Name": "fr",
              "name": "French"
            },
            "id": "2",
            "warnings": []
          }
        ],
        "errors": [],
        "modelVersion": "2022-10-01"
    }
}

在我们的示例中,所有语言都显示 1 的置信度,主要是因为文本相对简单且易于识别语言。

如果传入包含多语言内容的文档,服务的行为会稍有不同。 同一文档中的混合语言内容会优先显示在内容中出现频率最高的语言,但其积极评级较低,反映了该评估的边际效力。 在下面的示例中,输入是英语、西班牙语和法语的混合。 分析器使用文本的统计分析来确定 主要 语言。

{
  "documents": [
    {
      "id": "1",
      "text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
    }
  ]
}

以下示例显示了此多语言示例的响应。

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "Spanish",
                "iso6391Name": "es",
                "confidenceScore": 0.9375
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2022-10-01"
}

要考虑的最后一个条件是语言内容存在歧义。 如果提交分析器无法分析的文本内容(例如,将文本转换为字符串变量时出现字符编码问题),则可能会出现这种情况。 因此,语言名称和 ISO 代码的响应将指示(未知),分数值将作为 0返回。 以下示例演示响应的外观。

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "(Unknown)",
                "iso6391Name": "(Unknown)",
                "confidenceScore": 0.0
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2022-10-01"
}