Skip to main content

Tool Icon 命名实体识别

使用“命名实体识别”工具来识别文本中的人物、位置和事物。该工具利用了 spaCy 软件包中的命名实体识别功能。您可以使用预定义实体集或您自己的自定义实体。

要求 Alteryx Intelligence Suite

此工具是 Alteryx Intelligence Suite 的一部分。Intelligence Suite 需要单独的许可证,并需要以 Designer 附加组件进行安装。安装 Designer 后,请安装 Intelligence Suite 并 开始您的免费试用

语言支持

“命名实体识别”工具支持英语、法语、德语、意大利语、葡萄牙语和西班牙语。

工具组件

命名实体识别工具有 4 个锚点。

  • D 输入锚点:将文本数据与要识别的实体关联。

  • E 输入锚点(可选):将数据与要识别的自定义实体关联。此数据必须包含要用于训练模型的自定义实体名称和标签。

  • D 输出锚点:输出新的数据列,这些列显示与数据中的实体相关的信息。

  • M 输出锚点:在下游输出模型对象,以便在新数据中使用。模型对象与 “预测”工具 兼容。

默认模型配置

配置工具

  1. 将该工具拖到画布上。

  2. D 输入锚点连接到包含要识别的实体的文本数据。

  3. 选择文本数据的 语言

  4. 选择 包含文本的列

  5. 运行 工作流。

默认英文实体列表

  • PERSON:虚构和非虚构人物。

  • NORP:民族、宗教或政治团体。

  • FAC:建筑物、机场、高速公路和桥梁等设施。

  • ORG:公司、机构和机关等组织机构。

  • GPE:国家/地区、城市和省份等地理实体。

  • LOC:山脉、水体和大陆等非 GPE 地点。

  • PRODUCT:车辆和食品等产品。不包括服务。

  • EVENT:有名字的飓风、战争和体育活动等事件。

  • WORK_OF_ART:书籍、歌曲和电影等艺术作品。

  • LAW:成为法律的有名字的文件。

  • LANGUAGE:有名字的语言。

  • DATE:日期实体。

  • TIME:时间实体,不超过一天。

  • PERCENT:百分比,包括“%”和文字“百分之”。

  • MONEY:货币价值,包括单位。

  • QUANTITY:高度、重量和距离等测量值。

  • ORDINAL:第一、第二和第三等序数实体。

  • CARDINAL:不属于其他数字类别的数字。

您可以在 spaCy  文档 中找到其他语言的默认实体列表。

自定义模型配置

如果要使用您自己的自定义实体来训练模型,请选择 使用新实体训练 。源内容必须包含每个自定义实体的至少 20 个实例。将您的自定义实体连接到 E 输入锚点。

自定义实体列表格式

您可以使用 “文本输入”工具 将您自己的自定义实体传递到 E 输入锚点。该工具使用您的实体列表来训练新模型。实体列表格式如以下几个示例所示:

实体

标签

雷司令

葡萄

白苏维浓

葡萄

黑比诺

葡萄

西拉

葡萄

赤霞珠

葡萄

配置工具

  1. 将该工具拖到画布上。

  2. D 输入锚点连接到包含要识别的实体的文本数据。

  3. E 输入锚点连接到自定义实体列表。

  4. 选择连接到 D 输入锚点的文本数据的 语言

  5. 从连接到 D 输入锚点的文本数据中选择 包含文本的列

  6. 选择 使用新实体进行训练

  7. 从连接到 E 输入锚点的自定义实体列表中选择 包含实体的列

  8. 从连接到 E 输入锚点的自定义实体列表中选择 包含标签的列

  9. 如果您希望模型 区分大小写 ,请选择此框。

  10. (可选)配置 训练模型 部分。有关详细信息,请参考以下部分。

  11. 运行 工作流。

训练模型

周期 (Epoch)

周期 (epoch) 是指训练集中所有数据通过神经网络完成一次(正反向)传递。周期与迭代相关,但不相同。迭代是指训练集的一个批次中所有的数据的单次传送。

增加周期的数量使模型对训练集进行更长时间的学习。但这样做会增加计算成本。

您可以增加周期的数量以帮助减少模型出现的错误。但到了一定程度,与增加的计算成本相比,减少的错误量可能不值得您这样做。此外,周期数量增加过多会导致过度拟合的问题,而周期数量不足则可能会导致拟合不足的问题。

该工具默认周期为 10。

早停法

早停法是一种告知迭代机器学习方法(如命名实体识别工具中使用的卷积神经网络)何时停止学习的方法。命名实体识别使用 F1 作为早停法的指标。

当模型存在过拟合问题时,使用早停法会有帮助。当模型通过记忆答案来学习,而不是识别数据中的潜在模式时,就会出现过拟合。您也可以使用早停法来避免该算法运行不必要的周期。

如果您担心模型可能会出现数据过拟合问题,或者额外的周期已无法改进模型,则可以使用早停法。

默认情况下,该工具使用早停法。

批次大小

批次(batch)是完整训练集的一个子集。

减小批次大小可以对在任何时间内通过神经网络的数据量进行分流。这样做可以避免训练模型时占据大量的内存,内存需求量将低于一次性将所有数据传递到神经网络的量。有时批量处理可加快训练速度。但将数据分成多个批次可能增加模型的错误。

如果您的机器无法一次性处理所有数据,或您希望减少训练时间,则可将数据进行分批。

该工具使用的默认批次为 32。

输出

D 输出锚点在输出中添加 2 个列:

  • entities:此列包含一个 JSON 输出,其中包含实体标记和描述的列表。

    • entity:模型找到的实体。

    • label:实体标签。

    • character_index:文本主体中单词的第一个字符的索引。索引从 0 开始。

    • word_index:文本主体中单词的索引。索引从 0 开始。

    • entity_length:实体的字符长度。

  • entity_diagram:此列包含您的文本,其中包含带有标签的实体,并可用用 浏览工具 查看。

M 输出锚点包含一个模型对象。您可以保存模型对象并通过预测工具将其用在新数据上。

如何解析 JSON 输出

为了将 JSON 输出转换成表格数据,请在这个示例流程中使用 JSON 解析 文本转换到列 交叉表 工具的组合:

  1. 将“命名实体识别”工具输出传递到“JSON 解析”工具输入。

  2. 选择 JSON 字段 下的实体列。

  3. 选择 输出值到单个字符串字段

  4. 将“JSON 解析”工具的输出传递到“文本转换到列”的输入。

  5. 选择 要拆分的列 下的 JSON 名称列,并将 分隔符 设置为句点 ( . )。

  6. 选择 拆分为列 ,并将 列数 设置为 3

  7. 将“文本转换到列”工具输出传递到“交叉表”工具输入。

  8. 交叉表工具配置:

    1. 按这些值对数据分组 :选择包含原始文本数据的列名称和第二个拆分的 JSON 名称列(默认为 JSON_Name2 )。

    2. 更改列标题 :选择第三个拆分的 JSON 名称列(默认为 JSON_Name3 )。

    3. 新列的值 :选择 JSON_ValueString

    4. 聚合值的方法 :选择 连接

  9. 运行工作流。“交叉表”工具的输出现在包含“命名实体识别”工具输出的表格形式。

常见问题解答

默认情况下,命名实体识别无法立即将 Michael Jordan 和 Air Jordan 识别为同一人。但是,您可以传递自定义实体和标签列表来训练一个新模型,从而实现此目的。请注意,命名实体识别工具不能替代查找和替换。该算法可能会根据源数据中的关联关系为 Michael Jordan 挑选其他绰号。

否,命名实体识别将仅支持指定的语言。例如,如果您指定英语,命名实体识别将只在源数据中查找英语文本。如果您的源数据中包含命名实体识别支持的其他语言文本(例如,法语文本),您可以在画布上为法语文本创建另一个命名实体识别进程,并在末尾连接结果。