来源:专知

本文约 600007 董事⻓/董事 高燕 女 60 600007 执⾏董事 刘永政 男 50 600008 董事⻓/董事 ··· ··· ··· ··· ···

注:建议表头最好用相应的英文表示。

获取股票行业和概念的信息

对于这部分信息,我们可以利⽤工具Tushare来获取,官网为http://tushare.org/ ,使用pip命令进行安装即可。下载完之后,在python里即可调用股票行业和概念信息。

参考链接:

http://tushare.org/classifying.html#id2

通过以下的代码获得股票行业信息,并把返回的信息直接存储在stock_industry_prep.csv文件里。

类似的,可以通过以下代码即可获得股票概念信息,并把它们存储在stock_concept_prep.csv文件里。

设计知识图谱

设计一个这样的图谱:

  • 创建“人”实体,这个人拥有姓名、性别、年龄

  • 创建“公司”实体,除了股票代码,还有股票名称

  • 创建“概念”实体,每个概念都有概念名

  • 创建“行业”实体,每个行业都有⾏业名

  • 给“公司”实体添加“ST”的标记,这个由LABEL来实现

  • 创建“人”和“公司”的关系,这个关系有董事长、执行董事等等

  • 创建“公司”和“概念”的关系

  • 创建“公司”和“行业”的关系

把设计图存储为design.png文件。

注:实体名字和关系名字需要易懂,对于上述的要求,并不一定存在唯一的设计,只要能够覆盖上面这些要求即可。“ST”标记是用来刻画⼀个股票严重亏损的状态,这个可以从给定的股票名字前缀来判断,背景知识可参考百科ST股票,“ST”股票对应列表为['*ST', 'ST', 'S*ST', 'SST']。

创建可以导⼊Neo4j的csv文件

在前两个任务里,我们已经分别生成了 executive_prep.csv, stock_industry_prep.csv, stock_concept_prep.csv,但这些文件不能直接导入到Neo4j数据库。

所以需要做⼀些处理,并生成能够直接导入Neo4j的csv格式。我们需要生成这⼏个文件:

executive.csv, stock.csv, concept.csv, industry.csv, executive_stock.csv, stock_industry.csv, stock_concept.csv。

对于格式的要求,请参考:https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/

利用上面的csv文件生成数据库

这个命令会把所有的数据导入到Neo4j中,数据默认存放在 graph.db 文件夹里。如果graph.db文件夹之前已经有数据存在,则可以选择先删除再执行命令。

把Neo4j服务重启之后,就可以通过localhost:7474观察到知识图谱了。

查询分析

基于构建好的知识图谱,通过编写Cypher语句回答如下问题:

  • 有多少个公司目前是属于“ST”类型的?

  • “600519”公司的所有独立董事人员中,有多少人同时也担任别的公司的独立董事职位?

  • 有多少公司既属于环保行业,又有外资背景?

  • 对于有锂电池概念的所有公司,独⽴董事中女性⼈员⽐例是多少?

请提供对应的Cypher语句以及答案,并把结果写在result.txt。

实施问题

  • 构建人的实体时,重名问题具体怎么解决?

  • 把简单思路写在result.txt文件中。

工程目录

具体内容,请到Github库进行查看。

编辑:王菁

校对:洪舒越

原文地址:https://blog.csdn.net/eNohtZvQiJxo00aTz3y8/article/details/96055187