使用命名实体识别 (NER) 和 Power Automate 在 Excel 中提取信息

本教程将创建 Power Automate 流,以便在 Excel 电子表格中提取文本,而无需编写代码。

此流将获取有关公寓大楼的问题的电子表格,并将其分为两个类别:管道和其他。 它还将提取发送问题的租户的姓名和电话号码。 最后,此流将此信息附加到 Excel 工作表。

在本教程中,你将学习如何执行以下操作:

  • 使用 Power Automate 创建流
  • 从 OneDrive for Business 上传 Excel 数据
  • 从 Excel 中提取文本,并将其发送以进行命名实体识别 (NER)
  • 使用 API 中的信息更新 Excel 工作表。

先决条件

将 Excel 文件复制到 OneDrive for Business

GitHub 下载示例 Excel 文件。 此文件必须存储在 OneDrive for Business 帐户。

Examples from the Excel file

问题以原始文本报告。 我们将使用 NER 功能提取人员姓名和电话号码。 然后该流将在描述中查找“管道”一词,以对问题进行分类。

创建新的 Power Automate 工作流

转到 Power Automate 站点并登录。 然后,选择“创建”和“计划的流”。

The workflow creation screen

在“生成计划的云流”页上,使用以下字段初始化你的流:

字段
流名称 计划的审查或其他名称。
正在启动 输入当前日期和时间。
重复间隔 1 小时

向流添加变量

创建表示将添加到 Excel 文件的信息的变量。 选择“新建步骤”并搜索“初始化变量”。 执行此操作四次,创建四个变量。

The step for initializing variables

将以下信息添加到创建的变量中。 它们表示 Excel 文件的列。 如果任何变量已折叠,可以选择它们将其展开。

操作 名称 类型
初始化变量 var_person 字符串 人员
初始化变量 2 var_phone 字符串 电话号码
初始化变量 3 var_plumbing 字符串 管道
初始化变量 4 var_other 字符串 其他

information contained in the flow variables

读取 Excel 文件

选择“新建步骤”,键入“Excel”,然后从操作列表中选择“列出表中显示的行”。

Add excel rows into the flow

通过填写此操作中的字段,将 Excel 文件添加到流。 本教程要求文件已上传到 OneDrive for Business。

Fill the excel rows in the flow

选择“新建步骤”,添加“应用到每一个”操作。

Add an apply to each action

选择“从先前的步骤中选择一个输出”。 在显示的动态内容框中选择“值”。

select output from the excel file

发送实体识别的请求

如果尚未创建语言资源,则需要在 Azure 门户中创建语言资源

创建语言服务连接

在“应用到每一个”中,选择“添加操作”。 在 Azure 门户中,转到语言资源的“密钥和终结点”页,获取语言资源的密钥和终结点。

在你的流中,输入以下信息以创建新的语言连接。

注意

如果已创建语言连接并想要更改连接详细信息,请选择右上角的省略号,然后选择“+ 添加新连接”。

字段
连接名称 与语言资源的连接的名称。 例如 TAforPowerAutomate
帐户密钥 语言资源的密钥。
站点 URL 语言资源的终结点。

Add Language resource credentials to the flow

提取 Excel 内容

创建连接后,搜索“文本分析”并选择“命名实体识别”。 这将从问题的说明列中提取信息。

Extract the entities from the Excel sheet

选择“文本”字段,然后从显示的“动态内容”窗口中选择“说明”。 输入 en 作为语言,并输入唯一名称作为文档 ID(可能需要选择“显示高级选项”)。

Get the description column text from the Excel sheet

在“应用到每一个”中选择“添加操作”,然后再创建一个“应用到每一个”操作。 在文本框内进行选择,然后在出现的“动态内容”窗口中选择“文档”。

Create another apply to each action.

提取人名

接下来,我们将在 NER 输出中找到人员实体类型。 在“应用到每一个 2”中选择“添加操作”,然后再创建一个“应用到每一个”操作。 在文本框内进行选择,然后在出现的“动态内容”窗口中选择“实体”。

Find the person entity in the NER output

在新创建的“应用到每一个 3”操作中,选择“添加操作”并添加“条件”控件。

Add a condition control to the Apply to each 3 action

在“条件”窗口中,选择第一个文本框。 在“动态内容”窗口中搜索“类别”并选择它。

Add the category to the control condition

确保第二个框设为“等于”。 然后选择第三个框,并在“动态内容”窗口中搜索 var_person

Add the person variable

在“如果是”条件中,在 Excel 中键入并选择“更新行”。

Update the yes condition

输入 Excel 信息,更新“键列”、“键值”和“PersonName”字段。 这将 API 检测到的名字附加到 Excel 工作表。

Add the excel information

获取电话号码

通过单击名称,最小化“应用到每一个 3”操作。 然后,像之前一样,向“应用到每一个 2”添加另一个“应用到每一个”操作。 它将被命名为“应用到每一个 4”。 选择文本框,并添加“实体”作为此操作的输出。

Add the entities from the NER output to another apply to each action.

在“应用到每一个 4”中添加“条件”控件。 它将命名为“条件 2”。 从第一个文本框的“动态内容”窗口中搜索并添加“类别”。 确保第中间框设为“等于”。 然后在右侧文本框中输入 var_phone

Add a second condition control

在“如果是”条件中添加“更新行”操作。 然后像之前那样输入 Excel 工作表电话号码列的信息。 这将 API 检测到的电话号码附加到 Excel 工作表。

Add the excel information to the second if yes condition

获取管道问题

通过单击名称,最小化“应用到每一个 4”操作。 然后在父操作中创建另一个“应用到每一个”操作。 选择文本框,从“动态内容”窗口添加“实体”作为此操作的输出。

Create another apply to each action

接下来,流将检查 Excel 表行中的问题说明是否包含“管道”一词。 如果是,它将在“问题类型”列中添加“管道”。 如果不是,我们将输入“其他”。

在“应用到每一个 4”操作中添加“条件”控件 。 它将命名为“条件 3”。 在第一个文本框中,使用“动态内容”窗口搜索并添加 Excel 文件中的“说明”。 确保中间框显示“包含”。 然后在右侧文本框中查找并选择 var_plumbing

Create a new condition control

在“如果是”条件中选择“添加操作”,然后选择“更新行”。 然后像之前那样输入信息。 在“问题类型”列中选择 var_plumbing。 这将向行应用“管道”标签。

在“如果否”条件中选择“添加操作”,然后选择“更新行”。 然后像之前那样输入信息。 在“问题类型”列中选择 var_other。 这将向行应用“其他”标签。

Add information to both conditions

测试工作流

在屏幕右上角,依次选择“保存”和“测试”。 在“测试流”下,选择“手动”。 然后,选择“测试”和“运行流”。

Excel 文件将在 OneDrive 帐户中更新。 它看起来如下。

Test the workflow and view the output

后续步骤