说明:本人在知乎上也发布了这边文章,所以这里直接就转载那边的图片了,链接如下:https://zhuanlan.zhihu.com/p/77034128

本次搭建的小型知识图谱包括具体手机的分类信息和商品的具体信息,以及手机评论和评论人的详细信息。
数据集:是爬取的京东全站数据中挑选出来的,很小的部分京东手机数据,包括手机具体信息和手机评论。格式如下:


数据库:MYSQL,NEO4J
语言:Python
说明:爬虫爬下来的数据是存放在MYSQL中的,所以我是从MYSQL中取得原生态数据,然后自己进行数据清洗,存为CSV文件再存入NEO4J的。时间前后大约花费四五天的时间,数据是以前就爬取下来的,现在记录一下整个搭建过程。

1、数据获取
从MYSQL数据库中的jd_product_test和jd_review_test取得原始数据,部分代码如下:


其中也对评论内容作了情感极性分析,借助的是snownlp,这样取得的商品评论就有极性数值了,0-0.5为消极评论(比如,差,不好,性价比低,不好用),0.5-1为积极评论(比如,赞,很好,太喜欢了)。
最后结果保存为product.csv和review.csv。

2、数据清洗与处理
首先是product.csv的处理,这里我们将手机具体分类和品牌解析出来,比如category中“{‘0’: ‘手机通讯’, ‘1’: ‘手机’, ‘2’: ‘手机’, ‘3’: ‘华为(HUAWEI)’, ‘4’: ‘华为荣耀8X’}”,我们只需要后三项,手机-》华为-》华为荣耀8X,firstcateogry=‘手机’,second_category = ‘华为’,代码处理如下:

然后是review.csv的处理,因为JD评论中只有评论人昵称,评论具体内容和评论时间,所以针对评论人我们做了虚假性别和虚假年龄的补充以及评论人ID,而评论时间是具体到时分秒的,我们只需要年月日即可,我们将时分秒去除代码处理如下:

最后针对评论极性的处理,统一保留为4位小数,范围在[0.0001,0.9999]之间,处理如下:

最后结果保存为product.csv和str_review.csv,部分数据如下所示。

3、顶点构造与关系抽取
下一步进行关系的抽取,首先我们共有5类顶点(“手机”,“手机品牌”,“product”,“review”,“person”),4种关系(“subcategory”,“product_of”,“reviewon”,“review_of”),我们挨个进行处理:
最上面的就是“手机”类,其次是“手机品牌”,而他们两个关系是“subcategory_of”,比如“手机”-》“apple”,“手机”-》“华为”。处理“手机”和“手机品牌”的函数分别bulid_first_category(‘data/product.csv’, ‘data/import/first.csv’)和bulid_second_category(‘data/product.csv’, ‘data/import/second.csv’),而建立关系的函数为:build_first_second(‘data/import/first.csv’, ‘data/import/second.csv’, ‘data/import/first_second.csv’)
然后是“product”,具体商品的处理,我们所需要一个具体商品的ID和姓名以及价格,而“product”和“品牌”之间的关系是“product_of”,比如“apple”-》“apple 8 plus”,“华为”-》“华为mate20”。处理的函数分别如下:build_product(‘data/product.csv’, ‘data/import/product.csv’),build_second_product( ‘data/product.csv’, ‘data/import/second.csv’)

其次是“review”顶点以及product和review之间的关系“review_on”的构造,处理他们的具体函数分别是build_review(‘data/str_review.csv’,‘data/import/review.csv’)和build_review_product(‘data/str_review.csv’, ‘data/import/review_product.csv’)

最后是“person”顶点和person和review之间的关系“review_of”的构造,处理他们的具体函数分别是build_person(‘data/str_review.csv’, ‘data/import/person.csv’)和build_person_review(‘data/str_review.csv’, ‘data/import/person_review.csv’)

4、导入neo4j构造小型知识图谱
在这里我采用的是neo4j import的方式导入的CSV数据,关键语句为:
neo4j-import --into data\databases\graph.db --id-type string --nodes:first D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\first.csv --nodes:second D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\second.csv --nodes:product D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\product.csv --nodes:review D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\review.csv --nodes:person D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\person.csv --relationships:subcategory_of D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\first_second.csv --relationships:product_of D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\second_product.csv --relationships:review_on D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\review_product.csv --relationships:review_of D:\Neo4jDesktop\neo4jDatabases\database-08fa70b4-8a09-479d-90ff-6b963bb96305\installation-3.4.1\import\person_review.csv --skip-duplicate-nodes=true --skip-bad-relationships=true --stacktrace --bad-tolerance=50000000

本次一共导入5种nodes,4种relationships,这里我也弄了好一段时间,最后采用的是绝对路径的方法,总之坑也有很多!

可以看出一共导入66701个顶点,65922个关系,以及关键属性,因为挑选的数据集就很小,一共49个具体手机型号,所以量级也不是很大,本次只是牛刀小试,一个小尝试,如果将JD手机全部数据拿来构造,那量级就会比较客观了,至于JD全站数据拿来构造知识图谱就更大了。

最后效果图如下所示,这里拿华为P20pro为例:


黄色的点就是“手机”,红色的点就是“手机品牌”,蓝色的点就是具体的“product”,而青色的点是“review”,而深红色的点就是“person”,他们之间的关系也用有向边做了介绍,分别是"subcategoryof",“productof”,",review_on",“review_of”。

相关代码以及数据集,放在本人github上了,如有需要,请移步:https://github.com/ForthEspada/JD_Cellphone_KnowledgeGraph

欢迎大家指出不足~谢谢!

欢迎大家去我的个人公众号【拓跋阿秀】,更多干货免费下载~

NEO4J搭建京东手机类小型知识图谱相关推荐

  1. Python+Neo4j构建时光网TOP100电影知识图谱

    Python+Neo4j构建时光网TOP100电影知识图谱 环境 1.Neo4j 3.5.6(2019年6月25日) 2.Java 1.8.0_181 3.Annaconda 3 一.准备工作 Neo ...

  2. neo4j构建郑州2022-年前疫情知识图谱

    neo4j构建知识图谱 (python编程疫情知识图谱) 一.知识图谱简介 历史由来什么虚头八脑的咱就直接跳过了,说一说我自己对知识图谱的理解吧.知识图谱理解起来很简单,知识+图谱.把知识用图谱的形式 ...

  3. 基于Neo4j与js制作的农业知识图谱

    主要提供农作物.农产品相关的知识.本项目以扶贫助农.加速全面建成小康社会为主要目的,从农业知识图谱着手,以扶持农业发展为起点,致力于帮助当地农民的电商发展.采用人工智能与大数据相结合的方式,前端与后端 ...

  4. 标签类目 知识图谱_短视频标签体系

    个人工作的一些短视频标签体系建立. 1.标签体系建立 可以参考谷歌的标签体系,或者根据知识图谱建立. 参考之后需要结合自己实际的业务进行粗化和细化,因为谷歌这个是针对一般的建立的,需要根据平台内容的分 ...

  5. Neo4j入门实战之红楼梦知识图谱

    参考这个视频:知识图谱实战:构建红楼梦知识图谱_哔哩哔哩_bilibili 项目概述:         采用http://www.openkg.cn/home(开放的知识图谱)中的四大名著的人物关系数 ...

  6. Neo4j 小白必看的电影知识图谱(Movie Graph:Try Neo4j with live data)

    Neo4j 电影知识图谱 Movie Graph初探 前言 1. 创建Graph 2. 查找Data 3. 查询Relation 4. 解决方案 前言 使用实时数据尝试Neo4j,演示常见查询模式的完 ...

  7. 介绍一些知识图谱的实际应用类项目

    目前已经有很多方法来构建知识图谱,在实际项目中,我们更加关注可以用构建好的知识图谱来干些什么,因此,我找到了网上一些对于当前知识图谱的应用的介绍,分享给大家. 1 国内外知识图谱项目 国外: 常识知识 ...

  8. neo4j 查询同一节点的两个上级_手把手教你快速入门知识图谱 - Neo4J教程

    前言 今天,我们来聊一聊知识图谱中的Neo4J.首先,什么是知识图谱?先摘一段百度百科: 知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程 ...

  9. 【知识图谱】Neo4j的基本使用及思知1.4亿三元组数据构建知识图谱

    目录 0.前言 1.Neo4j的基本使用 1.1 下载和安装Neo4j 1.2 Neo4j配置 1.2.1 核心数据文件的位置 1.2.2 安全验证,默认是启用的 1.2.3 配置JAVA 堆内存的大 ...

最新文章

  1. hadoop作业初始化过程详解(源码分析第三篇)
  2. Linux环境中Visual Studio Code的配置使用----编译运行C/C++(良心教程)
  3. 拿下两个世界第一,阿里人机对话模型成人工智能国际通用标准
  4. Linux中assert头文件,linux系统下如何使用assert函数
  5. 初次运行git前的配置
  6. spring cloud的eureka.client.service-url.defaultZone配置eureka集群的写法
  7. w10家庭版安装java不_小编为你分析win10系统安装不了java的设置办法
  8. mysql-修改密码(error-1290 (HY000): The MySQL server is running with the --skip-grant-tables option so)
  9. 摄像机成像公式、外参、内参(转载)
  10. [vb]全面控制 Excel
  11. Linux 最常用命令(简单易学,能解决 95% 以上的问题)
  12. C语言编程经典100 例
  13. DevComponents.DotNetBar2 美化包使用以及验证教程
  14. natapp软件使用
  15. 基于CM6800的ATX电源维修
  16. 【LG3244】[HNOI2015]落忆枫音
  17. 国内首个“新基建”安全大赛启动了!
  18. dnc开源梦之队2018 开源项目精选集
  19. 云上的日子电台php源码,云上的日子超炫酷音乐电台源码2.0更新,支持全网收费音乐外链获取...
  20. OSChina 周五乱弹 —— 源花?真土鳖,我要开源小仙女!

热门文章

  1. Windows下使用HAXM加速Android模拟器(以x86方式运行)
  2. android专辑iPhone,抛弃iPhone转投Android 我竟没有一丝留恋
  3. 现在怎么用python 爬取微信的聊天记录
  4. 计算机打开iis的配置,怎么打开iis? iis打开方法图解教程
  5. Hexo历险记之七展示图片
  6. 小程序 通过id从列表页跳转到对应的详情页
  7. win 2016 ssh_win仿苹果模仿MAC桌面,完美高仿主题推荐
  8. 如何用ChatGPT进行剧本/广告脚本写作?
  9. 使用MedleyText与Syncthink自建云笔记
  10. HART/MODBUS 网关作为HART第二主站在污水处理厂的应用