检测语言
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 代码的响应将指示 (unknown),分数值将返回为 0
。 下面的示例显示响应的外观。
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}