知识图谱-汽车品牌知识图谱实战复现记录
写在前面:本人也是知识图谱“小白”,正在努力变“怪兽”,写文只为记录成长点滴,若有理解不合理亦或不到位的地方,敬请谅解。
1、环境配置
这里环境配置还是有一些点需要注意的:
(1)若python版本是3.8以及以上的话是不支持time.clock()这个函数的,需要把这个函数换成time.perf_counter().若不想麻烦,可以考虑将电脑装两个版本的python。
(2)py2neo的版本不能低于4.0.0,因为4.0.0版本是个分界线,3.x和4.x接口的区别有点大,所以版本必须对应,不然后续会出现一系列问题。
(3)Neo4j-driver接口为了和前面版本对应应该安装1.6.1版本。
2、业务需求分析
基于搜索引擎的商业数据分析:
(1)行业分析:整体市场趋势、细分市场趋势
用户会不断搜索关于汽车某方面的信息,可能是通过品牌搜索,可能是通过车型等等,通过用户的这些行为找出整体的市场趋势,以及细分市场的分析。
(2)品牌分析:品牌市场份额、品牌粘性、品牌游离度
用户都在搜什么品牌,搜A品牌的用户又去搜了B品牌(为什么?),用户在搜索这个品牌的时候有没有什么持续性。。
(3)车系分析:车系市场份额、车系粘性、车系游离度
(4)车型分析:车型市场份额、车型粘性、车型游离度
(5)话题分析:热点排行、话题排行
(6)用户画像:自然属性分析、兴趣属性分布
我们来看几个例子咯:
3、项目总体框架设计
项目分为应用层,业务层,数据层,ETL,数据源。
数据源 :一般获取渠道可以是汽车资讯网站、汽车电商平台、百科问答汽车频道、汽车投书平台。可以使用爬虫技术进行爬取,但要注意的是只能爬取网页公开的数据,遵守法律法规,做良好市民。(否者:爬虫写的好,牢饭吃的早)。
ETL:这部分先通过爬虫框架scrapyEx爬取数据,然后经过页面目录管理、页面元素解析、动态页面渲染、页面内容解析、数据清洗转换、批量任务调度,使结点数据结构化和关系数据结构化。
数据层:这一层我们首先要将数据导入到neo4j数据库,有两种方式,一种是Neo4j-import,另一种是Neo4j-Web控制台指令导入。这里我比较推荐第二种,因为指令可以让你非常清晰数据源的属性与生成结点或者关系之间的映射关系。
业务层:通过py2neo开发框架将数据库与后台联系。然后pythonWeb实现实体识别,节点查询,关系查询,路径计算,上层用Django框架与前端连接,为用户提供交互窗口。
应用层:这里主要是该框架的一些应用,比如只能搜索,智能问答,智能推荐等。
4、知识图谱设计方法论
专家法要求参与的人员经验很多,对业务非常熟悉。从上到下,总体规划。
参照法是以行业标准为参照来进行设计,在设计过程中不断修补裁剪。
归纳法是由技术过硬的专家来进行的,一般是自下向上,从一个点切入来设计的。
混合发是从上自下,从下自上同时进行,在中电处进行调整。
5、数据导入:
数据源必须为utf-8编码,不然结果会乱码。
修改为utf-8编码办法:笔记本打开csv文件,保存为UTF-8格式
打开%NEO4J_HOME%\conf\neo4j.conf
将#dbms.connectors.default_listen_address=0.0.0.0的#去掉
进入 cmd控制台输入指令:
neo4j.bat console
出现下图:
打开浏览器访问http://localhost:7474/
然后输入数据库用户名和密码(初始密码都是neo4j),登录后也可以自己修改密码,出现如下界面:
打开cmd窗扣进入neo4j文件的bin目录下执行以下指令:
neo4j-admin import --mode=csv --database=graph.db --nodes ..\import\bank01.csv
我们就完成了数据的导入,下面我们就可以开始创建结点了。
6、结点与关系创建
创建汽车品牌结点:
LOAD CSV WITH HEADERS FROM "file:///bank01.csv" AS line
CREATE(:Car{name:line.bank,count:line.count})
创建汽车车系结点:
LOAD CSV WITH HEADERS FROM "file:///serise.csv" AS line
CREATE(p:Serise{name:line.serise,count:line.count})
创建关系:
LOAD CSV WITH HEADERS FROM "file:///serise.csv" AS line
MATCH (entity1:Car{name:line.bank}),(entity2:Serise{name:line.serise})
CREATE(entity1)-[:Subtype{type:line.relation}]->(entity2)
指定唯一键:
CREATE CONSTRAINT ON (b:Car)
ASSERT b.name IS UNIQUE
至此,我们完成了206个品牌结点,1921个车系结点,1937个关系的导入
来看看界面吧:
汽车品牌结点
汽车车系结点
2127个车系,206个汽车品牌,1921个关系都展现出来了,是不是很壮观呢,哈哈哈哈
来个清晰的
7、前端界面展示
先关闭酷狗,因为酷狗会占用“http://127.0.0.1:8000/”这个端口
修改neo4j_models.py中的密码,name和端口:
def connectDB(self):self.graph = Graph("bolt: // localhost:7687", username="neo4j", password="admin")self.matcher = NodeMatcher(self.graph)
打开cmd窗口执行如下指令保证数据库服务是开着的:
neo4j.bat console
打开cmd窗口进入kgcar项目目录下运行如下指令:
python manage.py runserver
功能界面如下:
对不起,这个例子我举的有点飘了,哈哈哈哈
特别感谢:张子良老师的知识图谱教程
整理于2020年10月27日
知识图谱-汽车品牌知识图谱实战复现记录相关推荐
- l开头的英文车标是什么车_行业冷知识 | 为什么汽车品牌都喜欢用动物做车标?...
前天的文章中,我们给大家介绍了<车标显深意 | 恒驰车标揭开神秘面纱,PSA和FCA合资公司发布新LOGO>,恒大汽车的车标中,最抢眼的主体部分是一头怒吼的金色"东方雄狮&quo ...
- ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04)
ConvE,知识图谱嵌入(KGE)论文复现(Ubuntu 20.04) Paper:Convolutional 2D Knowledge Graph Embeddings 准备工作 GitHub地址, ...
- 达观汽车故障知识图谱,加速汽车行业质量管控智能化
美国汽车工业行动小组(AIAG,由美国三大汽车公司通用.福特和克莱斯勒共同创建,是全球公认的著名的非盈利组织)与德勤合作,对该组织内22家成员公司和一二级供应商进行了调研并发布的<质量2020& ...
- 知识图谱认知智能理论与实战----------第二章 知识图谱模式设计
文章目录 一. 知识图谱模式 二. 模式与本体 三. 本体概论 I. 模式与本体辨析 II.本体的构成要素 III.实体分类 IV.实体分类 四. 六韬法 I. 场景 II. 复用 III. 事物 I ...
- 知识图谱认知智能理论与实战----------第一章 知识图谱概述
文章目录 一. 什么是知识图谱 二. DIKW模型 三. 知识图谱技术体系 四. 知识图谱辨析 I. 知识图谱与自然语言处理 II. 知识图谱与图数据库 III. 知识图谱与语义网络 IV. 知识图谱 ...
- 学术会议|第六届知识图谱论坛CNCC-知识图谱赋能大数据大算力
CNCC2022将于12月8日至10日在贵州省贵阳市国际生态会议中心举办,今年CNCC技术论坛数量达到122个,内容涵盖了"计算+行业.人工智能.云计算.教育.安全"等30个方向. ...
- 【知识图谱】关于知识图谱,我们接下来该研究什么?斯坦福教授们给出了答案...
文 | 舒意恒(南京大学硕士生,知识图谱方向) 编 | 北大小才女小轶 本文整理了斯坦福大学 CS 520 知识图谱研讨会课程的第 10 集的内容,主要是关于知识图谱未来的研究方向,推荐给研究知识图 ...
- 技术动态 | 事理图谱,下一代知识图谱
本文转载自公众号:DataHorizon. 人工智能与认知智能 当前人工智能时代下,机器与人类之间的博弈一直在进行着.如图1所示,从1926年达特茅斯会议的召开标志人工智能诞生到深度学习模型在若干人工 ...
- 我们的实践:事理图谱,下一代知识图谱
原文链接:https://mp.weixin.qq.com/s/iLfXeVeWE5CCs_sM_NAOSw 一.人工智能与认知智能 当前人工智能时代下,机器与人类之间的博弈一直在进行着.如图1所示, ...
最新文章
- 国内有没有能媲美Jira的测试管理工具?我们找国内产品来测评一下
- python之jieba库
- Oracle触发器的语法详解
- leftjoin多个on条件_MYSQL|为什么LEFT JOIN会这么慢?
- 腾讯人均每月薪酬成本超8万元,员工总数首次超10万
- Oracle完全手册,Oracle_11g+Oracle Sqldeveloper 安装完全手册(for win 7 64x)
- 结组开发项目(TD学生助手)
- kali创建python脚本_kali下编译学习python3
- .NET程序员应掌握的常用类库
- linux android交叉编译,【转】搭建arm-linux-gcc交叉编译工具链环境(Android原生(JNI)开发环境搭建)...
- 12038徐波:PMBOK考试:如何压缩时间赶工和快速跟进考点汇总
- Gridview中Dataformatstring的使用
- ESP32直接烧写bin文件
- 清理xcode模拟器_mac太卡,清除xcode和模拟器缓存
- 从空空狐谈信用卡套利
- easyx带笔锋的涂鸦板!
- 大工邮箱收件服务器,Outlook 2010 设置邮箱详细步骤
- matlab怎么把音频变成信号_利用MATLAB软件对音频信号进行频谱分析及处理.doc
- 【电脑问题】win10系统
- CAS 实现的单点登录
热门文章
- 计算机毕业设计ssm光明小区物业管理系统wjomh系统+程序+源码+lw+远程部署
- 仿手环运动app的html,618不容错过的“实力派”手环:运动、健康小助手,支持双平台支付...
- python大数据和java大数据,经典好文
- 如何使用JavaScript获取URL的协议?
- nohup和后台运行,进程查看及终止
- 企业如何申请物联网卡
- Jquery文档处理操作
- 头发、胡子和权力——下巴上的演义
- cad转pdf,手机转换器怎么使用
- 解决Mysql中文乱码问题(多方面考虑,彻底解决乱码问题)