你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 JavaScript 的 Azure 文本分析客户端库 - 版本 1.1.0
适用于语言的 Azure 认知服务是一种基于云的服务,可针对原始文本提供高级自然语言处理,并包含以下main功能:
注意: 此 SDK 面向适用于语言 API 的 Azure 认知服务版本 2023-04-01。
- 语言检测
- 情绪分析
- 关键短语提取
- 命名实体识别
- 识别个人身份信息
- 实体链接
- 医疗保健分析
- 提取性摘要
- 抽象摘要
- 自定义实体识别
- 自定义文档分类
- 支持每个文档的多个操作
使用客户端库可以执行以下操作:
- 检测写入的语言输入文本。
- 通过分析原始文本以获取有关正面或负面情绪的线索,确定客户对你的品牌或主题的看法。
- 自动提取关键短语,以快速识别要点。
- 识别文本中的实体并将其分类为人员、地点、组织、日期/时间、数量、百分比、货币、医疗保健特定等。
- 一次执行多个上述任务。
关键链接:
从 @azure/ai-text-analytics 咨询⚠迁移 ️
有关如何将应用程序代码从 5.x 版 AI 文本分析客户端库更新到新的 AI 语言文本客户端库的详细说明,请参阅迁移指南。
新增功能
入门
目前支持的环境
- LTS 版本的 Node.js
- 最新版本的 Safari、Chrome、Edge 和 Firefox。
有关更多详细信息,请参阅我们的支持政策。
先决条件
如果使用 Azure CLI,请将 和 <your-resource-name>
替换为<your-resource-group-name>
自己的唯一名称:
az cognitiveservices account create --kind TextAnalytics --resource-group <your-resource-group-name> --name <your-resource-name> --sku <your-sku-name> --location <your-location>
安装 @azure/ai-language-text
包
使用 安装适用于 JavaScript 的 npm
Azure 文本分析客户端库:
npm install @azure/ai-language-text
创建 TextAnalysisClient
并对其进行身份验证
若要创建客户端对象来访问语言 API,需要 endpoint
语言资源的 和 credential
。 文本分析客户端可以使用 Azure Active Directory 凭据或 API 密钥凭据进行身份验证。
可以在 Azure 门户 或使用以下 Azure CLI 代码片段中找到语言资源的终结点:
az cognitiveservices account show --name <your-resource-name> --resource-group <your-resource-group-name> --query "properties.endpoint"
使用 API 密钥
使用 Azure 门户 浏览到语言资源并检索 API 密钥,或使用下面的 Azure CLI 代码片段:
注意: 有时,API 密钥称为“订阅密钥”或“订阅 API 密钥”。
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
拥有 API 密钥和终结点后,可以使用 AzureKeyCredential
类对客户端进行身份验证,如下所示:
const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-language-text");
const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));
使用 Azure Active Directory 凭据
大多数示例都使用客户端 API 密钥身份验证,但也可以使用 Azure 标识库通过 Azure Active Directory 进行身份验证。 若要使用如下所示的 DefaultAzureCredential 提供程序或 Azure SDK 随附的其他凭据提供程序,请安装 @azure/identity
包:
npm install @azure/identity
还需要通过向服务主体分配"Cognitive Services User"
角色来注册新的 AAD 应用程序并授予对语言的访问权限 (注意:其他角色(如)"Owner"
不会授予必要的权限,仅"Cognitive Services User"
足以) 运行示例和示例代码。
将 AAD 应用程序的客户端 ID、租户 ID 和客户端机密的值设置为环境变量: AZURE_CLIENT_ID
、 AZURE_TENANT_ID
、 AZURE_CLIENT_SECRET
。
const { TextAnalysisClient } = require("@azure/ai-language-text");
const { DefaultAzureCredential } = require("@azure/identity");
const client = new TextAnalysisClient("<endpoint>", new DefaultAzureCredential());
关键概念
TextAnalysisClient
TextAnalysisClient
是开发人员使用文本分析客户端库的主要接口。 浏览此客户端对象上的方法,了解可以访问的语言服务的不同功能。
输入
文档表示要由语言服务中的预测模型分析的单个输入单位。 上的 TextAnalysisClient
操作将输入集合作为批处理进行分析。 操作方法具有重载,允许输入表示为字符串或具有附加元数据的对象。
例如,每个文档都可以作为数组中的字符串传递,例如
const documents = [
"I hated the movie. It was so slow!",
"The movie made it into my top ten favorites.",
"What a great movie!",
];
或者,如果要传入每个项目的文档id
或 language
countryHint
/,可以将其作为 列表TextDocumentInput
提供,或DetectLanguageInput
取决于操作;
const textDocumentInputs = [
{ id: "1", language: "en", text: "I hated the movie. It was so slow!" },
{ id: "2", language: "en", text: "The movie made it into my top ten favorites." },
{ id: "3", language: "en", text: "What a great movie!" },
];
请参阅输入 的服务限制 ,包括文档长度限制、最大批大小和支持的文本编码。
返回值
对应于单个文档的返回值是成功结果或错误对象。 每个方法返回 TextAnalysisClient
一个异类数组,其中包含与按索引的输入对应的结果和错误。 文本输入及其结果在输入和结果集合中具有相同的索引。
结果(如 SentimentAnalysisResult
)是语言操作的结果,包含有关单个文本输入的预测。 操作的结果类型还可以选择性地包含有关输入文档及其处理方式的信息。
error 对象 TextAnalysisErrorResult
指示服务在处理文档时遇到错误,并包含有关错误的信息。
文档错误处理
在操作返回的集合中,如果遇到错误,则通过 属性的存在 error
将错误与成功响应区分开来。如果遇到错误,该属性包含内部 TextAnalysisError
对象。 对于成功的结果对象,此属性 始终undefined
为 。
例如,若要筛选出所有错误,可以使用以下 filter
代码:
const results = await client.analyze("SentimentAnalysis", documents);
const onlySuccessful = results.filter((result) => result.error === undefined);
注意:如果在配置中tsconfig.json
将 true
设置为 ,TypeScript compilerOptions.strictNullChecks
用户可以受益于结果和错误对象的更好类型检查。 例如:
const [result] = await client.analyze("SentimentAnalysis", ["Hello world!"]);
if (result.error !== undefined) {
// In this if block, TypeScript will be sure that the type of `result` is
// `TextAnalysisError` if compilerOptions.strictNullChecks is enabled in
// the tsconfig.json
console.log(result.error);
}
示例
客户端使用情况
预生成任务
自定义任务
疑难解答
日志记录
启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL
环境变量设置为 info
。 或者,可以在运行时通过调用 @azure/logger
中的 setLogLevel
来启用日志记录:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
有关如何启用日志的更详细说明,请查看 @azure/logger 包文档。
后续步骤
请查看 示例 目录,获取有关如何使用此库的详细示例。
贡献
若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。