请选择 进入手机版 | 继续访问电脑版
切换皮肤
Neo4j知识图谱构建
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F0514%2F4219e124j00qabhtv000pc000hs00cuc.jpg

什么是知识图谱
从Google搜索,到聊天机器人、金融风控、物联网场景、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关。它在技术领域的热度也在逐年上升。
互联网的终极形态是万物的互联,而搜索的终极目标是对万物的直接搜索。传统搜索引擎依靠网页之间的超链接实现网页的搜索,而语义搜索是直接对事物进行搜索,如人物、机构、地点等。这些事物可能来自文本、图片、视频、音频、IoT设备等各种信息资源。而知识图谱和语义技术提供了关于这些事物的分类、属性和关系的描述,使得搜索引擎可以直接对事物进行索引和搜索。
知识图谱是由Google公司在2012年提出来的一个新的概念。从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”。但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relational Graph)。
那什么叫多关系图呢? 学过数据结构的都应该知道什么是图(Graph)。图是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边。但相反,多关系图一般包含多种类型的节点和多种类型的边。
本项目利用pandas将excel中数据抽取,以三元组形式加载到neo4j数据库中构建相关知识图谱。
运行环境
基于Neo4j能够很容易构建知识图谱,除了用neo4j自带的cypher,也支持Python包py2neo创建节点和关系从而构建知识图谱。本项目是基于发票信息,将发票数据中结构化数据抽象成三元组,分别创建节点和关系从而构建成知识图谱。
具体包依赖可以参考文件requirements.txt
neo4j-driver==1.6.2numpy==1.15.3pandas==0.23.4parso==0.3.1pickleshare==0.7.5pluggy==0.8.0prompt-toolkit==1.0.15py==1.7.0py2neo==3Pygments==2.2.0pytest==3.9.3python-dateutil==2.7.5wcwidth==0.1.7wincertstore==0.2xlrd==1.1.0
将所需依赖安装到pyton中
pip install -r requirements.txtPandas抽取excel数据
python中pandas非常适用于数据分析与处理,可以将excel文件转换成dataframe格式,这种格式类似于Spark中的Dataframe结构,可以用类sql的形式对数据进行处理。
Excel数据结构如下
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F0514%2F9cb0a1f5j00qabhtv0091c001db00arc.jpg

通过函数data_extraction和函数relation_extrantion分别抽取构建知识图谱所需要的节点数据以及联系数据,构建三元组。
数据提取主要采用pandas将excel数据转换成dataframe类型
invoice_neo4j.py
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F0514%2F0d2d8bb3j00qabhtv0018c000hs00h8c.jpg 建立知识图谱所需节点和关系数据
DataToNeo4jClass.py
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F0514%2F0b08785cj00qabhtv0016c000hs00emc.jpg





回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    Archiver|手机版|小黑屋|齐聚无忧 |网站地图

    Powered by Discuz! X3.4  © 2001-2013 Comsenz Inc.