创建信息抽取模型
如果您在创建知识图谱时,选择使用自定义模型进行信息抽取,您需要在创建知识图谱之前,创建信息抽取模型。
本章节提供一个与人物、电影有关的非结构化数据构建信息抽取模型流程,帮助您快速熟悉知识图谱自定义信息抽取模型创建过程,通过在控制台进行数据标注、模型训练,构建一个人物、电影有关的信息抽取模型。本样例以在ModelArts控制台上标注数据为例,介绍信息抽取模型构建流程。
在创建模型之前,请仔细阅读准备工作罗列的要求,提前完成准备工作。在控制台上创建信息抽取模型的步骤如下所示:
步骤1:准备数据
在创建信息抽取模型之前,您需要自行准备基础数据并上传至OBS桶及文件夹中。
由于数据安全原因,本样例不提供具体的样例数据,仅提供样例数据要求,要求如下:
数据格式
数据格式为短文本txt格式,文件内容示例如下:
张三的生日是1990年1月1日,身高175cm,出生于北京。
李四,著名导演,毕业于电影学院,代表作有《电影1》、《电影2》。
... ...
数据划分
训练数据:80%数据用于训练信息抽取模型。
验证数据:20%数据用于验证信息抽取模型性能(即F1、P、R性能指标)。
训练数据量
训练一个基本可用的模型,标注数据量总数需要大于模型版本配置中的“batch_size”,且需大于20*三元组类型数量。
训练一个效果较好的模型,建议提供2万条以上的短句数据作为训练数据。
三元组类型
本样例构建的模型适用于人物、电影领域的信息抽取,限定抽取的三元组类型如表1所示。
subject_type |
predicate |
object_type |
---|---|---|
人物 |
毕业院校 |
学校 |
影视作品 |
改编自 |
作品 |
影视作品 |
制片人 |
人物 |
人物 |
身高 |
Number |
人物 |
丈夫 |
人物 |
影视作品 |
主演 |
人物 |
人物 |
出生日期 |
Date |
影视作品 |
编剧 |
人物 |
影视作品 |
导演 |
人物 |
人物 |
祖籍 |
地点 |
人物 |
父亲 |
人物 |
人物 |
出生地 |
地点 |
影视作品 |
出品公司 |
企业 |
人物 |
妻子 |
人物 |
人物 |
母亲 |
人物 |
人物 |
国籍 |
国家 |
影视作品 |
上映时间 |
Date |
- 按上文要求准备待标注的训练数据和模型数据,并保存至本地,训练数据命名为“annotation.txt”,模型数据命名为“corpus.txt”。
- 登录OBS服务,创建桶和文件夹,用于存放数据集。
创建名称为“model-data”的文件夹用于存放未标注的数据集。
创建名称为“model-data-out”的文件夹用于存放已标记并发布的数据集。
创建名称为“graph-data”的文件夹用于存放创建图谱的数据集。
创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。为保证数据能正常访问,请务必保证创建的OBS桶与KG服务在同一区域,桶的存储类别为“标准存储”。
- 参考上传文件,使用单个文件上传方式将本地准备的训练数据“annotation.txt”文件上传至OBS路径“kg-model/model-data”下,将本地准备的创建模型的数据文件“corpus.txt”上传至OBS路径“kg-model/graph-data”。
步骤2:创建数据集
- 登录ModelArts管理控制台,在左侧菜单栏中单击“数据管理 > 数据集”,进入数据集页面,单击页面上方“前往新版”。
图1 数据集
如果数据集页面上方显示“返回旧版”,则说明当前页面已经是新版页面。
- 单击“创建数据集”,在“基本信息”页签,参考图2填写信息。
“名称”:填写“RelationExtraction”。
“描述”:填写简单的数据集描述,可不填。
“数据格式”:选择“文件型”。
“数据类型”:选择“文本”。
“数据集输出位置”:单击选择输出数据集的OBS路径“/kg-model/model-data-out/”。
- 单击“下一步”,在“数据输入”页签,参考图3填写信息,然后单击“创建”。
数据集创建完成后,系统自动跳至数据集页面,您可以查看数据集详情。
“数据源”:默认为“OBS”。
“导入方式”:默认为“目录”。
“导入路径”:单击选择存放待标记数据集的OBS路径“/kg-model/model-data/”。
步骤3:标注数据
- 在ModelArts管理控制台的左侧菜单栏中单击“数据管理 > 数据标注”,进入数据标注页面。
- 单击“创建标注作业”,进入创建标注作业页面。
- 参考图4填写信息,然后单击“创建”。
“名称”:自动生成作业名称,也可以自定义修改。
“描述”:填写简单的数据集描述,可不填。
“标注场景”:选择“文本”。
“标注类型”:选择“文本三元组”。
“数据集名称”:选择“RelationExtraction”。如果选不到,可以单击图标刷新后再选。
“添加标签集”:按表1添加实体标签和关系标签,实体标签需要添加表1中的“subject_type”和“object_type”,关系标签需要添加表1中的“predicate”,如图5和图6所示。
“启用团队标注”:打开开关会启动团队标注,团队成员可以进行该数据集的标注任务,可不操作。
- 单击“创建”后自动返回数据标注页面。在标注作业列表中单击作业名称,进入作业标注详情页,默认显示“未标注”的文本列表。
单击“同步新数据”,快速将数据集中的数据添加到标注作业中。
- 按下文步骤标注文本数据集。
- 在“未标注”页签文本列表中,页面左侧罗列“标注对象列表”。在左侧列表中单击需标注的文本对象,在右侧文本框选中相应文本内容,在页面呈现的实体类型列表中选择实体名称,完成实体标注。
图7 实体标注
- 在完成多个实体标注后,鼠标左键依次单击起始实体和终止实体,在呈现的关系类型列表中选择一个对应的关系类型,完成关系标注。
图8 关系标注
- 单击下方“保存当前页”。
- 在“未标注”页签文本列表中,页面左侧罗列“标注对象列表”。在左侧列表中单击需标注的文本对象,在右侧文本框选中相应文本内容,在页面呈现的实体类型列表中选择实体名称,完成实体标注。
步骤4:发布数据集
- 在ModelArts管理控制台的左侧菜单栏中单击“数据管理>数据集”,进入数据集页面。
- 在数据集列表中,单击数据集“RelationExtraction”操作列的“发布”。
或者,您可以单击数据集名称,进入数据集概览页,在页面右上角单击“发布”。
- 在“发布新版本”的弹出框中,填写“版本名称”、“标注类型”、“描述”,然后单击“确定”。
“版本名称”:默认输入“V001”。
“标注类型”:选择“文本三元组”。
“描述”:可不填。
图9 发布新版本
- 自动跳转至版本管理页面,记录V001.manifest文件的存储路径,如图10红框所示。
步骤5:创建模型
- 登录KG服务管理控制台,在左侧菜单栏中选择 ,进入模型管理页面。
- 在模型列表左上方,单击“创建模型”。
弹出“创建模型”对话框。
- 在“创建模型”对话框中填写相关信息,如图11所示,单击“确定”,完成模型创建。
“模型名称”:在“模型名称”文本框中填写模型名称“Person_Film_Model”。
“模型模板”:单击选择模型模板“MRC-BM-v2”,MRC-BM-v2的基本概念请参见训练模型框架介绍。
“数据类型”:单击选择“ModelArts”,训练数据类型详情请参见训练数据类型介绍。
“OBS桶”:选择在步骤1:准备数据新建的OBS桶“kg-model”。
“文件夹”:选择在4中记录的V001.manifest文件的存储路径,并勾选存放的文件夹。