当前位置:   article > 正文

通过python将excel表导入neo4j_python导入excelneo4j

python导入excelneo4j

前言

最近在研究知识图谱,想整理出一个基于知识图谱的问答系统
这篇文章就是记录我在将excel导入到neo4j里一些情况
我们需要先下载一些库,以便后续的操作

  • pandas
  • py2neo
    这两个库需要通过pip下载
pip install pandas
pip install py2neo
  • 1
  • 2

提取准备好需要导入的excel,我这里是xlsx的工作表
在这里插入图片描述
这里补充Excel数据形式
name、alias、smell、cure和excel的命名,构成了节点
在这里插入图片描述
主体代码如下

def importRelation():
    count=0
    #这里最好使用决定路径
    for root, dirs, files in os.walk(r'F:\知识图谱资料\中医药知识图谱\data'):
        for file in files:
            frame = pandas.read_excel(r"F:/知识图谱资料/中医药知识图谱/data/"+file)
            part = file.split('.')[0]
            for i in frame.index:
            #这里是我工作表的数据,也是我需要建立的节点
                name = frame.get_value(i, 'name')
                alias = frame.get_value(i,'alias')
                smell = frame.get_value(i, 'smell')
                cure = frame.get_value(i, 'cure')
              	career_dict = {'部类': part}
                part_node = Node('部类', name=part)
                g.merge(part_node)
                 # 最后创建关系
                med_node = Node('中药', name=name)  # label为节点标签,name为节点名称,需要注意不要用label='label'否则label会成为节点的的属性
                # '''如果把这个作为中药的属性,而不作为节点属性,不利于后面的问答系统'''
                alias_node=Node('别名',name=alias)
                smell_node=Node('气味品质',name=smell)
                cure_node=Node('主治方法',name=cure)
                # # med_node['别名'] = alias  # 向node添加属性'property'
                # # med_node['气味品质'] = smell
                # # med_node['使用方法'] = cure
                # # g.merge(med_node)  # 将节点加入图数据库与create不同之处在于若节点存在则不创
                relat = Relationship(med_node, '属于', part_node)
                relat_one = Relationship(med_node, '别名是', alias_node)
                relat_two = Relationship(med_node, '气味品质是', smell_node)
                relat_three = Relationship(med_node, '使用方法是', cure_node)
                #g是我的neo4j账号,create可直接建立节点或者关系
                try:
                     g.create(relat_one)
                except:
                     continue
                try:
                     g.create(relat_two)
                except:
                     continue
                try:
                     g.create(relat_three)
                except:
                     continue
                try:
                     g.create(relat)
                except:
                     continue
                count+=1
                print(count)
importRelation()  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

在运行之前打开cmd命令行,输入neo4j.bat console
在浏览器中打开网站这个url
在这里插入图片描述
这个小型的知识图谱,一共有5类节点,4条关系,以中草药为中心节点,涉及721个中草药,爬取用时0.5天,数据入库与图谱构建2天,问答系统现在已经用4天,问答系统依然存在问题,慢慢来吧
2019.12.8
参考:https://blog.csdn.net/qq_36618444/article/details/92383074

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

闽ICP备14008679号