赞
踩
(1)python环境
我这里用python3.9版本
本项目涉及到的依赖包打包好了,可以直接使用下面的命令来安装:
pip install -r requirements.txt
有其他需要的包可以用命令:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
来下载,只要把numpy 替换成需要的包就可以。
(2)知识图谱基本介绍
关于知识图谱,可以看这篇文章详细了解。这是一份通俗易懂的知识图谱技术与应用指南,读了这篇文章,相信你对知识图谱有了一个初步的印象,其实质就是利用三元组来表示实体的一些信息,而关于这些信息的存储,一种是基于RDF的存储;另一种是基于图数据库的存储。而本项目采用的是图数据库存储,主要是图数据库较简单,还直观,使用了图数据库neo4j,关于这个数据库的安装,请参照Neo4j的安装启动
使用了八爪鱼采集器爬取的数据,这个软件是免费的,也有收费功能,不过免费的功能已经可以满足大部分需求了。一开始自己手动爬取数据,但是效果不太理想,爬取的不是很全面,就用这个软件了,很好用。
软件的页面如下:
可以使用其中的爬虫模版,也可以自定义。
我这里只把电脑名称作为一个实体,其他数据都作为实体的属性。
下面是我爬取到的数据
数据的格式如下:
电脑实体数据文件:
价格属性数据:
价格是电脑实体的关系,只要用两个编号连接就行。
我这里将爬取到的数据手动处理的,有一些空的数据需要填充上内容,因为导入数据库的时候不能为空。然后把数据csv文件放入neo4j安装目录下的import目录下即可
我的路径是:
D:\Neo4j\neo4j-community-3.5.31\import
通过控制台启动Neo4j程序
cmd输入neo4j.bat console
出现上图信息则表示启动成功,网页访问http://localhost:7474,输入用户名和密码,用户名默认为neo4j,第一次进入时会让修改密码。
放进去后打开图数据库,在图数据库中依次执行下面的代码,
在上面白色输入框输入,点击右侧的蓝色按钮即可。
- //导入节点 商品名称 == 注意类型转换
- LOAD CSV WITH HEADERS FROM "file:///genre_jd.csv" AS line
- MERGE (p:Genre_jd{gid:toInteger(line.gid),name:line.name
- ,title:line.title,href:line.href})
-
-
- //导入节点 电脑信息
- LOAD CSV WITH HEADERS FROM 'file:///computer_jd.csv' AS line
- MERGE (p:Computer_jd{ cid:toInteger(line.cid),type:line.type,
- color:line.color,
- weight:line.weight,
- Screen_color:line.Screen_color,
- system:line.system,origin:line.origin,thickness:line.thickness
- })
-
-
- // 导入节点 电脑购买信息
- LOAD CSV WITH HEADERS FROM "file:///price_jd.csv" AS line
- MERGE (p:Price_jd{pid:toInteger(line.pid),sid:line.sid,
- sell:line.sell,
- courier:line.courier,
- goods:line.goods,
- postage:line.postage,
- price:line.price
- })
-
-
- LOAD CSV WITH HEADERS FROM "file:///comments_jd.csv" AS line
- MERGE (p:Comments_jd{comid:toInteger(line.comid),evaluate:line.evaluate,
- Good_reviews:line.Good_reviews,
- acclaim:line.acclaim
- })
-
-
- LOAD CSV WITH HEADERS FROM "file:///disposition_jd.csv" AS line
- MERGE (p:Disposition_jd{did:toInteger(line.did),cpu:line.cpu,
- gpu:line.gpu,
- ssd:line.ssd,
- refresh:line.refresh
- })
-
- // 导入关系 compters 电脑多少钱 1对1
- LOAD CSV WITH HEADERS FROM "file:///computer_to_g_jd.csv" AS line
- match (from:Computer_jds {cid:toInteger(line.cid)}),(to:Genre_jd {gid:toInteger(line.gid)})
- merge (from)-[r:computers{cid:toInteger(line.cid),gid:toInteger(line.gid)}]->(to)
-
-
- LOAD CSV WITH HEADERS FROM "file:///price_to_genre_jd.csv" AS line
- match (from:Price_jd {pid:toInteger(line.pid)}),(to:Genre_jd {gid:toInteger(line.gid)})
- merge (from)-[r:computers{pid:toInteger(line.pid),gid:toInteger(line.gid)}]->(to)
-
-
- LOAD CSV WITH HEADERS FROM "file:///comments_to_genre_jd.csv" AS line
- match (from:Comments_jd {comid:toInteger(line.comid)}),(to:Genre_jd {gid:toInteger(line.gid)})
- merge (from)-[r:computers{comid:toInteger(line.comid),gid:toInteger(line.gid)}]->(to)
-
-
- LOAD CSV WITH HEADERS FROM "file:///disposition_to_genre_jd.csv" AS line
- match (from:Disposition_jd {did:toInteger(line.did)}),(to:Genre_jd {gid:toInteger(line.gid)})
- merge (from)-[r:computers{did:toInteger(line.did),gid:toInteger(line.gid)}]->(to)
上一篇中提到了问题分类的训练集怎么构造的,也提到了问题模板,其中A是问题分类的训练数据,B是问题模板。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。