代码介绍

用Python先处理csv文件数据,在自动化批量在neo4j生成节点。

从文件中导出数据,并进行处理

# 数据写入
datalists = []
with open('zcydata.csv','r',encoding='utf-8') as f:listLists=f.readlines()
for lists in listLists:datalists.append(lists.replace('</P>','').replace('<P>','').replace('\n','').split(',',14))# 用途的数据导入
Datalists = []
with open('zz_data.csv', 'r', encoding='utf-8') as f:ListLists = f.readlines()
for lists in ListLists:Datalists.append(lists.replace('</P>', '').replace('<P>', '').replace('\n', '').split(',', 14))# 组成的数据导入
Datals = []
with open('zc_data.csv', 'r', encoding='utf-8') as f:ListLists=f.readlines()
for lists in ListLists:Datals.append(lists.replace('</P>','').replace('<P>','').replace('\n','').split(',',14))

创建节点和关系


# 创建节点关系
i = 0
tx = graph.begin()
for items in datalists:# 药的名称a = Node('zcyname', name=items[0])tx.create(a)a1 = Node('shuxing', name='信息')a2 = Node('shuxing', name='经济性')a3 = Node('shuxing', name='安全性')tx.create(a1)tx.create(a2)tx.create(a3)r1 = Relationship(a, 'xinxi', a1)r2 = Relationship(a, 'jingjixing', a2)r3 = Relationship(a, 'anquanxing', a3)tx.create(r1)tx.create(r2)tx.create(r3)# 第一层关系b1 = Node('wxyj', name='文献研究')b2 = Node('ypjj', name='药品禁忌')b3 = Node('blfy', name='不良反应')tx.create(b1)tx.create(b2)tx.create(b3)r11 = Relationship(a3, 'wxyj', b1)r12 = Relationship(a3, 'ypjj', b2)r13 = Relationship(a3, 'blfy', b3)tx.create(r11)tx.create(r12)tx.create(r13)# 文献研究if items[7] != '':b11 = Node('wxnum', name=items[7])tx.create(b11)r1_1 = Relationship(b1, 'num', b11)tx.create(r1_1)# 药品禁忌if items[12] != '':ypjj_list = items[12].split('。')for ypjj in ypjj_list:if ypjj !='':b12 = Node('ypjj' ,name=ypjj)tx.create(b12)r1_2 = Relationship(b2, 'ypjj', b12)tx.create(r1_2)# 不良反应if items[13] != '':blfy_list = items[13].split('。')for blfy in blfy_list:if blfy != '':b13 = Node('ypjj' ,name=blfy)tx.create(b13)r1_3 = Relationship(b3, 'blfy', b13)tx.create(r1_3)c1 = Node('xingzhuang', name='性状')c2 = Node('zygg', name='主要规格')c3 = Node('yt', name='用途')c4 = Node('yfyl', name='用法用量')c5 = Node('zc', name='组成')c6 = Node('cpfl', name='产品分类')c7 = Node('sccj', name='生产厂家')tx.create(c1)tx.create(c2)tx.create(c3)tx.create(c4)tx.create(c5)tx.create(c6)tx.create(c7)r21 = Relationship(a1, '包含', c1)r22 = Relationship(a1, '包含', c2)r23 = Relationship(a1, '包含', c3)r24 = Relationship(a1, '包含', c4)r25 = Relationship(a1, '包含', c5)r26 = Relationship(a1, '包含', c6)r27 = Relationship(a1, '包含', c7)tx.create(r21)tx.create(r22)tx.create(r23)tx.create(r24)tx.create(r25)tx.create(r26)tx.create(r27)# 性状节点if items[6] != '':c11 = Node('xingzhuang', name=items[6])tx.create(c11)r1_11 = Relationship(c1, 'xingzhuang', c11)tx.create(r1_11)# 主要规格if items[1] != '':c21 = Node('zygg', name=items[1])tx.create(c21)r2_21 = Relationship(c2, 'zygg', c21)tx.create(r2_21)# 用途for its in Datalists[i]:# print(its)if its != '':Datas = re.split(',', its)# print(Datas)for Data in Datas:if Data != '':c31 = Node('yt', name=Data)tx.create(c31)r3_31 = Relationship(c3, 'yt', c31)tx.create(r3_31)# print(Data)break# 用法用量if items[3] != '':c41 = Node('yfyl', name='口服,一次15毫升,一日3~4次。')tx.create(c41)r4_41 = Relationship(c4, 'yfyl', c41)tx.create(r4_41)# 组成节点if Datals[i][1] != '':datas = re.split('、', Datals[i][1])# print(datas)for data in datas:if data != '':c51 = Node('zc', name=data)tx.create(c51)r5_51 = Relationship(c5, 'zc', c51)tx.create(r5_51)# 产品分类if items[4] != '':c61 = Node('cpfl', name=items[4])tx.create(c61)r6_61 = Relationship(c6, 'cpfl', c61)tx.create(r6_61)# 生产厂家if items[5] != '':c71 = Node('sccj', name=items[5])tx.create(c71)r7_71 = Relationship(c7, 'sccj', c71)tx.create(r7_71)d1 = Node('jjml', name='基药目录')d2 = Node('ybml', name='医保目录')d3 = Node('bzly', name='标准来源')tx.create(d1)tx.create(d2)tx.create(d3)r31 = Relationship(a2, 'jyml', d1)r32 = Relationship(a2, 'yb', d2)r33 = Relationship(a2, 'bzly', d3)tx.create(r31)tx.create(r32)tx.create(r33)# 医保if items[9] != '':d12 = Node('yb', name='非医保')tx.create(d12)r2_12 = Relationship(d2, 'yb', d12)tx.create(r2_12)# 基药目录if items[10] != '':d11 = Node('jyml', name=items[10])tx.create(d11)r1_11 = Relationship(d1, 'jyml', d11)tx.create(r1_11)# 标准来源if items[11] != '':d13 = Node('bzly', name=items[11])tx.create(d13)r3_13 = Relationship(d3, 'yb', d13)tx.create(r3_13)i += 1
tx.commit()

1、zc_data.csv文件

2、zz-data.csv文件

3、zcydata.csv文件

效果展示

源代码及相关文件下载

下载

用Python构造neo4j知识图谱(关于中成药的)相关推荐

  1. Neo4j入门实战,以三国英雄关系为例入门Neo4j知识图谱

    Neo4j入门实战,以三国英雄关系为例入门Neo4j知识图谱 前言 一.Neo4J简介 对比关系型数据库: 对比其他NoSQL数据库 二.Neo4J下载安装 方法1:安装Neo4j Community ...

  2. 【包邮免费送】Python 全栈知识图谱

    想要学习 Pyhton 的同学,都遇到过这些问题: 没有时间翻专业书籍? 百度搜索还去大量的浏览文章.自我总结? 想系统的学习 Python 不知从何开始? ...... 类似的问题会反复出现在你的关 ...

  3. Python 全栈知识图谱技能成长路线,面试必备图谱手册,全网最全首发的一份......

    初学 Python 的你是否遇到过: 想要学习,却不知道从何开始? 没有时间啃书本?实操中遇到操作盲点? 知识点堆砌,学了一堆还是找不到工作 这其实是所有人接触 Python 时,都会遇到的问题. 需 ...

  4. Python 医学知识图谱问答系统(一),建立医学知识图谱,基于neo4j知识图谱的医学问答体系

    医学知识问答,知识图谱建设部分,建设过程如下: 一.首先,准备数据,主要为结构化的医学数据,包含实体和关系 原始数据样式(来源于刘焕勇老师整理的医学数据): 二.在neo4j数据库中建立空数据库,并且 ...

  5. Python neo4j建立知识图谱,药品知识图谱,neo4j知识图谱,知识图谱的建立过程,智能用药知识图谱,智能问诊必备知识图谱

    一.知识图谱概念 知识图谱的概念是由谷歌公司在2012年5月17日提出的,谷歌公司将以此为基础构建下一代智能化搜索引擎,知识图谱技术创造出一种全新的信息检索模式,为解决信息检索问题提供了新的思路.本质 ...

  6. neo4j 知识图谱_用知识图谱解读糖尿病基于python和neo4j

    现在中老年人中有糖尿病的朋友越来越多了,大家都觉得我很有知识的样子,总是要俺帮着查查和咨询俺关于糖尿病的相关知识和问题.其实吧,我并不知道,但是为了回答有时会看一些这方面的论文,然后加上"扯 ...

  7. Python基于民航业知识图谱的自动问答系统(附源码)

    一.开发环境 Windows 10 x64 Python 3.7 Neo4j community 3.5.20 二.项目运行 1.确保安装所需依赖 pip install -r requirement ...

  8. 技术动态 | Neo4j知识图谱的技术解析及案例分享

    转载公众号 | DataFunTalk 合作分享:Jesus Barrasa-Neo4j-欧洲区售前和技术总监 合作分享:丁可-Neo4j-亚太区高级技术顾问 编辑整理:吴祺尧-加州大学圣地亚哥分校 ...

  9. neo4j 知识图谱_知识图谱里的知识存储:neo4j的介绍和使用

    一般情况下,我们使用数据库查找事物间的联系的时候,只需要短程关系的查询(两层以内的关联).当需要进行更长程的,更广范围的关系查询时,就需要图数据库的功能. 而随着社交.电商.金融.零售.物联网等行业的 ...

最新文章

  1. iOS Webview打开不受信的URL
  2. https://www.threatminer.org/domain.php?q=blackschickens.xyz ——域名的信誉查询站点 还可以查IP...
  3. IT员工应该向谁汇报工作,CFO or CEO?
  4. ERP物料采购系统需求分析与效果展示 ERP实施以失败告终的四个原因分析
  5. java的成员方法_java编程中的成员方法是什么?
  6. java contains 通配符_java删除文件支持通配符
  7. Spring 4 MVC入门实例
  8. 第8章6节MonkeyRunner启动运行过程-启动Monkey 2
  9. kaggle房价预测特征意思_Kaggle之预测房价
  10. mysql 删除表中 id不等于XXX的 并且XXX字段的重复记录
  11. zookeeper观察者模式设计实例
  12. tomcat的url-pattern的源码分析
  13. CentOS 7安装TeamView
  14. 图书馆管理系统(一)
  15. R语言二进制grd文件读取合并导出
  16. 计算机专业毕业生的就业政策,计算机专业毕业生就业情况分析及应对策略
  17. 我的产品经理书单(2017-2019)
  18. IP-guard如何实现远程控制或远程文件传送时,不在客户端弹出授权提示
  19. 云顶之弈怎么防止被机器人拉_云顶之弈:只有钻石玩家才知道的12个小技巧,都是干货!...
  20. HTTP请求响应基础介绍

热门文章

  1. 数据恢复之D-Recovery
  2. 1.2 嵌入式微处理器体系结构
  3. 丰田生产方式的浪费观——《可以量化的管理学》
  4. 单片机音乐盒c语言,基于单片机的音乐盒设计与实现
  5. [BZOJ4899]:记忆的轮廓(概率DP)
  6. python计算圆的体积_[宜配屋]听图阁
  7. 人物专访妆容造型冯俪 | 重遇自己,找到一条走回内心的路
  8. stm32F429HAL库使用DS18B20输出温度到电脑串口助手
  9. Hypermesh前处理+Abaqus有限元分析
  10. Qt+Mplayer视频播放器