构建知识图谱-Neo4j

前面几篇博文从理论层面和代码层面讲述了知识图谱中的两个重要环节,实体识别和关系抽取,完成了前两个环节之后(当然,可能需要进行指代消解、实体统一等其他问题),得到了实体和实体之间的关系,下面以案例讲解,如何将前两个环节得到的结果用图关系数据库表示,目前使用较多的主流关系型图数据库就是Neo4j了。

Neo4j的安装

Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher已经成为事实上的标准。
安装嘛,自行百度吧,太简单,安装完后,初始登陆,修改密码。

设计图谱

这里以金融证券公司的数据为例,设计这样一个图谱:

  • 创建“人”的实体,这个实体包含姓名、年龄、性别等属性;
  • 创建“公司”的实体,这个实体包含股票代码和股票名称;
  • 创建“概念“实体,每个概念有概念名;
  • 创建”行业实体“,有行业名;
  • ”人“的实体和”公司“的实体有董事长、执行董事的关系;
  • 创建”公司“和”行业“的关系;
  • 创建”公司“和”概念“的关系;

以上一个比较简单的图谱关系,实际情况远比这复杂,下面需要准备数据。

准备数据

我们需要对数据做一些处理,并生成能够直接导入Neo4j的csv格式,对于数据的的获取、预处理这里不做详细介绍,结尾处会给出详细的说明文档。这里只给出构建图谱所需要的最终的结果数据文件,所需文件如下:

概念实体文件:concept.csv
concept_id:ID,name,:LABEL
fd48f2d675a14efad41cf84cf6769ef1,互联金融,Concept
753778ec03af791329e9765babe908d6,燃料电池,Concept
c54a122d80863560722148fd6159aa2f,IP变现,Concept
7300a38a34a150c5ac16ef45e875b1f5,长株潭,Concept
02223b9967945188275694362fa74f6d,基因测序,Concept
0bdc58f6dbc08bd1f3dfa240e8748770,低碳经济,Concept
人物实体文件: executive.csv
person_id:ID,name,gender,age:int,:LABEL
e2668be8eb9438fa292ccce2284d9559,谢永林,,50,Person
0cba5f2a3a588872c14cf5ba26b90d4e,胡跃飞,,56,Person
494ff28733d9a484f68fdca8db1f130c,郭世邦,,53,Person
5c5bf28c2ceb5451350c6a70f9ac1db8,姚贵平,,57,Person
b17cf923d926e27bc16ca523bdb65197,姚波,,47,Person
783714fc9789f1b6aaf0f990bbe9a315,叶素兰,,62,Person
973b6372fc6d61a292814b1f74a6c05c,陈心颖,,41,Person
行业实体文件:industry.csv
industry_id:ID,name,:LABEL
bf697f588be3438f2bb12c976f767552,纺织行业,Industry
b87afb222f06bf73c2576ce604c53fe5,水泥行业,Industry
632f70e6556ae0d5a30c9bf503a606d3,家电行业,Industry
d589cbc3f9b3415d251027c97e79bed0,建筑建材,Industry
3159a3474b29d95f46fa54b4ed7387c2,玻璃行业,Industry
891bb94e6b9ba56fa8229b1eac5214ad,传媒娱乐,Industry
公司实体文件:stock.csv
stock_id:ID,name,code,:LABEL
300105,龙源技术,300105,Company
200030,富奥B,200030,Company
2547,春兴精工,2547,Company
2606,大连电瓷,2606,Company
600007,中国国贸,600007,Company
600227,赤天化,600227,Company
公司和人物关系文件:executive_stock.csv
START_ID,jobs,:END_ID,:TYPE
e2668be8eb9438fa292ccce2284d9559,董事长/执行董事,stockpage\000001,employ_of
0cba5f2a3a588872c14cf5ba26b90d4e,执行董事,stockpage\000001,employ_of
494ff28733d9a484f68fdca8db1f130c,执行董事,stockpage\000001,employ_of
5c5bf28c2ceb5451350c6a70f9ac1db8,执行董事,stockpage\000001,employ_of
b17cf923d926e27bc16ca523bdb65197,非执行董事,stockpage\000001,employ_of
783714fc9789f1b6aaf0f990bbe9a315,非执行董事,stockpage\000001,employ_of
公司和概念关系文件:stock_concept.csv
START_ID,:END_ID,:TYPE
600007,5002146d64e919ca0d3af525a8b4083e,concept_of
600114,5002146d64e919ca0d3af525a8b4083e,concept_of
600132,5002146d64e919ca0d3af525a8b4083e,concept_of
600182,5002146d64e919ca0d3af525a8b4083e,concept_of
600595,5002146d64e919ca0d3af525a8b4083e,concept_of
600641,5002146d64e919ca0d3af525a8b4083e,concept_of
600779,5002146d64e919ca0d3af525a8b4083e,concept_of
600801,5002146d64e919ca0d3af525a8b4083e,concept_of
公司和行业关系文件:stock_industry.csv
START_ID,:END_ID,:TYPE
600051,dc6473ac96a77fe376fd7dd828d62993,industry_of
600209,dc6473ac96a77fe376fd7dd828d62993,industry_of
600212,dc6473ac96a77fe376fd7dd828d62993,industry_of
600256,dc6473ac96a77fe376fd7dd828d62993,industry_of
600576,dc6473ac96a77fe376fd7dd828d62993,industry_of
600603,dc6473ac96a77fe376fd7dd828d62993,industry_of
600614,dc6473ac96a77fe376fd7dd828d62993,industry_of
600620,dc6473ac96a77fe376fd7dd828d62993,industry_of
600622,dc6473ac96a77fe376fd7dd828d62993,industry_of
600624,dc6473ac96a77fe376fd7dd828d62993,industry_of

利用上述文件生成数据库

利用下面的命令将结果导入数据库中

neo4j-admin import \
    --database=stock.db \
    --ignore-duplicate-nodes=true \
    --ignore-missing-nodes=true \
    --id-type=string \
    --nodes=data/import/executive.csv \
    --nodes=data/import/stock.csv \
    --nodes=data/import/industry.csv \
    --nodes=data/import/concept.csv \
    --relationships=data/import/executive_stock.csv \
    --relationships=data/import/stock_industry.csv \
    --relationships=data/import/stock_concept.csv

查看生成的图谱

导完数据之后,Neo4j会自动生成图谱,把Neo4j服务重启之后,就可以通过localhost:7474观察到图谱了,生成的图谱如下图所示:
在这里插入图片描述

在这里插入图片描述

以上就是利用Neo4j构建图谱的基本过程,关于上述过程的细节,包括数据的获取、处理、文档说明,可以访问链接:https://pan.baidu.com/s/1o4nlEMo3fFmEX_HqgsLvKg
提取码:78e5
连接失效,可以私信我喔。

发布了24 篇原创文章 · 获赞 2 · 访问量 1169

猜你喜欢

转载自blog.csdn.net/qq_40176087/article/details/103977199
今日推荐