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 挑选其他绰号。

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