• 技术文章 >常见问题 >Python常见问题

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

    哈登哈登2020-06-04 17:43:05原创3269

    知识图谱可以用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

    更多Python知识,请关注:Python自学网!!

    专题推荐:python 知识图谱
    上一篇:找不出python的语法错误该如何解决? 下一篇:在Python中$是什么意思?

    相关文章推荐

    • 人工智能python好学吗• 做人工智能为什么用Python?• Python与人工智能的关系

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网