精华内容
下载资源
问答
  • 基于python的Django框架和Neo4j的知识图谱可视化

    千次阅读 热门讨论 2020-09-16 15:56:12
    上两篇文章我已经写了怎么用python在Neo4j中构造知识图谱。大家可以先看下这两篇文章。 知识图谱python 操作neo4j (导入CSV操作) 知识图谱python操作Neo4j构建复杂的知识图谱 通过上面两篇文章我们已经能从...

    上两篇文章我已经写了怎么用python在Neo4j中构造知识图谱。大家可以先看下这两篇文章。
    知识图谱 之 python 操作neo4j (导入CSV操作)
    知识图谱之python操作Neo4j构建复杂的知识图谱

    通过上面两篇文章我们已经能从pyhon中操作Neo4j图形数据库了。下面就是要想办法把Neo4j中的知识图谱显示在前端页面上。首先我们要会Django框架把前端页面显示出来。至于怎么搭建Django框架和显示网页我就不多说了,毕竟东西太多而且也不是今天的主要内容。直接展示一下搭建好的成果。
    在这里插入图片描述
    网页上面就显示了三个输入框和一个按钮。分别是实体一,实体二和关系以及一个查询按钮。
    当我们输入实体或关系的的时候,系统接受到来自前端的数据,然后用python来操作Neo4j来返回我们要的图谱。

    这段代码是我们根据不同实体和关系用python操作neo4j图形库从而获取不同的图谱。

    #关系查询:实体1
    	def findRelationByEntity1(self,entity1):
    		answer = self.graph.run("MATCH (n1:person {name:\""+entity1+"\"})- [rel] -> (n2) RETURN n1,rel,n2" ).data()
    		return answer
    
    	# 关系查询:实体1+关系
    	def findOtherEntities(self, entity, relation):
    		answer = self.graph.run("MATCH (n1:person {name:\"" + entity + "\"})-[rel:" + relation + "]->(n2) RETURN n1,rel,n2").data()
    		return answer
        #关系查询 整个知识图谱体系
    	def zhishitupu(self):
    		answer = self.graph.run("MATCH (n1:person)- [rel] -> (n2) RETURN n1,rel,n2 ").data()
    		return answer
    	#关系查询:实体2
    	def findRelationByEntity2(self,entity1):
    		answer = self.graph.run("MATCH (n1)- [rel] -> (n2:major {name:\""+entity1+"\"}) RETURN n1,rel,n2" ).data()
    		if (len(answer)==0):
    			answer = self.graph.run("MATCH (n1)- [rel] -> (n2:level {name:\"" + entity1 + "\"}) RETURN n1,rel,n2").data()
    			if (len(answer) == 0):
    				answer = self.graph.run("MATCH (n1)- [rel] -> (n2:univer {name:\"" + entity1 + "\"}) RETURN n1,rel,n2").data()
    		return answer
    
    

    这段代码是当前端数据传到后台时,我们连接Neo4j图形库,根据上面那段代码输入不同的实体和关系时调用不同的函数来返回给前端不同的知识图谱。

    def search_relation(request):
    	ctx = {}
    	if(request.GET):
    		db = neo4jconn
    		entity1 = request.GET['entity1_text']
    		relation = request.GET['relation_name_text']
    		entity2 = request.GET['entity2_text']
    		searchResult = {}
    		#若只输入entity1,则输出与entity1有直接关系的实体和关系
    		if(len(entity1) != 0 and len(relation) == 0 and len(entity2) == 0):
    			searchResult = db.findRelationByEntity1(entity1)
    			return render(request,'relation.html',{'searchResult':json.dumps(searchResult,ensure_ascii=False)})
    		#若只输入entity2则,则输出与entity2有直接关系的实体和关系
    		if(len(entity2) != 0 and len(relation) == 0 and len(entity1) == 0):
    			searchResult = db.findRelationByEntity2(entity2)
    			searchResult = sortDict(searchResult)
    			if(len(searchResult)>0):
    				return render(request,'relation.html',{'searchResult':json.dumps(searchResult,ensure_ascii=False)})
    		#若输入entity1和relation,则输出与entity1具有relation关系的其他实体
    		if(len(entity1)!=0 and len(relation)!=0 and len(entity2) == 0):
    			searchResult = db.findOtherEntities(entity1,relation)
    			searchResult = sortDict(searchResult)
    			if(len(searchResult)>0):
    				return render(request,'relation.html',{'searchResult':json.dumps(searchResult,ensure_ascii=False)})
    		#若输入entity2和relation,则输出与entity2具有relation关系的其他实体
    		if(len(entity2)!=0 and len(relation)!=0 and len(entity1) == 0):
    			searchResult = db.findOtherEntities2(entity2,relation)
    			searchResult = sortDict(searchResult)
    			if(len(searchResult)>0):
    				return render(request,'relation.html',{'searchResult':json.dumps(searchResult,ensure_ascii=False)})
    		#全为空 则输出整个知识图谱
    		if(len(entity1)==0 and len(relation)==0 and len(entity2) ==0 ):
    
    			searchResult =db.zhishitupu()
    			searchResult =sortDict(searchResult)
    			#print(json.loads(json.dumps(searchResult)))
    		return render(request,'relation.html',{'searchResult':json.dumps(searchResult,ensure_ascii=False)})
    

    我们知道python从Neo4j中获取的是json格式的数据并不是图形。我们现在就是要想办法把json格式的数据用图形化的格式给显示出来。这就要用到Charts工具了, 它是JavaScript 实现的开源可视化库.至于怎么用Echarts制作大家可以看这个人写的,我觉得写得很细了。传送门

    最后展示下效果:
    在这里插入图片描述

    后来买了一个阿里云服务器就把一些项目放到了网页上。这个知识图谱也在上面,大家也可以去看看。因为关系比较多有些关系没有考虑到所以还会出现错误,望大家见谅。

    展示网站:http://47.98.188.104/relation.html

    展开全文
  • Django python的Web框架 Django安装和使用 pip install django import django Neo4j 去Neo4j官网下载安装包 下载后解压 并进入bin目录启动 以github上一农业知识图谱的demo为例讲解搭建过程 按照github上...

    知识图谱构建的工具主要包含两个部分

    • Neo4j 用于存储实体和关系
    • Django python的Web框架
    1. Django安装和使用
    pip install django
    import django
    
    1. Neo4j
      Neo4j官网下载安装包
      在这里插入图片描述
      下载后解压
      并进入bin目录启动
      在这里插入图片描述
    2. 以github上一农业知识图谱的demo农业知识图谱的demo为例讲解搭建过程
      按照github上readme.md上的要求
      将实体和关系的数据文件 放入import文件夹下在这里插入图片描述
      在这里插入图片描述
      并在输入框中输入语句导入数据

    数据导入完成后启动Django服务
    需要更改demo文件中Neo4j数据库配置,改为自己的用户名 密码

    在这里插入图片描述
    如果连接不上数据库,还可以采用另一种方法
    在这里插入图片描述
    将config下的配置文件中的
    dbms.security.auth_enabled=false 由true变为false

    最后启动django服务

    展开全文
  • 知识图谱——从零开始用neo4j框架对csv文件构建知识图谱(一)——安装neo4j 知识图谱——从零开始用neo4j框架对csv文件构建知识图谱(二)——构建三元组 1.构建实体文件和关系文件 在上文我们最后得出了entity-...

    知识图谱——从零开始用neo4j框架对csv文件构建知识图谱(一)——安装neo4j
    知识图谱——从零开始用neo4j框架对csv文件构建知识图谱(二)——构建三元组
    1.构建实体文件和关系文件
    在上文我们最后得出了entity-relation.csv,接下来我们对其拆分为实体和关系两个文件

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    
    import pandas as pd
    import csv
    
    # 读取三元组文件
    h_r_t_name = [":START_ID", "role", ":END_ID"]
    h_r_t = pd.read_table("entity_relation.csv", decimal="\t", names=h_r_t_name,delimiter=",")
    # print(h_r_t.info())
    # print(h_r_t.head())
    
    # 去除重复实体
    entity = set()
    entity_h = h_r_t[':START_ID'].tolist()
    entity_t = h_r_t[':END_ID'].tolist()
    for i in entity_h:
        entity.add(i)
    for i in entity_t:
        entity.add(i)
    print(entity)
    # 保存节点文件
    csvf_entity = open("entity.csv", "w", newline='', encoding='utf-8')
    w_entity = csv.writer(csvf_entity)
    # 实体ID,要求唯一,名称,LABEL标签,可自己不同设定对应的标签
    w_entity.writerow(("entity:ID", "name", ":LABEL"))
    entity = list(entity)
    entity_dict = {}
    for i in range(len(entity)):
        w_entity.writerow(("e" + str(i), entity[i], "my_entity"))
        entity_dict[entity[i]] = "e" + str(i)
    csvf_entity.close()
    # 生成关系文件,起始实体ID,终点实体ID,要求与实体文件中ID对应,:TYPE即为关系
    h_r_t[':START_ID'] = h_r_t[':START_ID'].map(entity_dict)
    h_r_t[':END_ID'] = h_r_t[':END_ID'].map(entity_dict)
    h_r_t[":TYPE"] = h_r_t['role']
    h_r_t.pop('role')
    h_r_t.to_csv("roles.csv", index=False)
    

    entity.csv文件如下图
    在这里插入图片描述

    roles.csv文件如下图所示
    在这里插入图片描述

    2.调用neo4j构建知识图谱

    在命令行输入neo4j-admin.bat import --nodes D:\python_workplaces\get_kg\entity.csv --relationships D:\python_workplaces\get_kg\roles.csv(对于换成自己的链接)
    成功的话会在data文件夹下的databases文件夹下出现graph.db
    在这里插入图片描述
    这时候重新打开一个新的命令行,输入neo4j.bat console,打开http://localhost:7474/browser/,登陆,左侧点击,
    在这里插入图片描述

    即会看到
    在这里插入图片描述

    说明成功了
    3.失败的问题有
    (1)实体错误,常见为实体不是一行输入的,是多行,出错信息中出现e222 error字样,修改为一行即可
    (2)关系对应上,常见为没有该实体,,出错信息为e222 missing,把出错的实体补上就行,我才用的是把其设置为一个error实体
    (3)出现NAN实体,把这个实体及其关系去掉即可,或者一开始就不把nan作为一个实体

    展开全文
  • python自学了接近一年了,发现自己仍然和入门时候一样,对一些原理上的引用不是很清楚,看有些代码或者...4、学习一些框架(完全无从下手,知识点的欠缺和代码能力欠缺) 5、使用Django做了一个静态网页 得到这些...

    python自学了接近一年了,发现自己仍然和入门时候一样,对一些原理上的引用不是很清楚,看有些代码或者源码也很吃力,不禁自问:这些时间都在做什么?得到的答案是:

    1、做小demo(类似乘法口诀/小功能解释器等)

    2、各个模块得用法(单纯模块拉过来熟悉方法)

    3、写一些自动化接口

    4、学习一些框架(完全无从下手,知识点的欠缺和代码能力欠缺)

    5、使用Django做了一个静态网页

    得到这些答案,突然惊觉,这样下去可能都会从入门到放弃,以上努力没用么?有用!但是太零散了,散到过几天原原本本的还回去,完全忘掉,迷茫间找到以下图谱,发现可以按这个步骤来,不怕慢,也不怕忘记,只想稳稳的学习过程中培养一种思想,python编写各个模块应用会用到哪些库,怎么用,如何先脑海中大致设计下然后踏踏实实去实现,错了,简陋了都没关系,一步步能有所进步就知足了,

    所以,请努力!请自勉

    gvim python编辑器配置:https://www.jianshu.com/p/edd8aad3adc7

    linux vim设置:https://www.jianshu.com/p/9c51498797bf

    算法与数据结构视频:https://blog.csdn.net/weixin_33701564/article/details/88177021

    顺便有个数据结构和算法的帖子分享:https://blog.csdn.net/tianmuha/article/details/82728930

    实验楼跟机练习:https://www.shiyanlou.com

    leetcode刷题(比较难):https://leetcode-cn.com

    展开全文
  • 一、 开发坏境 技术点 python基础 Django框架基本原理与Django项目基本实现 关系型数据库基本原理 ...Django上AJAX传输操作 ...在项目中创建python manage.py graph创建app用来实现前端对知识图谱的操作,
  • 知识图谱——从零开始用neo4j框架对csv文件构建知识图谱(一)——安装neo4j 1.构建三元组关系 三元组为实体——关系——实体 在上文安装好neo4j后,我们需要对以及爬下来的数据进行拆分,原先的数据是,第一列为...
  • Python-StuQ技能图谱

    2019-08-10 04:57:53
    汇集整理共建泛 IT 技术领域(云计算,大数据,运维,安全,开发语言,智能硬件等)及互联网产品、运营等领域学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长。
  • 基于python的Django框架和Neo4j的知识图谱可视化 大家可以先看看这几篇文章 在这里面我已经把我们需要的知识图谱给构建好了。然后就是我们的问答环节。因为我们构建的知识图谱就是基于学者网上面的学者信息,所以...
  • 基于neo4j的漫威人物知识图谱 去做: 样式 搜索功能 效果演示: 目前尚未部署到网上 涉及技术: html,css,js Python 烧瓶 py2neo,cytoscape.js neo4j,CQL 描述: 数据采用的是别人整理好的漫威人物关系数据...
  • 最近一个月在研究知识图谱方面的内容,在github上找到一个关于汽车行业的知识图谱开源项目,非常不错,于是我对它进行了一些改造,使之变成了一个基于知识图谱的影视剧推荐系统。 环境 python3、flask前端框架、图...
  • 开源web知识图谱项目 爬取百度百科中文页面 解析三元组和网页内容 建立中文知识图谱 建立百科bot(重建中) 更新20200720 Windows上的部署参考,感谢LMY-nlp0701! 更新20191121 迁移代码到爬虫框架scrapy 优化了...
  • Py2neo是基于python对neo4j开发的第三方框架。 Java:图数据库开发以来的开发环境 Thlac/corenlp:清华大学自然语言处理工具包 1.2 图数据库的配置 后续课程逐渐完成 1.3程序的运行: 老师:既可以直接运行,也把...
  • 研究完TransE之后,继续研究了一下TransH、TransR、TransD算法,想搜搜相关代码比较一下,但搜索后发现,没有直接实现的python代码,大部分是基于TensorFlow,或者是C语言的。本来想着算了,后来想想还是写一篇关于...
  • 学习python爬虫需要的知识图谱:页面相关的知识:1、HTML知识概况2、CSS知识概况3、JavaScript知识概况爬虫的各种知识框架:4、爬虫知识1:了解爬虫知识...
  • 了解作者最近学习得比较多的搜索引擎和知识图谱的整体框架 4.同时作者最近找工作,里面的一些杂谈和建议也许对即将成为应届生的你有所帮助 5.当然,最重要的是你也可以尝试使用这个爬虫去爬取自己比较喜欢的图片 ...
  • 图学习-Python开发

    2021-05-25 16:48:28
    这些解决方案已在推荐,反作弊和知识图谱系统上得到应用和验证。 GL具有可移植性和灵活性,这使其对开发人员更加友好。 基于GL,开发人员能够实现一种GNN算法,自定义一些与图相关的运算符并扩展现有模块
  • 本篇讲解如何从零到无搭建基于知识图谱的问答系统,该项目为测试版本,只涉及到一种关系,几百个去重实体。该项目分别从知识图谱的创建,问题的分类,问题的解析,问题的查询这几个方面去阐述。该项目使用flask作为...
  • 包括基础知识,进阶知识,相关库,还有工具,框架,书籍等等。 个人推荐静觅制作的python3爬虫教学视频。 学习爬虫过程中走了不少弯路,但是学者就发现感觉,量变产生质变。 链接: ...
  • NLP知识积累

    2021-02-18 11:29:06
    1.熟练使用NLP工具和分词方法,例如jieba,深刻理解至少一种NLP任务如对话系统、实体识别、信息检索、文本生成,翻译系统,分词、命名体识别、知识库与知识图谱、语言模型、句法分析、情感分析、文本分类、数据挖掘...
  • 原AliGraph)是针对大规模图神经网络的研发和应用而设计的一种分布式框架,它从实际问题出发,提炼和抽象了一套适合于下图神经网络模型的编程范式,并已经成功应用在阿里巴巴内部的那种搜索推荐,网络安全,知识图谱...
  • 爬虫需要掌握的一些知识图谱: 如果不使用爬虫框架scrapy,也利用一些爬虫模块也可以自定义爬虫的过程,比如 Python标准库中提供的urllib、urllib2...
  • 推荐一个liuhuanyong大佬整理的nlp全面知识体系: https://liuhuanyong.github.io 开源 - 词向量库集合: https://www.cnblogs.com/Darwin2000/p/5786984.html https://ai.tencent.com/ailab/nlp/embedding.html ...
  • aligner: 从“人声语音”及其“语言文本”产生音素级别时间对齐标注的工具、AmpliGraph: 知识图谱表示学习(Python)库:知识图谱概念链接预测、Scattertext 文本可视化(python)、语言/知识表示工具:BERT &...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

python知识图谱框架

python 订阅