文档首页> 知识图谱 KG> 最佳实践> 结构化数据创建图谱
更新时间:2023-06-14 GMT+08:00
分享

结构化数据创建图谱

数据是知识图谱的基础,在知识图谱服务创建知识图谱时,需要从对象存储服务(Object Storage Service,简称OBS)导入用于构建知识图谱的基础数据。知识图谱服务支持的数据包括XLSX、CSV、JSON、多行单句文本格式,详情请见数据格式要求,其中XLSX、CSV、JSON格式的数据属于结构化数据。

本章节提供一个与电影有关的结构化数据样例,帮助您快速熟悉知识图谱的创建过程。此样例通过在控制台创建本体,完成信息抽取、信息映射、信息融合、图谱质检的配置,创建一个与电影有关的知识图谱。创建完成后,您可以搜索预览相关实体的知识图谱,也可以在创建的图谱基础上全量更新或增量更新图谱。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。在控制台上创建知识图谱的步骤如下所示:

准备工作

已注册华为帐号并开通华为云,且在使用知识图谱服务前检查帐号状态,帐号不能处于欠费或冻结状态。

步骤1:准备数据

在创建图谱之前,您需要将用于创建图谱的基础数据上传至OBS桶及文件夹。

  1. 登录OBS服务控制台,创建桶和文件夹,用于存放样例数据集,创建名称为“kg-test”的OBS桶,名称为“demo-data”的文件夹。

    创建OBS桶和文件夹的操作指导请参见创建桶新建文件夹。为保证数据能正常访问,请务必保证创建的OBS桶与KG服务在同一区域,桶的存储类别为“标准存储”。

    当前KG服务仅支持在“北京四”区域,建议创建OBS桶时,选择“北京四”区域。

  2. 单击数据集下载链接,将数据集下载至本地,并命名为“kg_demo.xlsx”
  3. 参考上传文件,使用单个文件上传方式将“kg_demo.xlsx”文件上传至OBS路径“kg-test/demo-data”下。

步骤2:创建本体

在创建图谱之前,您还需要提前创建本体,根据样例数据,此处本体创建2个概念和2种关系,2个概念为“电影”“人物”,2种关系为“导演”“主演”

图1 创建本体
  1. 登录KG服务管理控制台,在左侧菜单栏中单击我的图谱资产库 > 我的本体,进入“我的本体”页面。
    图2 本体管理
  2. 单击左上角“创建本体”,弹出“创建本体”对话框。
  3. 在对话框中,“本体名称”文本框中填写本体名称“person_film”,在“本体描述”文本框中填写本体描述“包括电影和人物两个概念”,单击“确定”
    图3 创建本体

    在创建本体时,所有概念都默认有一个属性为“name”

  4. 创建两个概念节点“电影”“人物”
    具体操作如下:
    1. 双击界面空白处,新建概念节点。
    2. 右键单击概念图标,选择“编辑”或双击概念图标,左侧弹出概念编辑框。
    3. 在概念编辑框中,按表1编辑“概念名称”“Icon”“属性”,单击“保存”
      图4 编辑概念
      表1 编辑概念

      参数

      说明

      推荐填写

      概念名称

      概念名称只能由大小写字母、数字、中文、下划线组成,长度为1-63位。

      本样例需要创建两个概念,分别可命名为“电影”“人物”

      Icon

      单击选择概念图标的颜色和样式,单击右侧的“更多”,可选择更多图标样式。

      -

      属性

      编辑当前概念的属性。所有概念都默认有一个属性为“name”,且默认属性类型为“single_string”

      • 添加属性

        单击“添加属性”可添加属性文本框,在文本框中填写属性的“名称”,选择“单值/多值”“类型”“操作”

        • 名称:属性名称只能由大小写字母、数字、中文、下划线组成,长度为1-63位。
        • 单值/多值:选择当前属性是单值还是多值。
        • 类型:选择属性的类型。

          单值的可选类型有“single_string”“single_int”“single_double”“single_bool”

          多值的可选类型有“set_string”“set_int”“set_double”

        填写完概念的属性后,单击“操作”列的,保存信息。

      • 复制属性

        单击已有属性“操作”列的,复制当前属性。

      • 删除属性

        单击已有属性“操作”列的,删除当前属性。

      • 概念“电影”新增属性“票房”“上映时间”
      • 概念“人物”新增属性“国籍”“职业”“出生日期”
  5. 创建“电影”“人物”之间的关系。

    具体操作如下:

    1. 按住键盘a键,同时鼠标单击概念节点“电影”,拖拽出一条线,移动至目标概念“人物”

      或鼠标右键单击一个概念节点“电影”,选择“新建关系”,然后拖拽出一条线,移动至目标概念“人物”

    2. 右键单击关系曲线,选择“编辑”

      右侧弹出关系编辑框。

      图5 编辑关系
    3. 在关系编辑框中,填写“关系名称”,只能由大小写字母、数字、中文、下划线组成,长度为1-63位。
      本样例需创建两次“电影”“人物”之间的关系,关系名称分别为“主演”“导演”
      图6 编辑关系
    4. 单击“保存”

步骤3:选择图谱规格

  1. 登录KG服务管理控制台,默认进入“我的图谱”页面。
  2. 单击,然后在创建图谱页面填写信息。
    图7 服务选型
    表2 服务选型参数说明

    参数

    说明

    “图谱名称”

    待创建图谱的名称,名称只能由大小写字母、数字、中文、下划线组成,长度为1-63位。

    “图谱规格”

    待创建图谱的规格大小。当前仅支持在控制台选择“体验版 一万边”,如果根据业务需要,选择标准版 百万边、标准版 千万边、高级版 千万边,请通过官网产品页“服务咨询”联系我们进行咨询购买。

    “是否购买套餐包”

    体验版图谱默认不能开通套餐包。如果需要选择业务版图谱,请通过官网产品页“服务咨询”联系我们进行咨询购买。

  3. 单击右下角“下一步”,在“版本确认”页签确认版本信息。
  4. 单击右下角“确认创建”

    页面提示“知识图谱创建任务提交成功”

    单击“返回”,返回至“我的图谱”页面,您会看到新创建的图谱卡片,“运行状态”“创建中”。等待十几分钟后,运行状态变为“初始化”状态。

    图8 创建图谱

步骤4:配置数据源

  1. “我的图谱”页面鼠标移至新创建的图谱卡片,单击“图谱构建WorkSpace”

    进入图谱流水线构建页面。

    图9 图谱构建WorkSpace
  2. 在流水线构建页面,单击“数据源”,页面下方弹出数据源配置对话框,单击右侧按钮可以放大对话框。
    图10 配置数据源
  3. 在数据源配置对话框,填写相关信息。
    • “选择数据格式”:此样例选择“XLSX”
    • “选择数据源文件”:单击,弹出“选择数据源文件”对话框,选择数据源存放在OBS的路径:
      1. “OBS桶”:选择数据源文件存放的OBS桶“kg-test”。确保您使用的OBS桶与KG服务在同一区域,桶的存储类别为“标准存储”。
      2. “存储路径”:选择数据源文件存放在OBS桶的文件路径“demo-data/kg_demo.xlsx”

        选择的OBS路径不能是加密路径,否则可能会访问失败。

      3. “OBS桶授权”:如果OBS桶未授权,请勾选“确认授权”

      选择完成后,单击“确定”

    图11 选择数据源文件
  4. 填写完信息后,单击“保存”,完成数据源的配置。

步骤5:配置图谱本体

  1. 在流水线构建页面,单击“图谱本体”,页面下方弹出图谱本体配置对话框,单击右侧按钮可以放大对话框。
  2. 选择左侧“我的库”页签,在“图谱本体组件”中拖拽步骤2:创建本体中创建的本体“person_film”到虚线框中,单击“保存”,完成本体选择。

    “我的库”页签下的“图谱本体组件”呈现的是“我的图谱资产库”“我的本体”页面创建或OBS导入的所有本体。

    可单击页面右下角的“编辑”,进入本体修改页面,修改后的本体将保存至“我的库”。

    图12 图谱本体

步骤6:配置信息抽取

以两条数据为例,抽取信息前后的实体信息如图13所示,展示如何配置信息抽取。

图13 信息抽取
  1. 在流水线构建页面,单击“信息抽取”,页面下方弹出“信息抽取”对话框,单击右侧按钮可以放大对话框。
  2. “信息抽取”对话框中,“抽取方式”默认为“结构化抽取”“编辑方式”选择“交互界面”,关闭“默认抽取”开关。
  3. 在信息抽取页面填写信息抽取项,按表3填写。
    表3 信息抽取项示例

    实体类型

    数据字段

    字段函数

    Person

    identifier

    ${url}

    中文名

    regexp_replace(${中文名}, '\(\[link\]@.*?:(/film.*?)\)', '')

    国籍

    regexp_replace(${国籍}, '\(\[link\]@.*?:(/film.*?)\)', '')

    职业

    ${职业}

    出生日期

    ${出生日期}

    url

    ${url}

    Film

    identifier

    ${url}

    中文名

    ${中文名}

    票房

    ${票房}

    上映时间

    ${上映时间}

    导演

    regexp_extract_all(${导演}, '\(\[link\]@.*?:(/film.*?)\)', 1)

    主演

    regexp_extract_all(${主演}, '\(\[link\]@.*?:(/film.*?)\)', 1)

    url

    ${url}

    字段函数主要有三类,示例如下:

    • ${职业}

      直接引用“职业”字段的值,不做任何操作。

    • regexp_replace(${国籍}, '\(\[link\]@.*?:(/film.*?)\)', '')

      “国籍”字段中符合正则模式的“\(\[link\]@.*?:(/film.*?)\)”替换成空字符串,即删除符合这个pattern的字符串。例如从字段“中国([link]@中国:/film.kg.huawei.com/中国/1122445)”抽取出信息“中国”

    • regexp_extract_all(${导演}, '\(\[link\]@.*?:(/film.*?)\)', 1)

      抽取出导演字段中,与模式 “\(\[link\]@.*?:(/film.*?)\)” 匹配的数据值,返回的类型是一个列表。例如““导演”:“沈倨([link]@沈倨:/film.kg.huawei.com/沈倨)"”,抽取信息后为““导演”:“/film.kg.huawei.com/沈倨"”

      填写完“信息抽取项”,单击“确定”,完成信息抽取配置。

  4. 填写完信息后,单击“保存”

步骤7:配置知识映射

以其中两条数据为例,知识与实体之间的映射关系如图14所示,展示如何配置知识映射。

图14 知识与实体的映射关系
  1. 在流水线构建页面,单击“知识映射”,页面下方弹出“知识映射”对话框,单击右侧按钮可以放大对话框。
  2. “知识映射”对话框下方,填写知识映射的相关信息。
    • 单击实体“电影”对应的图标。
    • 填写实体“电影”映射前的抽取项:“Film”
    • 填写映射到实体“电影”的抽取项,如图15表4所示。
      图15 实体电影的抽取项
      表4 实体电影的抽取项

      属性/关系名称

      抽取项

      name

      中文名

      票房

      票房

      上映时间

      上映时间

      电影:主演:人物

      主演

      电影:导演:人物

      导演

    • 单击实体“人物”对应的图标。
    • 填写实体“人物”映射前的抽取项:“Person”
    • 填写映射到实体“人物”抽取项,如图16表5所示。
      图16 实体人物的抽取项
      表5 实体人物的抽取项

      属性

      抽取项

      name

      中文名

      国籍

      国籍

      职业

      职业

      出生日期

      出生日期

  3. 单击“保存”,完成知识映射配置。

步骤8:配置知识融合

以如下融合条件为例:

对电影的属性“name”相似的数据进行知识融合判断,当属性“name”的相似度大于等于0.90,且属性“上映时间”的相似度大于等于0.90时,数据进行融合。对人物的属性“name”相似的数据进行知识融合判断,当属性“name”的相似度大于等于0.90,且属性“职业”的相似度大于等于0.90时,数据进行融合。相似度函数均为编辑距离函数“EditSim”

展示如何配置知识融合。

  1. 在流水线构建页面,单击“知识融合”,页面下方弹出“知识融合”对话框,单击右侧按钮可以放大对话框。
  2. “知识融合”对话框,打开“知识融合”开关。
  3. 在左侧本体预览图中单击实体“电影”图标。
  4. 在实体“电影”对应的“融合标识符”栏单击,选择标识知识融合的本体属性“name”
  5. 填写实体“电影”的属性配置项信息。

    可添加多组属性配置项,每组属性配置项可添加多个判断融合的属性配置。至少存在一组属性配置项,组内所有判断融合的属性相似度均大于相似度阈值时,即可融合这两条数据。

    本样例只需添加一个属性配置分组,一组里填写两个属性配置项信息,如图17所示。

    单击“添加分组”,即可添加一组新的属性配置项。

    单击“增加属性配置项”,即可在组内添加新的属性配置项。

    实体配置完成后,单击“确定”

    图17 实体电影的知识融合属性
  6. 在左侧本体预览图中单击实体“人物”图标。
  7. 在实体“人物”对应的“融合标识符”栏单击,选择标识知识融合的本体属性“name”
  8. 填写实体“人物”的属性配置项信息。

    可添加多组属性配置项,每组属性配置项可添加多个判断融合的属性配置。至少存在一组属性配置项,组内所有判断融合的属性相似度均大于相似度阈值时,即可融合这两条数据。

    本样例只需添加一个属性配置分组,一组里填写两个属性配置项信息,如图17所示。

    单击“添加分组”,即可添加一组新的属性配置项。

    单击“增加属性配置项”,即可在组内添加新的属性配置项。

    实体配置完成后,单击“确定”

    图18 实体人物的知识融合属性
  9. 单击“保存”

步骤9:配置图谱质检

  1. 在流水线构建页面,单击“图谱质检”,页面下方弹出“图谱质检”对话框,单击右侧按钮可以放大对话框。
    图19 图谱质检
  2. “图谱质检”对话框,打开“图谱质检”开关,单击“保存”

    图谱质检为非必选流程,关闭和开启状态均不影响图谱构建。开启质检任务后,后台会对当前版本的知识图谱的知识质量和流水线构建进行评估,并生成质检报告,详见查看质检报告

步骤10:生成图谱

在图谱流水线页面,单击右上角“生成图谱”,完成图谱的创建。
图20 生成图谱

跳至新建图谱“test”的详情页,查看图谱的状态,当图谱的“状态”“运行中”变为“可用”后,即可单击“图谱预览”,预览图谱。

步骤11:融合验证

  1. 登录KG服务管理控制台,单击左侧导航栏“我的图谱”,在“我的图谱”页面单击图谱“test”,进入图谱详情页。
  2. “图谱版本”页签,等待图谱运行完成,单击“操作”列的“验证”,进入“随机验证”页面。
  3. 在随机验证页面,有随机采样的部分融合样例,您如果认可融合的结果,单击,若不认可,单击
    右侧可查看融合验证的结果,包含“准确率”“准确数”“不准确数”“不确定数”
    • 如果随机验证页面为空页面,说明没有需要验证的融合样例。
    • 如果首次构建图谱,版本会自动发布,无需手动发布。
    图21 融合验证
分享:

    相关文档

    相关产品