语言识别
Elastic Stack Serverless
语言识别使您能够确定文本的语言。
您的集群中提供了一个语言识别模型,您可以通过使用其模型 ID (lang_ident_model_1
) 在采集管道的推理处理器中使用它。 有关示例,请参阅将 NLP 推理添加到采集管道。
传递到语言识别模型的文本越长,模型识别语言的准确性就越高。 它在某些语言的短样本(例如,50 个字符长的流)上相当准确,但彼此相似的语言更难基于短字符流来识别。 如果没有可以从中推断出身份的有效文本,则模型返回特殊的语言代码 zxx
。 如果您希望使用不同的默认值,您可以调整您的采集管道以将 zxx
预测替换为您首选的值。
语言识别在构建特征集时会考虑 Unicode 边界。 如果文本带有变音符号,则模型会使用该信息来识别文本的语言。 在某些情况下,即使源语言不是以该语言传统上使用的脚本编写的,模型也可以检测到源语言。 这些语言在支持的语言表格(见下文)中用 Latn
子标签标记。 语言识别支持 Unicode 输入。
下表包含语言识别支持的语言的 ISO 代码和英文名称。 如果一种语言有 2 个字母的 ISO 639-1
代码,则该表包含该标识符。 否则,使用 3 个字母的 ISO 639-2
代码。 Latn
子标签表示该语言被音译为拉丁字母。
代码 | 语言 | 代码 | 语言 | 代码 | 语言 |
---|---|---|---|---|---|
af | 南非荷兰语 | hr | 克罗地亚语 | pa | 旁遮普语 |
am | 阿姆哈拉语 | ht | 海地语 | pl | 波兰语 |
ar | 阿拉伯语 | hu | 匈牙利语 | ps | 普什图语 |
az | 阿塞拜疆语 | hy | 亚美尼亚语 | pt | 葡萄牙语 |
be | 白俄罗斯语 | id | 印度尼西亚语 | ro | 罗马尼亚语 |
bg | 保加利亚语 | ig | 伊博语 | ru | 俄语 |
bg-Latn | 保加利亚语 | is | 冰岛语 | ru-Latn | 俄语 |
bn | 孟加拉语 | it | 意大利语 | sd | 信德语 |
bs | 波斯尼亚语 | iw | 希伯来语 | si | 僧伽罗语 |
ca | 加泰罗尼亚语 | ja | 日语 | sk | 斯洛伐克语 |
ceb | 宿务语 | ja-Latn | 日语 | sl | 斯洛文尼亚语 |
co | 科西嘉语 | jv | 爪哇语 | sm | 萨摩亚语 |
cs | 捷克语 | ka | 格鲁吉亚语 | sn | 修纳语 |
cy | 威尔士语 | kk | 哈萨克语 | so | 索马里语 |
da | 丹麦语 | km | 高棉语 | sq | 阿尔巴尼亚语 |
de | 德语 | kn | 卡纳达语 | sr | 塞尔维亚语 |
el | 现代希腊语 | ko | 朝鲜语 | st | 南索托语 |
el-Latn | 现代希腊语 | ku | 库尔德语 | su | 巽他语 |
en | 英语 | ky | 吉尔吉斯语 | sv | 瑞典语 |
eo | 世界语 | la | 拉丁语 | sw | 斯瓦希里语 |
es | 西班牙语 | lb | 卢森堡语 | ta | 泰米尔语 |
et | 爱沙尼亚语 | lo | 老挝语 | te | 泰卢固语 |
eu | 巴斯克语 | lt | 立陶宛语 | tg | 塔吉克语 |
fa | 波斯语 | lv | 拉脱维亚语 | th | 泰语 |
fi | 芬兰语 | mg | 马达加斯加语 | tr | 土耳其语 |
fil | 菲律宾语 | mi | 毛利语 | uk | 乌克兰语 |
fr | 法语 | mk | 马其顿语 | ur | 乌尔都语 |
fy | 西弗里西亚语 | ml | 马拉雅拉姆语 | uz | 乌兹别克语 |
ga | 爱尔兰语 | mn | 蒙古语 | vi | 越南语 |
gd | 苏格兰盖尔语 | mr | 马拉地语 | xh | 科萨语 |
gl | 加利西亚语 | ms | 马来语 | yi | 意第绪语 |
gu | 古吉拉特语 | mt | 马耳他语 | yo | 约鲁巴语 |
ha | 豪萨语 | my | 缅甸语 | zh | 中文 |
haw | 夏威夷语 | ne | 尼泊尔语 | zh-Latn | 中文 |
hi | 印地语 | nl | 荷兰语,弗拉芒语 | zu | 祖鲁语 |
hi-Latn | 印地语 | no | 挪威语 | ||
hmn | 苗语 | ny | 齐切瓦语 |
在以下示例中,我们将一段包含变音符号和几个英文单词的短匈牙利文本提供给语言识别训练模型。 该模型正确地将该文本识别为匈牙利语,并具有很高的概率。
POST _ingest/pipeline/_simulate
{
"pipeline":{
"processors":[
{
"inference":{
"model_id":"lang_ident_model_1",
"inference_config":{
"classification":{
"num_top_classes":5
}
},
"field_map":{
}
}
}
]
},
"docs":[
{
"_source":{
"text":"Sziasztok! Ez egy rövid magyar szöveg. Nézzük, vajon sikerül-e azonosítania a language identification funkciónak? Annak ellenére is sikerülni fog, hogy a szöveg két angol szót is tartalmaz."
}
}
]
}
- 语言识别训练模型的 ID。
- 指定按概率降序报告的语言数量。
- 包含要识别的文本的源对象。
在上面的示例中,num_top_classes
值表示仅报告前五个语言(也就是说,具有最高概率的语言)。
请求返回以下响应
{
"docs" : [
{
"doc" : {
"_index" : "_index",
"_type" : "_doc",
"_id" : "_id",
"_source" : {
"text" : "Sziasztok! Ez egy rövid magyar szöveg. Nézzük, vajon sikerül-e azonosítania a language identification funkciónak? Annak ellenére is sikerülni fog, hogy a szöveg két angol szót is tartalmaz.",
"ml" : {
"inference" : {
"top_classes" : [
{
"class_name" : "hu",
"class_probability" : 0.9999936063740517,
"class_score" : 0.9999936063740517
},
{
"class_name" : "lv",
"class_probability" : 2.5020248433413966E-6,
"class_score" : 2.5020248433413966E-6
},
{
"class_name" : "is",
"class_probability" : 1.0150420723037688E-6,
"class_score" : 1.0150420723037688E-6
},
{
"class_name" : "ga",
"class_probability" : 6.67935962773335E-7,
"class_score" : 6.67935962773335E-7
},
{
"class_name" : "tr",
"class_probability" : 5.591166324774555E-7,
"class_score" : 5.591166324774555E-7
}
],
"predicted_value" : "hu",
"model_id" : "lang_ident_model_1"
}
}
},
"_ingest" : {
"timestamp" : "2020-01-22T14:25:14.644912Z"
}
}
}
]
}
- 包含最可能语言的分数。
- 具有最高概率的语言的 ISO 标识符。