LanguageDetector: detect() 方法

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

LanguageDetector 接口的 detect() 方法用于检测给定文本字符串最有可能属于哪种或哪些语言。

语法

js
detect(input)
detect(input, options)

参数

input

一个表示待检测语言的文本字符串。

options 可选

一个指定 detect() 操作配置选项的对象。可能的值包括:

signal

一个 AbortSignal 对象实例,它允许通过关联的 AbortController 来中止 detect() 操作。

返回值

一个 Promise,它会 fulfilled 一个包含表示检测到的语言的对象数组。每个对象包含以下属性:

detectedLanguage

一个 BCP 47 语言标签,表示检测到的语言。

confidence

一个介于 01 之间的数字,表示 AI 模型对检测到的语言正确的置信度。

理论上,所有返回的 confidence 值之和应为 1,但实际可能低于 1,因为置信度非常低的值会从结果中排除。

返回的最后一个数组元素将始终具有 detectedLanguageund — 这是“undetermined”(未确定)的缩写,表示该文本不是模型已知语言的可能性。

异常

InvalidStateError DOMException

如果当前 Document 未激活,则抛出此异常。

QuotaExceededError

如果语言检测操作超过了可用的 inputQuota,则会抛出此错误。

示例

detect() 的基本用法

js
const detector = await LanguageDetector.create({
  expectedInputLanguages: ["en-US", "zh"],
});

const results = await detector.detect(myTextString);

results.forEach((result) => {
  console.log(`${result.detectedLanguage}: ${result.confidence}`);
});

// Results in logs like this:
// la: 0.8359838724136353
// es: 0.017705978825688362
// sv: 0.012977192178368568
// en: 0.011148443445563316
// und: 0.0003214875760022551

规范

规范
翻译器和语言检测器 API
# dom-languagedetector-detect

浏览器兼容性

另见