自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析

前言:

在上《高级统计学》时,老师提到结合所学知识点自行设计任务,并利用所学完成。

近期正好在学习python的编程和利用neo4j开展知识图谱构建,于是在征得老师同意下,尝试完成任务:“统计近6年社科基金,并构建知识图谱。”  

入门小白自学笔记,请高手勿喷。

一、任务:统计近6年与专业相关的社科基金,并构建知识图谱。

二、所用软件:pycharm、neo4j

三、步骤:

  1. 在全国哲学社会科学工作室官网查询近6年公布的社科基金项目(包括年度项目、青年社科、西部社科)
  2. 通过pycharm中的pandas库读取文件,提取所有文件中基金项目学科为(理论经济、应用经济、管理学)的项目名称,并保存为.txt文件;
  3. 采用pycharm中的jieba库进行分词;
    1. 在知网中国学术文献网络出版总库 >> 学科学术热点高频词汇
    2. Jieba分词
      • 可以采用jieba.cut进行分词;
      • 可以采用jieba.pseg.cut进行分词(可以显示词语词性);
      • 可以采用jieba.analyse直接提取文件中的关键字
  4. 统计分词的情况并进行排序;
  5. 筛选高频词汇;
  6. 利用neo4j,建立社科基金知识图谱。(可用于查询)

 

四、分布式方法及结果:

在全国哲学社会科学工作室官网查询近6年公布的社科基金项目(包括年度项目、青年社科、西部社科)

1、通过pycharm中的pandas库读取文件,提取所有文件中基金项目学科为(理论经济、应用经济、管理学)的项目名称,并保存为.txt文件。

自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第1张图片

自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第2张图片 

 2、采用pycharm中的jieba库进行分。在知网中国学术文献网络出版总库 >> 学科学术热点-经济与管理科学学科高频词汇进行分词词库补充,根据知网高频学术热点进行分词词库补充补充6000个高频词库,对提取出的项目名称进行分词。    自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第3张图片自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第4张图片最初的项目题目被分为了83782行,即83782个词(含重复词及空格行),加了高频词汇,变为73560减少了10222个词,充分说明了补充分词词库的有效性。

 

3、统计分词的情况并进行排序。对原先去除空格行的69910行词(原为73560行),去除空格项,69910合并重复项并对每个词进行数量统计,最终产生5413个词。词频从最高的3548次到最低的1次。然后,筛选掉部分我们关注度不高的词性(比如p介词、f方位词、c连词、r代词等),最终结果如下:    

自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第5张图片自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第6张图片五、利用neo4j,建立社科基金知识图谱。(可用于查询)

 

利用python中py2neo库,实现在python中进行neo4j知识图谱构建。成功实现数据的可视化。在Neo4j图数据库中,数据是通过节点、属性以及节点间关系来展现,每个节点可以拥有多个属性,不同节点之间也可以拥有多个关系,针对复杂的关系数据,Neo4j图数据库可以较好地实现可视化展示。并在这基础之上,针对传统数据库在表示数据表的连接时的局限性,Neo4j图数据库可概括为一个节点,从而大幅度提升数据检索时的效率。自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第7张图片

 Neo4j所开发的Bloom可视化工具,功能强大,非技术人员也可以轻松使用和可视化展示。neo4j可以完整显示数据库所有节点、属性及关系,该工具支持根据用户实际需求进行设置,显示部分需求信息,满足个性化需求。自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第8张图片

 

自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第9张图片

 六、利用neo4j开展数据查询 

Neo4j图形数据库查询语法简单,但功能强大。比如我们需要查询样本数据库中“三峡大学2021年项目立项情况”,只需要利用neo4j的查询语句即可实现。如果我们知道中间的结构关系,我们可以依次输入,即输入“MATCH (a:Information)  WHERE a.Place_the_unit="三峡大学" and a.Yaer="2021" 通过“RETURN count(a)”即可统计样本数量。

除了简单的条件和匹配查询,在neo4j Bloom工具中,Bloom允许用户始终对数据库运行全文搜索查询以获取其搜索输入,可以通过“Search phrase *功能自定义高级查询语句,预先定义静态搜索模板(不带参数)、带参数模板语句,并指定用于调用该查询的短语和参数,实现一键式高级查询。本实验中,我们自定义“项目名称或工作单位包含自定字符”的输出结果,即可查询到对应节点信息,以满足个性化高级查询功能。如下图属于,输入“数字经济”,即可查询到所有项目名称包含“数字经济”的项目,同时可以快速了解所有信息,以及进行关系构建。自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第10张图片

 

自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析_第11张图片

 

未来,准备结合neo4j强大的数据库构建和分类功能,通过高频词汇进行分类,进一步实现数据的分类、关系构建等任务。

你可能感兴趣的:(python,数据库开发,知识图谱,自然语言处理)