语言识别(LanguageIdentifier)使用指导:判断一段文字是哪种语言

« 返回

机器学习套件(ML Kit)组件在在线版和教育版中提供,离线版(含机房版)不包含。

它能做什么

语言识别判断一段文字是哪种语言,支持 100 多种,结果给出 BCP-47 语言代码(如 zh、en、ja)和中文名称。常用于自动选择翻译方向、按语言分流消息。识别在本地完成,不上传文本。

准备工作

  • 短文本:文字越短越难判断;很短的文本可以把「置信度阈值」调低(如 0.2),或用「识别可能的语言」看多个候选。
  • 联机调试:安卓上用 AI 伴侣调试需要安装 MLKit 版 AI 伴侣(应用宝,包名 cn.fun123.appinventor);普通版伴侣不含识别引擎,调用时会触发「屏幕.出现错误时」(错误码 4722)。直接打包 APK 安装测试不受影响。
  • 安装包体积:只有用到本组件的 App 才会打包它的识别引擎与模型,体积以编译结果为准。
  • 鸿蒙:暂不支持:调用方法会触发「识别语言失败」并说明原因。

案例一:识别一段文字的语言

把输入框的文字交给「识别语言」,结果事件给出语言代码和中文名:

when 按钮_识别.Click() {
  语言识别1.IdentifyLanguage(文本输入框_文本.Text)
}
when 语言识别1.GotLanguage(语言代码, 名称) {
  标签_结果.Text = join(名称, "(", 语言代码, ")")
}
when 语言识别1.NoLanguageFound(文本) {
  标签_状态.Text = "认不出是哪种语言,文本再长一些试试"
}

案例二:列出多个候选语言

「识别可能的语言」返回 JSON 数组,逐项拼出名称和置信度:

when 按钮_候选.Click() {
  语言识别1.IdentifyPossibleLanguages(文本输入框_文本.Text)
}
when 语言识别1.GotPossibleLanguages(数量, 结果JSON) {
  var 行 = ""
  foreach 项 in Web客户端1.JsonTextDecodeWithDictionaries(结果JSON) {
    行 = join(行, dictget(项, "name", ""), ":", round(dictget(项, "confidence", 0) * 100), "%\n")
  }
  标签_详情.Text = 行
}

结果数据说明

「结果JSON」是数组,每项含 languageTag、name、confidence。「语言名称」方法可以直接把语言代码转成中文名。

常见问题

现象 原因与处理
总是识别不出 文本太短,或阈值太高;调低「置信度阈值」
中文被认成日文 纯汉字短句与日文汉字相同;多写几个字或用候选列表

完整 .aia 源码与操作指导

下载 .aia 源码

导入 LanguageIdentifierDemo.aia 后可以直接打包 APK 运行;用 AI 伴侣联机调试请安装 MLKit 版 AI 伴侣。源码文件已通过正式编辑器载入、后台导入和 APK 编译校验;真机识别效果请以实际设备为准。

功能 操作 预期结果
识别中文 直接点「识别语言」 显示「中文(zh)」
切换示例 点 English / 日本語 / 한국어 / Français 后识别 分别显示对应语言
可能的语言 点「可能的语言」 列出候选及置信度百分比

案例界面与积木源码在仓库 docs/markdown/reference/components/guide/examples/LanguageIdentifierDemo/,SHA-256:20c6a3f96902dd9bbcde3425724b640b7acd7a6ec032ce8134bf197df898f1d6。

文档反馈