1.学习背景
- 上课没有好好听,现在跟着bilibili知识图谱实战教程知识图谱实战教程_哔哩哔哩_bilibili补习一下知识记录下;
- 自己的学习笔记哈~之前记的电子笔记没有找到合适的记录软件;其实自己书写文档的功力还需要磨练,在文章逻辑思路、笔记细节等等都还有欠缺,养成一下学习习惯。
2.笔记记录
2.1 环境要求
Neo4j:一种图数据库,采用java接口 3.8.8
py2neo:python像java转向的驱动
Django:2.0.3的
Thulac/Corenlp:分词、词性标注
2.1.1安装开发环境eno4j;
之前已经安装了jdk1.8;
eno4j的安装参考的这个博主的博文:
知识图谱可视化——Neo4j (windows)_最小公倍数的博客-优快云博客_neo4j知识图谱可视化
【小提示】刚开始安装的目录在D盘下的D:\Program Files 目录下,在neo4j.bat console的时候会报错因为路径有空隔的原因,修改为在D盘下的目录就没问题了:D:\neo4j-community-3.5.5!
3.1 项目业务需求说明
3.1业务场景:基于搜索引擎的商业数据分析
·行业分析:整个市场趋势,细分市场趋势
·品牌分析:品牌市场,品牌粘性,品牌游离度
·车系分析:车系市场份额,车系粘性,车系游离度
·车形分析:车型市场份额,车型粘性,车型游离度
·话题分析:热度排行,话题排行
·用户画像:自然属性分析,兴趣属性分析
3.2品牌行业市场份额:
·数字结果进行拆分:
4.1项目总体构架分析

4.1项目总体构架结构
1.应用层
2.业务层
3.数据层
4.ETL
5.数据源
4.1.1.应用层
·搜索引擎的分析;
a)智能搜索--》当想获取信息的时候精准展示
b)智能交互--》搜索和交互本质上没有什么区别,变就变在交互模式
搜索:传统的搜索引擎
问答:基于语音问答,
c)商品推荐:
根据过往的交易记录、浏览记录的置信度进行推荐
基于知识图谱来推荐:BR分析,根据商品的品牌等
4.1.2.业务层
·业务功能支撑
a)输出的web接口:Django 对应的节点之间的关系,来展示效果;
b)实体识别
c)实体查询
d)关系查询
e)路径的计算
底层依赖py2neo的开发框架
4.1.3.数据层(知识层)
·底层技术:数据使用和数据存储工具逻辑
·Neo4j_import的数据导入
·Neo4j_net的控制台
#问题:如果数据过大的话,会有批量数据导入的问题
·语义类型:
实体的分类
·语义关系:
实体之间的关系
·节点对象:
·关系对象:
4.1.4.ETL--知识抽取
·输入:来源页面
·输出:结构化的数据,结构化需要基于数据存储工具
·知识抽取和数据整合
·scrapyEx数据爬虫技术
有问题:对于动态网页渲染问题,需要其他的技术整合
·如何隐匿自己的身份
·页面的目录管理
·解决批量人工问题
·存储管理页面
·页面元素的解析--程序
·必须针对页面结构分析、元素、结构化处理等等
·动态页面渲染问题
·为了保护网络内容,网站将内容存储在js服务器内
·页面元素的解析
·进行结构化,存储在本地
·数据清洗化
·反扒技术
·批量任务管理
4.1.5.数据源
·数据咨询网站
4.2 汽车知识图谱数据源:优先级
·1)结构化数据(DB)
已有的数据库,结构点
·2)半结构化数据(Web)--半结构的数据一般为主流
Web站点,行业领域的web站点
把一些半结构化的数据就可以求出来
·3)非结构化的数据(Text)
需要自己构建
4.3 汽车知识图谱关键数据:网络爬虫
- 技术A: scrapy架构==》scrapy是一个构架包含了很多功能
爬虫交互逻辑:
·step1:发起用户请求
·step2:调度程序出法
·step3:返回请求给调度机器
·step4、5:去真实页面上找到下载信息,并且返回
·step6、7:通过调度引擎,交给Scheduler程序,会把对应内容,交给item处理管道
·step8:交给item管道程序进行对应的处理
A:downloader==>会从对应网络上下载网页
B:Spiders==>发起最初的请求
C:item pipline==>会对最终item结果进行负责,结构化处理
D:Scheduler==>负责触发
E:引擎==》调度任务
- 技术B: 图数据库
a)neo4j
- neo4j:进行选型--》比较适合底层知识不牢固的问题
·底层的数据集成
·数据的导入导出
·数据的批量导入导出
·图的分析 - import:
·对外提供什么样的语言接口
·可视化 - 排名非常高:
·RDF读取的框架
·开发包
·图数据的可视化
b)图形可视化
- echarts