你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:自定义情绪分析(预览版)
[[NOTE] 自定义情绪分析(预览版)将于 2025 年 1 月 10 日停用,请在此日期前迁移到其他自定义模型训练服务,例如 Azure AI 语言中的自定义文本分类。 从现在到 2025 年 1 月 10 日,可以在现有项目中继续使用自定义情绪分析(预览版),而不会中断。 你无法创建新项目。 2025 年 1 月 10 日 - 在自定义情绪分析(预览版)上运行的工作负荷将被删除,关联的项目数据将丢失。
使用本文开始创建自定义情绪分析项目,在该项目中可以训练用于检测文本情绪的自定义模型。 模型是经过训练可以完成特定任务的人工智能软件。 对于此系统,模型将对文本进行分类,并通过从标记数据中学习来进行训练。
先决条件
- Azure 订阅 - 免费创建订阅。
创建新的 Azure 语言资源和 Azure 存储帐户
在可以使用自定义情绪分析之前,需要创建 Azure 语言资源,该资源将提供创建项目和开始训练模型所需的凭据。 此外,还需要一个 Azure 存储帐户,使用该帐户,可以上传将用于生成模型的数据集。
重要
若要快速开始,建议使用本文中提供的步骤新建 Azure 语言资源。 使用本文中的步骤可同时创建语言资源和存储帐户,这比以后再做更容易。
从 Azure 门户创建新资源
要创建新的 Azure AI 语言资源,请转到 Azure 门户。
在出现的窗口中,请从自定义功能中选择此服务。 单击屏幕底部的“继续创建资源”。
创建包含以下详细信息的语言资源。
名称 说明 订阅 Azure 订阅。 资源组 将包含资源的资源组。 可以使用现有资源组,也可以新建一个。 区域 语言资源的区域。 例如,“美国西部 2”。 名称 资源的名称。 定价层 语言资源的定价层。 可以使用免费 (F0) 定价层试用该服务。 注意
如果收到一条消息“登录帐户不是所选存储帐户资源组的所有者”,则帐户需要在资源组上分配一个所有者角色,然后才能创建语言资源。 请联系 Azure 订阅所有者寻求帮助。
在此服务的部分,选择现有存储帐户或选择“新建存储帐户”。 这些值用于帮助你快速入门,不一定是你希望在生产环境中使用的存储帐户值。 为避免在生成项目时出现延迟,请连接到与语言资源位于同一区域的存储帐户。
存储帐户值 建议的值 存储帐户名称 任何名称 存储帐户类型 标准 LRS 确保选中“负责任的 AI 通知”。 在页面底部选择“查看 + 创建”,然后选择“创建”。
将示例数据上传到 Blob 容器
创建 Azure 存储帐户并将其连接到语言资源后,需要将示例数据集中的文档上传到容器的根目录。 稍后将使用这些文档来训练模型。
首先下载自定义情绪分析项目的示例数据集。 打开 .zip 文件,然后解压缩包含文档的文件夹。 所提供的示例数据集包含文档,每个文档都是客户评论的简短示例。
找到要上传到存储帐户的文件
在 Azure 门户中,导航到你创建的存储帐户,然后选择它。
在存储帐户中,从位于“数据存储”下方的左侧菜单中选择“容器”。 在出现的屏幕上,选择“+ 容器”。 将容器命名为“example-data”并保留默认的“公共访问级别”。
创建容器后,选择该容器。 然后选择“上传”按钮以选择之前下载的
.txt
和.json
文件。
创建自定义情绪分析项目
配置好资源和存储容器后,创建新的自定义情绪分析项目。 项目是一个基于数据构建自定义 ML 模型的工作区。 只有你和对所使用的语言资源具有访问权限的其他人才能访问你的项目。
登录到 Language Studio。 随即将出现一个窗口,供你选择订阅和语言资源。 选择在上一步中创建的语言资源。
选择要在 Language Studio 中使用的功能。
从项目页的顶部菜单中选择“创建新项目”。 创建项目后,可以标记数据,训练、评估、改进和部署模型。
输入项目信息,包括名称、说明和项目中文件的语言。 如果使用示例数据集,请选择“英语”。 以后无法更改项目名称。 选择“下一步”
提示
你的数据集无须完全使用同一语言。 你可以有多个文档,每个文档都支持不同的语言。 如果数据集包含不同语言的文档,或者你在运行时需要不同语言的文本,请在输入项目基本信息时选择“启用多语言数据集”选项。 稍后可以从“项目设置”页面启用此选项。
选择“创建新项目”后,将会显示用于连接存储帐户的屏幕。 如果已连接了存储帐户,将看到该存储帐户已连接。 如果未显示,请从显示的下拉列表中选择你的存储帐户,然后选择“连接存储帐户”;这将为你的存储帐户设置所需的角色。 如果你没有被指定为存储帐户的“所有者”,此步骤可能会返回错误。
注意
- 只需为使用的每个新资源执行一次此步骤。
- 此过程是不可逆的,如果将一个存储帐户连接到你的语言资源,以后将无法断开其连接。
- 只能将你的语言资源连接到一个存储帐户。
选择你上传数据集的容器。
如果已标记数据,请确保它遵循支持的格式,并选择“是,我的文件已标记,并且我已设置 JSON 标签文件的格式”,然后从下拉菜单中选择标签文件。 选择“下一页”。 如果你使用的是快速入门中的数据集,则无需查看 JSON 标签文件的格式设置。
查看输入的数据,并选择“创建项目”。
训练模型
通常在创建项目后,便会开始标记连接到项目的容器中的文档。 对于本快速入门,你已导入已标记数据集示例并使用 JSON 标签文件示例对项目进行了初始化。
若要在 Language Studio 中开始训练模型,请执行以下操作:
在左侧菜单中,选择“训练作业”。
从顶部菜单中选择“启动训练作业”。
然后选择“训练新模型”并在文本框中键入模型名称。 还可以通过选择“覆盖现有模型”选项并从下拉菜单中选择要覆盖的模型来覆盖现有模型。 覆盖已训练的模型是不可逆的,但这在部署新模型之前不会影响已部署的模型。
默认情况下,系统会根据指定的百分比在训练集和测试集之间拆分标记的数据。 如果测试集中包含文档,则可以手动拆分训练数据和测试数据。
选择“训练”按钮。
如果从列表中选择训练作业 ID,则会显示一个侧窗格,可在其中检查此作业的“训练进度”、“作业状态”和其他详细信息。
注意
- 只有成功完成的训练作业才会生成模型。
- 训练可能需要几分钟到几个小时,具体取决于已标记数据的大小。
- 一次只能运行一个训练作业。 在运行的作业完成之前,无法在同一项目中启动其他训练作业。
部署模型
通常,训练模型后,你会查看其评估详细信息,并在必要时进行改进。 在本快速入门中,你只需部署模型,使其在 Language Studio 中可供试用,你也可以调用预测 API。
若要要从 Language Studio 中部署模型,请执行以下操作:
在左侧菜单中,选择“部署模型”。
选择“添加部署”,以开始新部署作业。
选择“创建新部署”以创建新的部署,并从下面的下拉列表中分配已训练的模型。 还可以通过选择“覆盖现有部署”选项来覆盖现有部署,然后从下面的下拉列表中选择要为其分配的已训练的模型。
注意
覆盖现有部署不需要更改预测 API 调用,但产生的结果将基于新分配的模型。
选择“部署”以启动部署作业。
部署成功后,旁边将显示到期日期。 部署到期是指已部署的模型将无法用于预测,这通常发生在训练配置到期后的 12 个月。
测试模型
部署模型后,可以开始使用模型通过预测 API 对文本进行分类。 为了快速入门,将使用 Language Studio 提交自定义情绪分析任务并可视化结果。 在之前下载的示例数据集中,可以找到一些可在此步骤中使用的测试文档。
若要在 Language Studio 中测试已部署的模型,请执行以下操作:
在左侧菜单中,选择“测试部署”。
选择要测试的部署。 只能测试分配给部署的模型。
对于多语言项目,请从语言下拉列表中选择要测试的文本的语言。
从下拉列表中选择要查询/测试的部署。
可以输入要提交到请求的文本,或上传要使用的
.txt
文件。选择顶部菜单中的“运行测试”。
在“结果”选项卡中,可以看到从文本中提取的实体及其类型。 还可以在“JSON”选项卡下查看 JSON 响应。
清理项目
如果不再需要项目,可以使用 Language Studio 删除项目。 在顶部选择你正在使用的功能,然后选择要删除的项目。 选择顶部菜单中的“删除”以删除项目。
先决条件
- Azure 订阅 - 免费创建订阅。
创建新的 Azure 语言资源和 Azure 存储帐户
在可以使用自定义情绪分析之前,需要创建 Azure 语言资源,该资源将提供创建项目和开始训练模型所需的凭据。 此外,还需要一个 Azure 存储帐户,你在该帐户中可以上传要用于生成模型的数据集。
重要
若要快速开始,建议使用本文提供的步骤创建新的 Azure 语言资源,这些步骤让你可以在创建语言资源的同时创建并/或连接存储帐户,这比以后再执行该操作要更容易。
从 Azure 门户创建新资源
要创建新的 Azure AI 语言资源,请转到 Azure 门户。
在出现的窗口中,请从自定义功能中选择此服务。 单击屏幕底部的“继续创建资源”。
创建包含以下详细信息的语言资源。
名称 说明 订阅 Azure 订阅。 资源组 将包含资源的资源组。 可以使用现有资源组,也可以新建一个。 区域 语言资源的区域。 例如,“美国西部 2”。 名称 资源的名称。 定价层 语言资源的定价层。 可以使用免费 (F0) 定价层试用该服务。 注意
如果收到一条消息“登录帐户不是所选存储帐户资源组的所有者”,则帐户需要在资源组上分配一个所有者角色,然后才能创建语言资源。 请联系 Azure 订阅所有者寻求帮助。
在此服务的部分,选择现有存储帐户或选择“新建存储帐户”。 这些值用于帮助你快速入门,不一定是你希望在生产环境中使用的存储帐户值。 为避免在生成项目时出现延迟,请连接到与语言资源位于同一区域的存储帐户。
存储帐户值 建议的值 存储帐户名称 任何名称 存储帐户类型 标准 LRS 确保选中“负责任的 AI 通知”。 在页面底部选择“查看 + 创建”,然后选择“创建”。
将示例数据上传到 Blob 容器
创建 Azure 存储帐户并将其连接到语言资源后,需要将示例数据集中的文档上传到容器的根目录。 稍后将使用这些文档来训练模型。
首先下载自定义情绪分析项目的示例数据集。 打开 .zip 文件,然后解压缩包含文档的文件夹。 所提供的示例数据集包含文档,每个文档都是客户评论的简短示例。
找到要上传到存储帐户的文件
在 Azure 门户中,导航到你创建的存储帐户,然后选择它。
在存储帐户中,从位于“数据存储”下方的左侧菜单中选择“容器”。 在出现的屏幕上,选择“+ 容器”。 将容器命名为“example-data”并保留默认的“公共访问级别”。
创建容器后,选择该容器。 然后选择“上传”按钮以选择之前下载的
.txt
和.json
文件。
获取密钥和终结点
然后需要从资源获取密钥和终结点,以便将应用程序连接到 API。 稍后需要在本快速入门中将密钥和终结点粘贴到代码中。
创建自定义情绪分析项目
配置好资源和存储容器后,创建新的自定义情绪分析项目。 项目是一个基于数据构建自定义 ML 模型的工作区。 只有你和对所使用的语言资源具有访问权限的其他人才能访问你的项目。
触发导入项目作业
使用以下 URL、标头和 JSON 正文提交 POST 请求,以导入标签文件。
如果已存在同名的项目,则替换该项目的数据。
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
资源密钥。 用于对 API 请求进行身份验证。 |
Body
在请求中使用以下 JSON。 请将以下占位符值替换为你自己的值。
{
"projectFileVersion": "2023-04-15-preview",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "CustomTextSentiment",
"storageInputContainerName": "text-sentiment",
"projectName": "TestSentiment",
"multilingual": false,
"description": "This is a Custom sentiment analysis project.",
"language": "en-us"
},
"assets": {
"projectKind": "CustomTextSentiment",
"documents": [
{
"location": "documents/document_1.txt",
"language": "en-us",
"sentimentSpans": [
{
"category": "negative",
"offset": 0,
"length": 28
}
]
},
{
"location": "documents/document_2.txt",
"language": "en-us",
"sentimentSpans": [
{
"category": "negative",
"offset": 0,
"length": 24
}
]
},
{
"location": "documents/document_3.txt",
"language": "en-us",
"sentimentSpans": [
{
"category": "neutral",
"offset": 0,
"length": 18
}
]
}
]
}
}
密钥 | 占位符 | 值 | 示例 |
---|---|---|---|
api-version | {API-VERSION} |
要调用的 API 版本。 此处使用的版本必须与 URL 中的 API 版本相同。 详细了解其他可用的 API 版本 | 2023-04-15-preview |
projectName | {PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
projectKind | CustomTextSentiment |
项目类型。 | CustomTextSentiment |
语言 | {LANGUAGE-CODE} |
一个字符串,用于指定项目中使用的文档的语言代码。 如果项目是多语言项目,请选择大多数文档的语言代码。 请参阅语言支持,了解有关多语言支持的详细信息。 | en-us |
多语言 | true |
布尔值,能够在数据集中拥有多种语言的文档,并且在部署模型时,可以用任何支持的语言查询模型,而不一定包含在训练文档中。 请参阅语言支持,了解有关多语言支持的详细信息。 | true |
storageInputContainerName | {CONTAINER-NAME} |
上传文档的 Azure 存储容器的名称。 | myContainer |
文档 | [] | 包含项目中所有文档以及为此文档标记类的数组。 | [] |
location | {DOCUMENT-NAME} |
存储容器中文档的位置。 由于所有文档都位于容器的根目录中,因此这应为文档名称。 | doc1.txt |
sentimentSpans | {sentimentSpans} |
文档的情绪(积极、中立、消极)、情绪开始的位置及其长度。 | [] |
发送 API 请求后,你将收到 202
响应,这表明作业已正确提交。 在响应头中,提取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID}
用于标识请求,因为此操作是异步操作。 你将使用此 URL 获取导入作业状态。
此请求可能出现的错误情况:
- 指定的
storageInputContainerName
不存在。 - 使用了无效的语言代码,或者语言代码类型不是字符串。
multilingual
值是一个字符串,而不是布尔值。
获取导入作业状态
使用以下 GET 请求获取导入项目的状态。 请将以下占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{JOB-ID} |
用于查找模型训练状态的 ID。 该值包含在上一步骤中收到的 location 标头值中。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
资源密钥。 用于对 API 请求进行身份验证。 |
训练模型
通常在创建项目后,开始标记连接到项目的容器中的文档。 对于本快速入门,你已导入示例标记数据集并使用示例 JSON 标记文件对项目进行初始化。
开始训练模型
导入项目后,就可以开始训练模型了。
使用以下 URL、标头和 JSON 正文提交 POST 请求以提交训练作业。 将占位符值替换为你自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
资源密钥。 用于对 API 请求进行身份验证。 |
请求正文
在请求正文中使用以下 JSON。 完成训练后,该模型将被命名为 {MODEL-NAME}
。 只有成功的训练作业才会生成模型。
{
"modelLabel": "{MODEL-NAME}",
"trainingConfigVersion": "{CONFIG-VERSION}",
"evaluationOptions": {
"kind": "percentage",
"trainingSplitPercentage": 80,
"testingSplitPercentage": 20
}
}
密钥 | 占位符 | 值 | 示例 |
---|---|---|---|
modelLabel | {MODEL-NAME} |
成功训练后将分配给模型的模型名称。 | myModel |
trainingConfigVersion | {CONFIG-VERSION} |
这是用于训练模型的模型版本。 | 2023-04-15-preview |
evaluationOptions | 用于将数据拆分为训练集和测试集的选项。 | {} |
|
kind | percentage |
拆分方法。 可能的值为 percentage 或 manual 。 |
percentage |
trainingSplitPercentage | 80 |
要包含在训练集中的已标记数据的百分比。 建议的值为 80 。 |
80 |
testingSplitPercentage | 20 |
要包含在测试集中的已标记数据的百分比。 建议的值为 20 。 |
20 |
注意
仅当 Kind
设置为 percentage
时 trainingSplitPercentage
和 testingSplitPercentage
才是必需的,并且两个百分比的总和应等于 100。
发送 API 请求后,你将收到 202
响应,这表明作业已正确提交。 在响应头中,提取 location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID} 用于标识请求,因为此操作是异步操作。 可以使用此 URL 获取训练状态。
获取训练作业状态
训练可能需要 10 到 30 分钟。 可以使用以下请求继续轮询训练作业的状态,直到训练成功完成。
使用以下 GET 请求来获取模型在训练过程中的状态。 将占位符值替换为你自己的值。
请求 URL
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{JOB-ID} |
用于查找模型训练状态的 ID。 该值包含在上一步骤中收到的 location 标头值中。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 请参阅模型生命周期,了解有关其他可用 API 版本的详细信息。 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
资源密钥。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,你将获得以下响应。
{
"result": {
"modelLabel": "{MODEL-NAME}",
"trainingConfigVersion": "{CONFIG-VERSION}",
"estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
"trainingStatus": {
"percentComplete": 3,
"startDateTime": "2022-04-18T15:45:06.8190649Z",
"status": "running"
},
"evaluationStatus": {
"percentComplete": 0,
"status": "notStarted"
}
},
"jobId": "{JOB-ID}",
"createdDateTime": "2022-04-18T15:44:44Z",
"lastUpdatedDateTime": "2022-04-18T15:45:48Z",
"expirationDateTime": "2022-04-25T15:44:44Z",
"status": "running"
}
部署模型
通常,训练模型后,你会查看其评估详细信息,并在必要时进行改进。 在本快速入门中,你只需部署模型,使其在 Language Studio 中可供试用,你也可以调用预测 API。
提交部署作业
使用以下 URL、标头和 JSON 正文提交 PUT 请求,以提交部署作业。 将占位符值替换为你自己的值。
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{DEPLOYMENT-NAME} |
部署的名称。 此值区分大小写。 | staging |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 请参阅模型生命周期,了解有关其他可用 API 版本的详细信息。 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
资源密钥。 用于对 API 请求进行身份验证。 |
请求正文
在请求正文中使用以下 JSON。 使用要分配给部署的模型名称。
{
"trainedModelLabel": "{MODEL-NAME}"
}
密钥 | 占位符 | 值 | 示例 |
---|---|---|---|
trainedModelLabel | {MODEL-NAME} |
将要分配给部署的模型名称。 只能分配已成功训练的模型。 此值区分大小写。 | myModel |
发送 API 请求后,你将收到 202
响应,这表明作业已正确提交。 在响应头中,提取 operation-location
值。 其格式如下:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID}
用于标识请求,因为此操作是异步操作。 你可使用此 URL 获取部署状态。
获取部署作业状态
使用以下 GET 请求来查询部署作业的状态。 可以使用在上一步中收到的 URL,或者将占位符值替换为自己的值。
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{DEPLOYMENT-NAME} |
部署的名称。 此值区分大小写。 | staging |
{JOB-ID} |
用于查找模型训练状态的 ID。 这是在上一步骤中收到的 location 标头值。 |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 请参阅模型生命周期,了解有关其他可用 API 版本的详细信息。 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 值 |
---|---|
Ocp-Apim-Subscription-Key |
资源密钥。 用于对 API 请求进行身份验证。 |
响应正文
发送请求后,你将获取以下响应。 继续轮询此终结点,直到“状态”参数变为“已成功”。 应获取一个 200
代码来指示请求的成功。
{
"jobId":"{JOB-ID}",
"createdDateTime":"{CREATED-TIME}",
"lastUpdatedDateTime":"{UPDATED-TIME}",
"expirationDateTime":"{EXPIRATION-TIME}",
"status":"running"
}
对文本进行分类
成功部署模型后,可以开始使用模型通过预测 API 对文本进行分类。 在之前下载的示例数据集中,可以找到一些可在此步骤中使用的测试文档。
提交自定义情绪分析任务
使用此 POST 请求启动文本分类任务。
{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 | 2023-04-15-preview |
头文件
键 | 价值 |
---|---|
Ocp-Apim-Subscription-Key | 你的密钥,用于提供对此 API 的访问权限。 |
Body
{
"displayName": "Detecting sentiment",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "{LANGUAGE-CODE}",
"text": "Text1"
},
{
"id": "2",
"language": "{LANGUAGE-CODE}",
"text": "Text2"
}
]
},
"tasks": [
{
"kind": "CustomTextSentiment",
"taskName": "Sentiment analysis",
"parameters": {
"projectName": "{PROJECT-NAME}",
"deploymentName": "{DEPLOYMENT-NAME}"
}
}
]
}
键 | 占位符 | 值 | 示例 |
---|---|---|---|
displayName |
{JOB-NAME} |
作业名称。 | MyJobName |
documents |
[{},{}] | 要对其运行任务的文档列表。 | [{},{}] |
id |
{DOC-ID} |
文档名称或 ID。 | doc1 |
language |
{LANGUAGE-CODE} |
指定文档语言代码的字符串。 如果未指定此密钥,该服务将假定在项目创建时选择项目的默认语言。 | en-us |
text |
{DOC-TEXT} |
要对其运行任务的文档任务。 | Lorem ipsum dolor sit amet |
tasks |
要执行的任务列表。 | [] |
|
taskName |
CustomTextSentiment |
任务名称 | CustomTextSentiment |
parameters |
要传递给任务的参数列表。 | ||
project-name |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
deployment-name |
{DEPLOYMENT-NAME} |
部署的名称。 此值区分大小写。 | prod |
响应
你将收到 202 响应,它指示任务已成功提交。 在响应头中,提取 operation-location
。
operation-location
的格式如下:
{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
可以使用此 URL 查询任务完成状态,并在任务完成时获取结果。
获取任务结果
使用以下 GET 请求查询自定义实体识别任务的状态/结果。
{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 | 2023-04-15-preview |
头文件
键 | 价值 |
---|---|
Ocp-Apim-Subscription-Key | 你的密钥,用于提供对此 API 的访问权限。 |
响应正文
响应是具有以下参数的 JSON 文档
{
"createdDateTime": "2021-05-19T14:32:25.578Z",
"displayName": "MyJobName",
"expirationDateTime": "2021-05-19T14:32:25.578Z",
"jobId": "xxxx-xxxx-xxxxx-xxxxx",
"lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
"status": "succeeded",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "EntityRecognitionLROResults",
"taskName": "Recognize Entities",
"lastUpdateDateTime": "2020-10-01T15:01:03Z",
"status": "succeeded",
"results": {
"documents": [
{
"entities": [
{
"category": "Event",
"confidenceScore": 0.61,
"length": 4,
"offset": 18,
"text": "trip"
},
{
"category": "Location",
"confidenceScore": 0.82,
"length": 7,
"offset": 26,
"subcategory": "GPE",
"text": "Seattle"
},
{
"category": "DateTime",
"confidenceScore": 0.8,
"length": 9,
"offset": 34,
"subcategory": "DateRange",
"text": "last week"
}
],
"id": "1",
"warnings": []
}
],
"errors": [],
"modelVersion": "2020-04-01"
}
}
]
}
}
清理资源
不再需要项目时,可以使用以下 DELETE 请求将其删除。 将占位符值替换为你自己的值。
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
占位符 | 值 | 示例 |
---|---|---|
{ENDPOINT} |
用于对 API 请求进行身份验证的终结点。 | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
项目名称。 此值区分大小写。 | myProject |
{API-VERSION} |
要调用的 API 版本。 此处引用的值适用于最新发布的版本。 详细了解其他可用的 API 版本 | 2023-04-15-preview |
头文件
使用以下标头对请求进行身份验证。
键 | 价值 |
---|---|
Ocp-Apim-Subscription-Key | 资源密钥。 用于对 API 请求进行身份验证。 |
发送 API 请求后,将收到指示成功的 202
响应,这表示项目已删除。 带有用于检查作业状态的 Operation-Location
标头的成功调用结果。
后续步骤
创建自定义情绪分析模型后,可以:
开始创建自己的自定义情绪分析项目时,请使用操作指南文章来更详细地了解有关开发模型的更多信息: