python

当前位置:中华考试网 >> python >> python问答 >> 文章内容

知识图谱可以用python构建吗?

来源:中华考试网  [2020年10月12日]  【

  知识图谱可以用python构建吗?

  答案当然是可以的!!!

  那么如何使用python构建

  什么是知识图谱

  从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.txt

  Pandas抽取excel数据

  python中pandas非常适用于数据分析与处理,可以将excel文件转换成dataframe格式,这种格式类似于Spark中的Dataframe结构,可以用类sql的形式对数据进行处理。

  Excel数据结构如下

  通过函数data_extraction和函数relation_extrantion分别抽取构建知识图谱所需要的节点数据以及联系数据,构建三元组。

  数据提取主要采用pandas将excel数据转换成dataframe类型

  invoice_neo4j.py

  建立知识图谱所需节点和关系数据

  DataToNeo4jClass.py

  具体代码请移步到GitHub上下载

  详细内容请到github下载,项目名neo4j-python-pandas-py2neo-v3

责编:hym
  • 会计考试
  • 建筑工程
  • 职业资格
  • 医药考试
  • 外语考试
  • 学历考试