语言检测器 API 是一种实验性 Web API,允许你使用内置于 Microsoft Edge 的模型,从网站或浏览器扩展中的 JavaScript 代码检测文本语言。
详细内容:
- 简介
- 将语言检测器 API 与翻译器 API 配合使用
- 语言检测器 API 的可用性
- 语言检测器 API 的优点
- 语言检测器 API 的替代方法
- 免责声明
- 模型可用性
- 启用语言检测器 API
- 查看工作示例
- 使用语言检测器 API
- 检查语言检测器 API 是否已启用
- 检查模型是否可以 (可用性 () )
- 创建新会话 (创建 () )
- 监视模型下载进度 (监视)
- 运行语言检测器 API (检测 () )
- 了解置信度分数
- 销毁会话 (销毁 () )
- 发送反馈
- 另请参阅
简介
有关语言检测器 API 的介绍性信息,请参阅:
将语言检测器 API 与翻译器 API 配合使用
为了便于将用户提供的文本翻译为其他语言,请将语言检测器 API 与翻译器 API 结合使用。
若要了解翻译器 API,请参阅: 使用翻译器 API 翻译文本。
语言检测器 API 的可用性
从版本 147.0.3897.0 开始,语言检测器 API 在 Microsoft Edge Canary 或开发频道中作为开发人员预览版提供。 若要下载 Microsoft Edge (Beta、Dev 或 Canary) 的预览频道,请转到 成为 Microsoft Edge 预览体验成员。
语言检测器 API 的优点
语言检测器 API 使用在相同设备上运行的语言检测模型,在该设备上使用模型的输入和输出 (即本地) 。 与基于云的解决方案相比,此方法具有以下优势:
降低成本: 使用云语言检测服务不产生任何费用。
网络独立性: 除了初始模型下载之外,使用此 API 检测语言时不会有网络延迟,并且当设备脱机时也可以使用该 API。
改进的隐私: 输入到模型的数据永远不会离开设备,也不会收集这些数据来训练其他 AI 模型。
首次在 Microsoft Edge 中使用 API 时,将下载语言检测模型,随后在浏览器中的所有网站之间共享。 该模型是通过一个简单的 Web API 访问的,该 API 不需要了解第三方框架,也不需要人工智能 (AI) 或机器学习 (ML) 专业知识。
语言检测器 API 的替代方法
可以使用更复杂的功能将网络请求发送到基于云的语言检测服务;请参阅Azure AI 语言文档。
作为设备上的替代方法,提示 API 提供更多自定义方案,其小型语言模型内置于 Microsoft Edge 中;请参阅 使用提示 API 提示内置语言模型。
免责声明
与其他机器学习模型一样,Microsoft Edge 中的语言检测模型可能会产生对某些输入(如短文本或单字)不准确或不可靠的结果。
模型可用性
网站首次调用语言检测器 API 时,需要初始下载模型。 创建新的语言检测器 API 会话时,可以使用监视选项来监视模型下载;请参阅 下面的监视模型下载进度 (监视) 。
启用语言检测器 API
若要在 Microsoft Edge 中使用语言检测器 API,请设置 标志,如下所示:
在 Microsoft Edge 中,转到
edge://version,并确保使用版本 147.0.3897.0 或更高版本的 Microsoft Edge,例如 Microsoft Edge 的 Canary 或 Dev 预览频道。若要下载 Microsoft Edge (Beta、Dev 或 Canary) 的预览频道,请转到 成为 Microsoft Edge 预览体验成员。
在该版本的 Microsoft Edge 中,打开一个新选项卡或窗口,然后转到
edge://flags。在顶部的 “搜索标志 ”文本框中,开始键入 语言检测 Web 平台 API:
列出了以下标志:
语言检测 Web 平台 API
此条目显示
#edge-language-detection-api链接到edge://flags/#edge-language-detection-api) (。
在 “语言检测 Web 平台 API”下,选择“ 已启用”。
右下角显示“ 重启 ”按钮。
单击“ 重启” 按钮。
查看工作示例
若要查看语言检测器 API 的运行情况,并查看使用此 API 的现有代码,请执行以下作:
在 Microsoft Edge Canary 或 Dev 中,转到新窗口或选项卡中 的语言检测器 API场 。
在顶部的信息横幅中,检查状态:它最初显示为:设备上的 API 和型号可用。
在“ 要分析的文本 ”文本框中,可以选择性地更改文本。
单击“ 检测语言 ”按钮。
模型开始检测文本的语言。
输出在页面的响应部分中生成。
输出显示:
- 检测到的语言的名称。
- 哪种语言的确定性百分比。
另请参阅:
- /built-in-ai/ - 内置 AI场演示的源代码和自述文件。
使用语言检测器 API
接下来的部分是关于使用语言检测器 API。
检查语言检测器 API 是否已启用
在网站代码中使用语言检测器 API 之前,检查通过测试是否存在对象来启用 APILanguageDetector:
if (!LanguageDetector) {
// The Language Detector API is not available.
} else {
// The Language Detector API is available.
}
检查模型是否可以 (availability()) 使用
如果模型和模型运行时已由 Microsoft Edge 下载,则可以使用语言检测器 API。
若要检查 API 是否可以使用,请调用 availability():
const availability = await LanguageDetector.availability();
if (availability == "unavailable") {
// The model is not available.
}
if (availability == "downloadable" || availability == "downloading") {
// The model can be used, but it needs to be downloaded first.
}
if (availability == "available") {
// The model is available and can be used.
}
创建新会话 (create())
创建会话会指示浏览器在内存中加载语言检测模型,以便可以使用该模型。 在检测语言之前,请使用 create() 方法创建新会话:
// Create a Language Detector session.
const session = await LanguageDetector.create();
若要自定义模型会话,可以将选项传递给 create() 方法:
// Create a Language Detector session with options.
const session = await LanguageDetector.create({
expectedInputLanguages: ["en", "es", "fr"]
monitor: monitorProgress
});
可用的选项包括:
| 选项 | 说明 |
|---|---|
expectedInputLanguages |
语言代码数组。 如果需要能够针对用例检测某些语言,请在 选项中包含 expectedInputLanguages 它们。 这允许Microsoft Edge 根据需要下载其他资源,以提高准确性。 语言代码应采用 BCP 47 格式, (例如 "en" 英语、 "es" 西班牙语或 "fr" 法语) 。 |
monitor |
用于监视模型下载进度的函数。 请参阅 下面的监视模型下载进度 (监视) 。 |
监视模型下载 (monitor) 的进度
可以使用 选项跟踪模型下载 monitor 进度。 当模型尚未完全下载到要使用的设备上时,这将非常有用,以通知网站用户他们应该等待。
// Create a Language Detector session with the monitor option to monitor the
// model download.
const session = await LanguageDetector.create({
monitor: m => {
// Use the monitor object argument to add a listener for the
// downloadprogress event.
m.addEventListener("downloadprogress", event => {
// The event is an object with the loaded and total properties.
if (event.loaded == event.total) {
// The model is fully downloaded.
} else {
// The model is still downloading.
const percentageComplete = (event.loaded / event.total) * 100;
}
});
}
});
运行语言检测器 API (detect())
创建模型会话后,可以检测文本的语言。 语言检测器 API 提供 detect() 检测语言的方法:
// Create a Language Detector session.
const session = await LanguageDetector.create();
// Detect the language of the text.
const results = await session.detect(someUserText);
// Use the results.
for (const result of results) {
// Show the full list of potential languages with their likelihood, ranked
// from most likely to least likely.
console.log(result.detectedLanguage, result.confidence);
}
方法 detect() 返回一个承诺,该承诺解析为语言检测结果数组。 每个结果都是具有以下属性的 对象:
| 属性 | 说明 |
|---|---|
detectedLanguage |
检测到的语言的 BCP 47 语言标记 (例如 "en" 英语、 "es" 西班牙语或 "und" 不确定) 。 |
confidence |
一个介于 0.0 和 1.0 之间的数字,指示检测的置信度。 值越高,则表示置信度越高。 |
结果按置信度按降序排序,最可能的语言排在第一位。 结果数组中的最后一个条目始终是 不确定 的语言 ("und") 。
undetermined数组中的 成员表示文本不采用模型所知道的任何语言的百分比置信度。
了解置信度分数
语言检测器 API 返回的置信度分数具有以下特征:
范围: 每个置信度分数都是介于 0 (最低置信度) 和 1 (最高置信度) (含)之间的数字。
已排序结果: 结果从最高置信度到最低置信度排序。
低置信度筛选: 将自动筛选出置信度很低的语言,以减少干扰。 低置信度 通常小于 1%,或低于“不确定”类别的置信度。
分数总和: 所有置信度分数的总和可能小于 1,因为结果中省略了低概率语言。
销毁会话 (destroy())
检测语言后,销毁会话。 这让浏览器知道你不再需要语言模型,因此可以从内存中卸载该模型。
可以通过两种不同的方式销毁会话:
- 通过使用
destroy()方法。 - 通过使用
AbortController。
详细信息如下所示。
通过调用销毁会话 destroy()
若要使用会话调用 destroy() 来销毁会话,请执行 LanguageDetector :
const session = await LanguageDetector.create();
// Later, destroy the session by using the destroy method.
session.destroy();
使用 销毁会话 AbortController
若要通过创建 AbortController 对象来销毁会话,请创建会话 LanguageDetector ,然后调用 abort():
// Create an AbortController object.
const controller = new AbortController();
// Create a Language Detector session and pass the
// AbortController object by using the signal option.
const session = await LanguageDetector.create({
signal: controller.signal
});
// Later, perhaps when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();
发送反馈
我们有兴趣了解:
- 你打算使用语言检测器 API 的方案范围。
- 使用 API 或语言检测模型时遇到的任何问题。
- 其他特定于任务的内置 API 是否有用。
若要发送有关方案和要实现的任务的反馈,请向 语言检测器 API 反馈问题添加注释。
如果在改用 API 时发现任何问题,请在存储库中报告。
还可以在 W3C Web 机器学习工作组存储库中参与有关语言检测器 API 设计的讨论。
另请参阅
获取 Microsoft Edge:
- 成为Microsoft Edge 预览体验成员 - 下载Microsoft Edge (Beta 版、开发人员版或 Canary) 的预览频道。
GitHub:
Azure文档:
演示存储库:
- 语言检测器 API 演练
- /built-in-ai/ - 内置 AI场演示的源代码和自述文件。