知识图谱构建技术流程是什么(python构建知识图谱)
1,知识图谱
1,何为知识图谱
通俗地讲 ,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络 。
2,知识图谱这个网络具备的特性:
2.1 由节点(Point)和边(Edge)组成
2.2 每个节点表示现实世界中存在的“实体 ” ,每条边为实体与实体之间的“关系
2.3 知识图谱是关系的最有效的表示方式
3 知识图谱能干什么?
先按知识图谱应用的深度主要可以分为两大类:
一是通用知识图谱 ,通俗讲就是大众版 ,没有特别深的行业知识及专业内容 ,一般是解决科普类 、常识类等问题 。
二是行业知识图谱 ,通俗讲就是专业版 ,根据对某个行业或细分领域的深入研究而定制的版本 ,主要是解决当前行业或细分领域的专业问题 。
2,python如何构建知识图谱?
2.1,javaJDK安装
1,JDK下载(neo4j要求11以上jdk)
下载慢
https://www.oracle.com/java/technologies/downloads/
csdn下载较快
https://download.csdn.net/download/h735004790/122564912, JDK安装
1,新建文件夹作为安装文件夹
2,双击jdk-14_windows-x64_bin.exe进行安装
3,下一步
4,配置环境变量
安装目录的bin目录
F:\Java\bin
3,验证
2.2 Neo4j安装
1,下载
https://neo4j.com/download-center/2,选择
3,解压4,设置环境变量
F:\neo4j-community-4.4.5\bin\neo4j.bat
5,验证neo4j.bat console
出现错误
解决:
打开neo4j.ps1文件里Import-Module "$PSScriptRoot\Neo4j-Management.psd1"为绝对路径
改为/:
验证: neo4j.bat console出现报错:
解决:找到
改为jdk路径:
验证: neo4j.bat console成功:
2.3,设置图数据库密码
启动后在浏览器中键入http://localhost:7474/ ,进入以下界面 。
用户名为neo4j ,密码也是neo4j ,连接后会让我们修改密码 。这就是neo4j的启动与初始密码 。
2.4 更新密码
2.5 python链接图数据库
from py2neo import Node, Graph, Relationship,NodeMatcher class DataToNeo4j(object): def __init__(self): """建立连接""" link = Graph("http://localhost:7474", auth=("neo4j", "123456")) self.graph = link #self.graph = NodeMatcher(link) # 定义label self.buy = buy self.sell = sell self.graph.delete_all() self.matcher = NodeMatcher(link) def create_node(self, node_buy_key,node_sell_key): """建立节点""" for name in node_buy_key: buy_node = Node(self.buy, name=name) self.graph.create(buy_node) for name in node_sell_key: sell_node = Node(self.sell, name=name) self.graph.create(sell_node) def create_relation(self, df_data): """建立联系""" m = 0 for m in range(0, len(df_data)): try: print(list(self.matcher.match(self.buy).where("_.name=" + "" + df_data[buy][m] + ""))) print(list(self.matcher.match(self.sell).where("_.name=" + "" + df_data[sell][m] + ""))) rel = Relationship(self.matcher.match(self.buy).where("_.name=" + "" + df_data[buy][m] + "").first(),df_data[money][m], self.matcher.match(self.sell).where("_.name=" + "" + df_data[sell][m] + "").first()) self.graph.create(rel) except AttributeError as e: print(e, m)简单效果展示:
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!