汽车知识图谱
一、项目介绍
本项目是一个关于汽车领域的知识图谱,项目内容包括知识抽取、知识建模、知识推理、知识存储、知识应用,适用于基于搜索引擎的商业数据分析场景。
本项目利用网络爬虫完成了汽车品牌数据、汽车车型数据、汽车配置数据的获取,通过数据预处理后,在Neo4j图数据库中进行批量数据节点的创建,索引的创建和关系的创建,总共有207个汽车品牌数据,1519个汽车车系数据,31768个汽车车型数据,完成数据的导入工作,再利用Django框架实现了实体识别、实体查询、关系查询的数据可视化。
项目源代码已上传GitHub,https://github.com/chenjj9527/Car_Knowledge_Graph,如有疑问,可留言咨询。
环境要求:
Python | 3.6.5 | 低版本不支持 |
Neo4j | 3.3.1 | 社区版本即可 |
py2neo | 4.0.0 | 低版本不支持 |
neo4j-driver | 1.6.1 | Neo4j开发接口 |
Django | 2.0.3 | Web服务器 |
Java | 1.8 | JDK |
Thulac/Corenlp | 0.2.0 | 分词、词性标注 |
Pinyin | 0.4.0 | 小写字母获取 |
Bootstrap | 3.7.4 | 界面框架 |
Echarts | 4.0 | 数据可视化框架 |
JQuery | 1.0 | JS框架 |
二、项目架构
三、数据导入
1 # 导入汽车品牌表 2 LOAD CSV WITH HEADERS FROM "file:///bank.csv" AS line 3 CREATE (:Bank{name:line.bank, count:line.count}) 4 5 # 导入品牌系列表 6 LOAD CSV WITH HEADERS FROM "file:///series.csv" AS line 7 CREATE (:Series{name:line.series, count:line.count}) 8 9 # 导入关系表【这里关系表和品牌系列表一样】 10 LOAD CSV WITH HEADERS FROM "file:///series.csv" AS line 11 MATCH (entity1: Bank{name:line.bank}), (entity2: Series{name:line.series}) 12 CREATE (entity1) - [:Subtype{type:line.relation}] -> (entity2) 13 14 # 查询品牌及其关系 15 MATCH p=()-[r:Subtype]->() RETURN p LIMIT 250 16 17 #建立索引 18 CREATE CONSTRAINT ON (b: Bank) 19 ASSERT b.name is UNIQUE 20 21 #查询实体 22 match (n:Bank) return n LIMIT 25 23 match (n:Series) return n LIMIT 25
四、项目运行