添加图片

This commit is contained in:
liuhuanyong 2021-10-26 18:32:26 +08:00
parent 08b56a84c8
commit fbdf96e9bb
14 changed files with 68 additions and 28 deletions

BIN
.DS_Store vendored

Binary file not shown.

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="fcffa5b3-0877-45e0-9def-70a8af11188a" name="Default Changelist" comment="" /> <list default="true" id="fcffa5b3-0877-45e0-9def-70a8af11188a" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/readme.md" beforeDir="false" afterPath="$PROJECT_DIR$/readme.md" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -67,6 +70,34 @@
</counts> </counts>
</usages-collector> </usages-collector>
</session> </session>
<session id="1184818442">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.open.time.1" value="1" />
<entry key="project.opened" value="1" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="md" value="50" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="Markdown" value="50" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="md" value="1" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="Markdown" value="1" />
</counts>
</usages-collector>
</session>
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
@ -83,8 +114,8 @@
<entry file="file://$PROJECT_DIR$/readme.md"> <entry file="file://$PROJECT_DIR$/readme.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT"> <state split_layout="SPLIT">
<first_editor relative-caret-position="420"> <first_editor relative-caret-position="568">
<caret line="20" column="8" lean-forward="true" selection-start-line="20" selection-start-column="8" selection-end-line="20" selection-end-column="8" /> <caret line="85" column="37" selection-start-line="85" selection-start-column="37" selection-end-line="85" selection-end-column="37" />
</first_editor> </first_editor>
<second_editor /> <second_editor />
</state> </state>
@ -112,6 +143,9 @@
<find>小类</find> <find>小类</find>
</findStrings> </findStrings>
</component> </component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
@ -126,8 +160,9 @@
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds" fullScreen="true">
<option name="y" value="25" /> <option name="x" value="113" />
<option name="y" value="35" />
<option name="width" value="1280" /> <option name="width" value="1280" />
<option name="height" value="701" /> <option name="height" value="701" />
</component> </component>
@ -136,7 +171,6 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<expand> <expand>
@ -148,6 +182,7 @@
<select /> <select />
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
@ -234,10 +269,10 @@
<servers /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="25" width="1280" height="701" extended-state="6" /> <frame x="0" y="0" width="1280" height="800" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.03671875" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1796875" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
@ -285,8 +320,8 @@
<entry file="file://$PROJECT_DIR$/readme.md"> <entry file="file://$PROJECT_DIR$/readme.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT"> <state split_layout="SPLIT">
<first_editor relative-caret-position="420"> <first_editor relative-caret-position="568">
<caret line="20" column="8" lean-forward="true" selection-start-line="20" selection-start-column="8" selection-end-line="20" selection-end-column="8" /> <caret line="85" column="37" selection-start-line="85" selection-start-column="37" selection-end-line="85" selection-end-column="37" />
</first_editor> </first_editor>
<second_editor /> <second_editor />
</state> </state>

BIN
img/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
img/10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

BIN
img/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

BIN
img/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

BIN
img/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
img/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
img/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

BIN
img/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

BIN
img/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

BIN
img/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 KiB

View File

@ -8,45 +8,45 @@
当前,为了进一步推动产业发展,本文围绕金融领域,推出面向上市公司的产业链图谱。 当前,为了进一步推动产业发展,本文围绕金融领域,推出面向上市公司的产业链图谱。
项目地址: 项目地址:
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/1.png)
# 一、项目构成 # 一、项目构成
产业链知识图谱包括A股上市公司、行业和产品共3类实体包括上市公司所属行业关系、行业上级关系、产品上游原材料关系、产品下游产品关系、公司主营产品、产品小类共6大类。 产业链知识图谱包括A股上市公司、行业和产品共3类实体包括上市公司所属行业关系、行业上级关系、产品上游原材料关系、产品下游产品关系、公司主营产品、产品小类共6大类。
通过数据处理、抽取最终建成图谱规模数十万其中包括上市公司4,654家行业511个产品95,559条、上游材料56,824条上级行业480条下游产品390条产品小类52,937条所属行业3,946条。 通过数据处理、抽取最终建成图谱规模数十万其中包括上市公司4,654家行业511个产品95,559条、上游材料56,824条上级行业480条下游产品390条产品小类52,937条所属行业3,946条。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/2.png)
# 二、项目构建 # 二、项目构建
1、实体构建 1、实体构建
1上市公司 1上市公司
目前上市公司已经达到四千多家,是我国重要的公司代表与行业标杆,本图谱选取上市公司作为基础实体之一。通过交易所公开信息中,可以得到上市公司代码、全称、简称、注册地址、挂牌等多个信息。 目前上市公司已经达到四千多家,是我国重要的公司代表与行业标杆,本图谱选取上市公司作为基础实体之一。通过交易所公开信息中,可以得到上市公司代码、全称、简称、注册地址、挂牌等多个信息。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/3.png)
2行业分类 2行业分类
行业是产业链图谱中另一个核心内容,也是承载产业、公司及产品的一个媒介,通过这一领携作用,可以生产出大量的行业指数、热点行业等指标。 行业是产业链图谱中另一个核心内容,也是承载产业、公司及产品的一个媒介,通过这一领携作用,可以生产出大量的行业指数、热点行业等指标。
目前关于行业,已经陆续出现多个行业规范,代表性的有申万三级行业分类、国民经济行业分类等。中国上市公司所属行业的分类准则是依据营业收入等财务数据为主要分类标准和依据,所采用财务数据为经过会计事务所审计并已公开披露的合并报表数据。 目前关于行业,已经陆续出现多个行业规范,代表性的有申万三级行业分类、国民经济行业分类等。中国上市公司所属行业的分类准则是依据营业收入等财务数据为主要分类标准和依据,所采用财务数据为经过会计事务所审计并已公开披露的合并报表数据。
2021年6月申万发布了2021版的行业分类规范将1级行业从28个调整至31个、2级行业从104个调整至134个、3级行业从227个调整至346个新增1级行业美容护理等新增2级行业并将上市公司进行了归属。本图谱选用申万行业作为基础数据。 2021年6月申万发布了2021版的行业分类规范将1级行业从28个调整至31个、2级行业从104个调整至134个、3级行业从227个调整至346个新增1级行业美容护理等新增2级行业并将上市公司进行了归属。本图谱选用申万行业作为基础数据。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/4.png)
3业务产品 3业务产品
业务产品主要指公司主营范围、经营的产品,用于对一个公司的定位。可以从公司的经营范围、年报等文本中进行提取得到。 业务产品主要指公司主营范围、经营的产品,用于对一个公司的定位。可以从公司的经营范围、年报等文本中进行提取得到。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/5.png)
2、关系构建 2、关系构建
1公司所属行业 1公司所属行业
通过公开的上市公司行业分类表,可以得到上市公司所对应的行业分类数据。 通过公开的上市公司行业分类表,可以得到上市公司所对应的行业分类数据。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/6.png)
2行业上级关系 2行业上级关系
通过公开的行业三级分类情况,可以通过组合的形式得到行业之间的上级关系数据。 通过公开的行业三级分类情况,可以通过组合的形式得到行业之间的上级关系数据。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/7.png)
3公司主营产品关系 3公司主营产品关系
上市公司的经营产品数据可以从两个方面来获得,一个是从公司简介中的经营范围中结合制定的规则进行提取,另一个是从公司每年发布的半年报、年报中进行提取。这些报告中会有按经营业务、经营产品、经营地域等几个角度对公司的营收占比进行统计,也可以通过制定规则的方式进行提取。第二种方法中,由于已经有统计数据,所以我们可以根据占比数据大小,对主营产品这一关系进行赋值。 上市公司的经营产品数据可以从两个方面来获得,一个是从公司简介中的经营范围中结合制定的规则进行提取,另一个是从公司每年发布的半年报、年报中进行提取。这些报告中会有按经营业务、经营产品、经营地域等几个角度对公司的营收占比进行统计,也可以通过制定规则的方式进行提取。第二种方法中,由于已经有统计数据,所以我们可以根据占比数据大小,对主营产品这一关系进行赋值。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/8.png)
4产品之间的上下游关系 4产品之间的上下游关系
产品之间的上下游关系,是展示产品之间传导逻辑关系的一个重要方法,包括上游原材料以及下游产品两大类。我们可以多种来获取: 产品之间的上下游关系,是展示产品之间传导逻辑关系的一个重要方法,包括上游原材料以及下游产品两大类。我们可以多种来获取:
一种是基于规则模式匹配的方式进行抽取,如抽取上游原材料这一关系可以由诸如"a是b的原料/原材料/主要构件/重要原材料/ 上游原料"的模式进行抽取",而下游产品,则同理可以通过"A是B的下游成品/产品"等模式进行提取。 一种是基于规则模式匹配的方式进行抽取,如抽取上游原材料这一关系可以由诸如"a是b的原料/原材料/主要构件/重要原材料/ 上游原料"的模式进行抽取",而下游产品,则同理可以通过"A是B的下游成品/产品"等模式进行提取。
另一种是基于序列标注的提取。还有一种是基于现有结构化知识图谱的提取,例如已经结构化好的百科知识三元组,可以通过设定谓词及其扩展进行过滤。 另一种是基于序列标注的提取。还有一种是基于现有结构化知识图谱的提取,例如已经结构化好的百科知识三元组,可以通过设定谓词及其扩展进行过滤。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/9.png)
5产品之间的小类关系 5产品之间的小类关系
对于一个产品而言其是有大小层级分类的在缺少大类产品名称的时候可以通过计算小类产品来得到相应指标。与产品之间的上下游数据类似可以通过启发式规则的方式进行提取如“A是一种B”也可以通过字符之间的组成成分进行匹配生成如“螺纹钢”是“精细螺纹钢”的一个大类。 对于一个产品而言其是有大小层级分类的在缺少大类产品名称的时候可以通过计算小类产品来得到相应指标。与产品之间的上下游数据类似可以通过启发式规则的方式进行提取如“A是一种B”也可以通过字符之间的组成成分进行匹配生成如“螺纹钢”是“精细螺纹钢”的一个大类。
![image](https://github.com/liuhuanyong/ChainKnowledgeGraph/blob/master/img/10.png)
# 三、项目运行 # 三、项目运行
1、data文件夹下包括了本项目的数据信息 1、data文件夹下包括了本项目的数据信息
@ -80,7 +80,6 @@ python build_graph.py
If any question about the project or me ,see https://liuhuanyong.github.io/ If any question about the project or me ,see https://liuhuanyong.github.io/
如有自然语言处理、知识图谱、事理图谱、社会计算、语言资源建设等问题或合作,可联系我: 如有自然语言处理、知识图谱、事理图谱、社会计算、语言资源建设等问题或合作,可联系我:
1、我的github项目介绍https://liuhuanyong.github.io 1、我的github项目介绍https://liuhuanyong.github.io
2、我的csdn博客https://blog.csdn.net/lhy2014 2、我的csdn博客https://blog.csdn.net/lhy2014