如何使用语言检测
此语言检测功能可以计算文本,并返回一个语言标识符,该标识符指示文档的书写语言。
语言检测对于收集任意文本(语言未知)的内容存储十分有用。 可以解析此分析的结果,确定输入文档中使用的语言。 响应还返回一个 0 到 1 之间的分数,反映模型的置信度。
语言检测功能可以检测多种语言、变体、方言和某些区域或文化语言。
开发选项
若要使用语言检测,需在应用程序中提交原始非结构化文本进行分析并处理 API 输出。 分析按原样执行,不会对数据所用的模型进行其他自定义。 可通过两种方式使用语言检测:
开发选项 | 说明 |
---|---|
Language Studio | Language Studio 是一个基于 Web 的平台,让你可以在没有 Azure 帐户的情况下尝试使用文本示例进行实体链接,并在注册时使用自己的数据。 有关详细信息,请参阅 Language Studio 网站或 Language Studio 快速入门。 |
REST API 或客户端库 (Azure SDK) | 使用 REST API 或以各种语言提供的客户端库将语言检测集成到应用程序中。 有关详细信息,请参阅语言检测快速入门。 |
Docker 容器 | 使用可用的 Docker 容器在本地部署此功能。 借助这些 Docker 容器,你能够将服务进一步引入数据,以满足合规性、安全性或其他操作目的。 |
确定如何处理数据(可选)
指定语言检测模型
默认情况下,语言检测将对文本使用最新的可用 AI 模型。 你还可以将 API 请求配置为使用特定模型版本。
输入语言
提交要评估的文档时,语言检测将尝试确定文本是否以任何受支持的语言写成。
如果内容是用较少使用的语言表示的,则可以尝试“语言检测”功能来查看它是否返回代码。 无法检测到的语言的响应为 unknown
。
提交数据
提示
可以使用 Docker 容器进行语言检测,以便在本地使用 API。
在收到请求时执行分析。 同步使用语言检测功能是无状态的。 不会在帐户中存储数据,结果会立即在响应中返回。
在以异步方式使用此功能时,API 结果在引入请求时的 24 小时内可用,并在响应中指示。 在此时间段后,结果将被清除,并且不再可用于检索。
获取语言检测结果
从语言检测获得结果时,可以将结果流式传输到应用程序或将输出保存到本地系统上的文件中。
语言检测将针对你提交的每个文档返回一种主要语言,以及其 ISO 639-1 名称、可读名称和置信度分数。 正分 1 表示分析可能达到的最高可信度。
不明确的内容
在某些情况下,可能很难根据输入区分语言。 可以使用 countryHint
参数指定 ISO 3166-1 alpha-2 国家/地区代码。 默认情况下,API 使用“US”作为默认国家/地区提示。 若要删除此行为,可以通过将此值设置为空字符串 countryHint = ""
来重置此参数。
例如,“communication”对于英语和法语都是通用的,如果在有限的背景下给出,则响应将基于“美国”国家/地区提示。 如果已知文本来源来自法国,可以将其作为提示给出。
注意
内容有歧义可能导致置信度分数降低。
仅当置信度分数小于 0.8 时,响应中的 countryHint
才适用。
Input
{
"documents": [
{
"id": "1",
"text": "communication"
},
{
"id": "2",
"text": "communication",
"countryHint": "fr"
}
]
}
通过第二个文档,语言检测模型具有其他上下文来做出更好的判断,因为它包含上述输入中的 countryHint
属性。 这将返回以下输出。
输出
{
"documents":[
{
"detectedLanguage":{
"confidenceScore":0.62,
"iso6391Name":"en",
"name":"English"
},
"id":"1",
"warnings":[
]
},
{
"detectedLanguage":{
"confidenceScore":1.0,
"iso6391Name":"fr",
"name":"French"
},
"id":"2",
"warnings":[
]
}
],
"errors":[
],
"modelVersion":"2022-10-01"
}
如果分析器无法分析输入,则会返回 (Unknown)
。 一个示例是你提交仅由数字组成的文本字符串的情况。
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2023-12-01"
}
混合语言内容
同一文档中的混合语言内容将返回内容中代表性最强但正评级较低的语言。 评级反映该评估的边界强度。 在以下示例中,输入是英语、西班牙语和法语的混合。 分析器对每个段中的字符进行计数,确定主要语言。
输入
{
"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?"
}
]
}
输出
生成的输出包含主要语言,分数低于 1.0,表示可信度较低。
{
"kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.97,
"script": "Latin",
"scriptCode": "Latn"
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2023-12-01"
}
}
脚本名称和脚本代码
注意
- 脚本检测目前仅限于选定语言。
- 脚本检测仅适用于长度大于 12 个字符的文本输入。
语言检测提供根据 ISO 15924 标准检测每种语言的多个脚本的功能。 具体而言,语言检测会返回两个与脚本相关的属性:
script
:已标识的脚本的用户可读名称scriptCode
:已标识的脚本的 ISO 15924 代码
API 的输出包括文档的 scriptCode
属性的值,这些文档至少具有 12 个字符,并且与受支持的语言和脚本列表匹配。 脚本检测旨在使其语言可音译或书写到多个脚本(例如哈萨克语或印地语)的用户受益。
以前,语言检测旨在检测用各种语言、方言和区域变体编写的文档的语言,但受限于“罗马化”。 罗马化是指将一种书写系统中的文本转换为罗马(拉丁语)脚本,它是检测多种印欧语言所必需的。 不过,还有其他语言是用多个脚本书写的,例如哈萨克语,它们可用西里尔字母、波斯-阿拉伯和拉丁语脚本书写。 在其他情况下,用户可能会选择或被要求将他们的语言音译到多个脚本,例如由于支持伽里字母脚本的键盘可用性受限,在拉丁语脚本中音译印地语。
因此,语言检测对脚本检测的扩展支持行为如下:
输入
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput": {
"documents": [
{
"id": "1",
"text": "आप कहाँ जा रहे हैं?"
},
{
"id": "2",
"text": "Туған жерім менің - Қазақстаным"
}
]
}
}
输出
生成的输出由主要语言以及脚本名称、脚本代码和置信度分数组成。
{
"kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Hindi",
"iso6391Name": "hi",
"confidenceScore": 1.0,
"script": "Devanagari",
"scriptCode": "Deva"
},
"warnings": []
},
{
"id": "2",
"detectedLanguage": {
"name": "Kazakh",
"iso6391Name": "kk",
"confidenceScore": 1.0,
"script": "Cyrillic",
"scriptCode": "Cyrl"
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2023-12-01"
}
}
服务和数据限制
有关每分钟和每秒可以发送的请求大小和数量信息,请参阅服务限制一文。