使用命名实体识别 (NER) 和 Power Automate 在 Excel 中提取信息
本教程将创建 Power Automate 流,以便在 Excel 电子表格中提取文本,而无需编写代码。
此流将获取有关公寓大楼的问题的电子表格,并将其分为两个类别:管道和其他。 它还将提取发送问题的租户的姓名和电话号码。 最后,此流将此信息附加到 Excel 工作表。
在本教程中,你将学习如何执行以下操作:
- 使用 Power Automate 创建流
- 从 OneDrive for Business 上传 Excel 数据
- 从 Excel 中提取文本,并将其发送以进行命名实体识别 (NER)
- 使用 API 中的信息更新 Excel 工作表。
先决条件
- 一个 Azure 帐户。 创建试用版或登录。
- 语言资源。 如果没有,可以在 Azure 门户中创建一个,并使用免费层完成本教程。
- 创建资源时为你生成的密钥和终结点。
- 包含租户问题的电子表格。 GitHub 上提供此教程的示例数据。
- Microsoft 365(包含 OneDrive for Business)。
将 Excel 文件复制到 OneDrive for Business
从 GitHub 下载示例 Excel 文件。 此文件必须存储在 OneDrive for Business 帐户。
问题以原始文本报告。 我们将使用 NER 功能提取人员姓名和电话号码。 然后该流将在描述中查找“管道”一词,以对问题进行分类。
创建新的 Power Automate 工作流
转到 Power Automate 站点并登录。 然后,选择“创建”和“计划的流”。
在“生成计划的云流”页上,使用以下字段初始化你的流:
字段 | 值 |
---|---|
流名称 | 计划的审查或其他名称。 |
正在启动 | 输入当前日期和时间。 |
重复间隔 | 1 小时 |
向流添加变量
创建表示将添加到 Excel 文件的信息的变量。 选择“新建步骤”并搜索“初始化变量”。 执行此操作四次,创建四个变量。
将以下信息添加到创建的变量中。 它们表示 Excel 文件的列。 如果任何变量已折叠,可以选择它们将其展开。
操作 | 名称 | 类型 | 值 |
---|---|---|---|
初始化变量 | var_person | 字符串 | 人员 |
初始化变量 2 | var_phone | 字符串 | 电话号码 |
初始化变量 3 | var_plumbing | 字符串 | 管道 |
初始化变量 4 | var_other | 字符串 | 其他 |
读取 Excel 文件
选择“新建步骤”,键入“Excel”,然后从操作列表中选择“列出表中显示的行”。
通过填写此操作中的字段,将 Excel 文件添加到流。 本教程要求文件已上传到 OneDrive for Business。
选择“新建步骤”,添加“应用到每一个”操作。
选择“从先前的步骤中选择一个输出”。 在显示的动态内容框中选择“值”。
发送实体识别的请求
如果尚未创建语言资源,则需要在 Azure 门户中创建语言资源。
创建语言服务连接
在“应用到每一个”中,选择“添加操作”。 在 Azure 门户中,转到语言资源的“密钥和终结点”页,获取语言资源的密钥和终结点。
在你的流中,输入以下信息以创建新的语言连接。
注意
如果已创建语言连接并想要更改连接详细信息,请选择右上角的省略号,然后选择“+ 添加新连接”。
字段 | 值 |
---|---|
连接名称 | 与语言资源的连接的名称。 例如 TAforPowerAutomate 。 |
帐户密钥 | 语言资源的密钥。 |
站点 URL | 语言资源的终结点。 |
提取 Excel 内容
创建连接后,搜索“文本分析”并选择“命名实体识别”。 这将从问题的说明列中提取信息。
选择“文本”字段,然后从显示的“动态内容”窗口中选择“说明”。 输入 en
作为语言,并输入唯一名称作为文档 ID(可能需要选择“显示高级选项”)。
在“应用到每一个”中选择“添加操作”,然后再创建一个“应用到每一个”操作。 在文本框内进行选择,然后在出现的“动态内容”窗口中选择“文档”。
提取人名
接下来,我们将在 NER 输出中找到人员实体类型。 在“应用到每一个 2”中选择“添加操作”,然后再创建一个“应用到每一个”操作。 在文本框内进行选择,然后在出现的“动态内容”窗口中选择“实体”。
在新创建的“应用到每一个 3”操作中,选择“添加操作”并添加“条件”控件。
在“条件”窗口中,选择第一个文本框。 在“动态内容”窗口中搜索“类别”并选择它。
确保第二个框设为“等于”。 然后选择第三个框,并在“动态内容”窗口中搜索 var_person
。
在“如果是”条件中,在 Excel 中键入并选择“更新行”。
输入 Excel 信息,更新“键列”、“键值”和“PersonName”字段。 这将 API 检测到的名字附加到 Excel 工作表。
获取电话号码
通过单击名称,最小化“应用到每一个 3”操作。 然后,像之前一样,向“应用到每一个 2”添加另一个“应用到每一个”操作。 它将被命名为“应用到每一个 4”。 选择文本框,并添加“实体”作为此操作的输出。
在“应用到每一个 4”中添加“条件”控件。 它将命名为“条件 2”。 从第一个文本框的“动态内容”窗口中搜索并添加“类别”。 确保第中间框设为“等于”。 然后在右侧文本框中输入 var_phone
。
在“如果是”条件中添加“更新行”操作。 然后像之前那样输入 Excel 工作表电话号码列的信息。 这将 API 检测到的电话号码附加到 Excel 工作表。
获取管道问题
通过单击名称,最小化“应用到每一个 4”操作。 然后在父操作中创建另一个“应用到每一个”操作。 选择文本框,从“动态内容”窗口添加“实体”作为此操作的输出。
接下来,流将检查 Excel 表行中的问题说明是否包含“管道”一词。 如果是,它将在“问题类型”列中添加“管道”。 如果不是,我们将输入“其他”。
在“应用到每一个 4”操作中添加“条件”控件 。 它将命名为“条件 3”。 在第一个文本框中,使用“动态内容”窗口搜索并添加 Excel 文件中的“说明”。 确保中间框显示“包含”。 然后在右侧文本框中查找并选择 var_plumbing
。
在“如果是”条件中选择“添加操作”,然后选择“更新行”。 然后像之前那样输入信息。 在“问题类型”列中选择 var_plumbing
。 这将向行应用“管道”标签。
在“如果否”条件中选择“添加操作”,然后选择“更新行”。 然后像之前那样输入信息。 在“问题类型”列中选择 var_other
。 这将向行应用“其他”标签。
测试工作流
在屏幕右上角,依次选择“保存”和“测试”。 在“测试流”下,选择“手动”。 然后,选择“测试”和“运行流”。
Excel 文件将在 OneDrive 帐户中更新。 它看起来如下。