分享

知识图谱初探(十一)- 如何快速构建自己的知识图谱_fengye

 株野 2023-07-12 发布于陕西

完整的知识图谱体系非常复杂,通常包含很大比例的知识获取与融合。如下图,主要涉及NLP等技术的应用,这部分目前来说还没有通用的一站式技术解决方案,也具有很高的难度,需要较大的成本来建设。

知识获取

但对于要初步构建知识图谱,直接从源头去做起可能并不必需。我们完全可以使用已有的结构化数据,如公司自己的关系型数据库中的数据,或者有大数据平台的,也可以直接从数仓中抽取数据,或者部分外采数据。

知识图谱构建
如上图,我们可以采用更简单的方式及切入知识图谱,数仓是已有的功能,实体及关系抽取可以通过ETL离线完成,也可通过流计算实时生成,这些都可以融入大部分公司现有的大数据平台中。从而着眼于知识图谱的可视化应用,具体场景的图计算建模等。这也是目前大部分公司所采用的方法。

由结构化数据建模构建知识图谱

以银行反欺诈风险场景为例,首要明确的是,通过知识图谱要实现什么?

比如一个简单直接的目的: 更直观的展示一个客户的全貌,即可以通过一个页面直观看到用户有转账关系的人及企业,使用过的IP,设备终端,同样终端及IP上关联的其他人,与之有交易关系的人及企业等等。再进一步更方便直观快捷的看到一个客户整体风险状况。

由此,从可视化的角度,就是将客户作为中心,查询与其关联的信息。
我们可以初步构建以下实体数据:

  1. 汇总用户信息,生成Person实体
  2. 汇总IP信息,生成IP实体
  3. 汇总终端信息,生成Device实体
  4. 汇总商户信息,生成Company实体
  5. 汇总其他相关风险信息,生成诸如:房产,邮箱,银行卡,LBS地址,裁判文书等等

以及相关关联关系数据:亲属,转账,担保,消费,终端使用,IP使用,经营关系等等

初步确定我们所需要构建的图谱,我们可以轻易将结构化数据转为特定格式的图谱数据,导入图数据库,从而构建出基本所需的知识图谱。

以neo4j为例:

  1. 新建csv文件person.csv (必须用UTF-8格式)
    person.csv
  2. neo4j启动时需要再配置文件中增加配置项dbms.directories.import=import
  3. person.csv 文件需放置在import目录下
  4. 执行导入语句:
    load csv with headers from "file:/person.csv" as line MERGE (b:Person {id:line.id,name:line.name,age:line.age});

备注:在neo4j中导入数据并创建节点,因数据量过大,使用USING PERIODIC COMMIT 1000,防止数据过大溢出,with headers可以处理含有头文件的数据。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多