命名实体识别
使用“命名实体识别”工具来识别文本中的人物、位置和事物。该工具利用了 spaCy 软件包中的命名实体识别功能。您可以使用预定义实体集或您自己的自定义实体。
要求 Alteryx Intelligence Suite
此工具是 Alteryx Intelligence Suite 的一部分。Intelligence Suite 需要单独的许可证,并需要以 Designer 附加组件进行安装。安装 Designer 后,请安装 Intelligence Suite 并 开始您的免费试用 。
语言支持
“命名实体识别”工具支持英语、法语、德语、意大利语、葡萄牙语和西班牙语。
工具组件
命名实体识别工具有 4 个锚点。
D 输入锚点:将文本数据与要识别的实体关联。
E 输入锚点(可选):将数据与要识别的自定义实体关联。此数据必须包含要用于训练模型的自定义实体名称和标签。
D 输出锚点:输出新的数据列,这些列显示与数据中的实体相关的信息。
M 输出锚点:在下游输出模型对象,以便在新数据中使用。模型对象与 “预测”工具 兼容。
默认模型配置
配置工具
将该工具拖到画布上。
将 D 输入锚点连接到包含要识别的实体的文本数据。
选择文本数据的 语言 。
选择 包含文本的列 。
运行 工作流。
默认英文实体列表
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 输入锚点。该工具使用您的实体列表来训练新模型。实体列表格式如以下几个示例所示:
实体 | 标签 |
---|---|
雷司令 | 葡萄 |
白苏维浓 | 葡萄 |
黑比诺 | 葡萄 |
西拉 | 葡萄 |
赤霞珠 | 葡萄 |
配置工具
将该工具拖到画布上。
将 D 输入锚点连接到包含要识别的实体的文本数据。
将 E 输入锚点连接到自定义实体列表。
选择连接到 D 输入锚点的文本数据的 语言 。
从连接到 D 输入锚点的文本数据中选择 包含文本的列 。
选择 使用新实体进行训练 。
从连接到 E 输入锚点的自定义实体列表中选择 包含实体的列 。
从连接到 E 输入锚点的自定义实体列表中选择 包含标签的列 。
如果您希望模型 区分大小写 ,请选择此框。
(可选)配置 训练模型 部分。有关详细信息,请参考以下部分。
运行 工作流。
训练模型
周期 (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 解析 、 文本转换到列 和 交叉表 工具的组合:
将“命名实体识别”工具输出传递到“JSON 解析”工具输入。
选择 JSON 字段 下的实体列。
选择 输出值到单个字符串字段 。
将“JSON 解析”工具的输出传递到“文本转换到列”的输入。
选择 要拆分的列 下的 JSON 名称列,并将 分隔符 设置为句点 ( . )。
选择 拆分为列 ,并将 列数 设置为 3 。
将“文本转换到列”工具输出传递到“交叉表”工具输入。
交叉表工具配置:
按这些值对数据分组 :选择包含原始文本数据的列名称和第二个拆分的 JSON 名称列(默认为 JSON_Name2 )。
更改列标题 :选择第三个拆分的 JSON 名称列(默认为 JSON_Name3 )。
新列的值 :选择 JSON_ValueString 。
聚合值的方法 :选择 连接 。
运行工作流。“交叉表”工具的输出现在包含“命名实体识别”工具输出的表格形式。
常见问题解答
该算法会优先使用您的自定义列表。
默认情况下,命名实体识别无法立即将 Michael Jordan 和 Air Jordan 识别为同一人。但是,您可以传递自定义实体和标签列表来训练一个新模型,从而实现此目的。请注意,命名实体识别工具不能替代查找和替换。该算法可能会根据源数据中的关联关系为 Michael Jordan 挑选其他绰号。
否,命名实体识别将仅支持指定的语言。例如,如果您指定英语,命名实体识别将只在源数据中查找英语文本。如果您的源数据中包含命名实体识别支持的其他语言文本(例如,法语文本),您可以在画布上为法语文本创建另一个命名实体识别进程,并在末尾连接结果。