当前位置:   article > 正文

python构建基于知识图谱的京东商城问答系统-实验环境和实验数据准备_京东电商知识图谱python代码

京东电商知识图谱python代码

1、实验环境的搭建

(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的安装启动

 2、实验数据

使用了八爪鱼采集器爬取的数据,这个软件是免费的,也有收费功能,不过免费的功能已经可以满足大部分需求了。一开始自己手动爬取数据,但是效果不太理想,爬取的不是很全面,就用这个软件了,很好用。

软件的页面如下:

可以使用其中的爬虫模版,也可以自定义。

 

我这里只把电脑名称作为一个实体,其他数据都作为实体的属性。

下面是我爬取到的数据

数据的格式如下:

 电脑实体数据文件:

 价格属性数据:

价格是电脑实体的关系,只要用两个编号连接就行。

 我这里将爬取到的数据手动处理的,有一些空的数据需要填充上内容,因为导入数据库的时候不能为空。然后把数据csv文件放入neo4j安装目录下的import目录下即可

我的路径是:

D:\Neo4j\neo4j-community-3.5.31\import

3.Neo4j的启动和停止

通过控制台启动Neo4j程序

cmd输入neo4j.bat console

 出现上图信息则表示启动成功,网页访问http://localhost:7474,输入用户名和密码,用户名默认为neo4j,第一次进入时会让修改密码。

放进去后打开图数据库,在图数据库中依次执行下面的代码,

在上面白色输入框输入,点击右侧的蓝色按钮即可。 

  1. //导入节点 商品名称 == 注意类型转换
  2. LOAD CSV WITH HEADERS FROM "file:///genre_jd.csv" AS line
  3. MERGE (p:Genre_jd{gid:toInteger(line.gid),name:line.name
  4. ,title:line.title,href:line.href})
  5. //导入节点 电脑信息
  6. LOAD CSV WITH HEADERS FROM 'file:///computer_jd.csv' AS line
  7. MERGE (p:Computer_jd{ cid:toInteger(line.cid),type:line.type,
  8. color:line.color,
  9. weight:line.weight,
  10. Screen_color:line.Screen_color,
  11. system:line.system,origin:line.origin,thickness:line.thickness
  12. })
  13. // 导入节点 电脑购买信息
  14. LOAD CSV WITH HEADERS FROM "file:///price_jd.csv" AS line
  15. MERGE (p:Price_jd{pid:toInteger(line.pid),sid:line.sid,
  16. sell:line.sell,
  17. courier:line.courier,
  18. goods:line.goods,
  19. postage:line.postage,
  20. price:line.price
  21. })
  22. LOAD CSV WITH HEADERS FROM "file:///comments_jd.csv" AS line
  23. MERGE (p:Comments_jd{comid:toInteger(line.comid),evaluate:line.evaluate,
  24. Good_reviews:line.Good_reviews,
  25. acclaim:line.acclaim
  26. })
  27. LOAD CSV WITH HEADERS FROM "file:///disposition_jd.csv" AS line
  28. MERGE (p:Disposition_jd{did:toInteger(line.did),cpu:line.cpu,
  29. gpu:line.gpu,
  30. ssd:line.ssd,
  31. refresh:line.refresh
  32. })
  33. // 导入关系 compters 电脑多少钱 11
  34. LOAD CSV WITH HEADERS FROM "file:///computer_to_g_jd.csv" AS line
  35. match (from:Computer_jds {cid:toInteger(line.cid)}),(to:Genre_jd {gid:toInteger(line.gid)})
  36. merge (from)-[r:computers{cid:toInteger(line.cid),gid:toInteger(line.gid)}]->(to)
  37. LOAD CSV WITH HEADERS FROM "file:///price_to_genre_jd.csv" AS line
  38. match (from:Price_jd {pid:toInteger(line.pid)}),(to:Genre_jd {gid:toInteger(line.gid)})
  39. merge (from)-[r:computers{pid:toInteger(line.pid),gid:toInteger(line.gid)}]->(to)
  40. LOAD CSV WITH HEADERS FROM "file:///comments_to_genre_jd.csv" AS line
  41. match (from:Comments_jd {comid:toInteger(line.comid)}),(to:Genre_jd {gid:toInteger(line.gid)})
  42. merge (from)-[r:computers{comid:toInteger(line.comid),gid:toInteger(line.gid)}]->(to)
  43. LOAD CSV WITH HEADERS FROM "file:///disposition_to_genre_jd.csv" AS line
  44. match (from:Disposition_jd {did:toInteger(line.did)}),(to:Genre_jd {gid:toInteger(line.gid)})
  45. merge (from)-[r:computers{did:toInteger(line.did),gid:toInteger(line.gid)}]->(to)

上一篇中提到了问题分类的训练集怎么构造的,也提到了问题模板,其中A是问题分类的训练数据,B是问题模板。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/363461?site
推荐阅读
相关标签
  

闽ICP备14008679号