self-implement of stock centered Finance graph from zero to full and sever as question answering base. 从无到有搭建一个以股票为中心的一定规模金融领域知识图谱,并以该知识图谱完成自动问答与分析服务。
本项目参考了刘焕勇老师的知识图谱项目:https://github.com/liuhuanyong/QASystemOnMedicalKG 知识图谱是目前自然语言处理的一个热门方向,关于较全面的参考资料,可以查看刘焕勇老师的ccks2018参会总结(https://github.com/liuhuanyong/CCKS2018Summary )。 与知识图谱相关的另一种形态,即事理图谱,可参考:(https://github.com/liuhuanyong/ComplexEventExtraction ) 本项目将包括以下两部分的内容:
- 基于问财网站数据的金融知识图谱构建
- 基于金融知识图谱的自动问答
实现模板问答
1、配置要求:要求配置neo4j数据库及相应的python依赖包。neo4j数据库用户名密码记住,并修改相应文件。 2、知识图谱数据导入:python build_stockgraph.py,导入的数据较多,估计需要几个小时。 3、启动问答:python chat_graph.py
prepare_data/build_stock_data.py:问财api获取数据生成json或者csv脚本 prepare_data/max_cut.py:基于词典的最大向前/向后切分脚本 build_stockgraph.py:知识图谱入库脚本
1.3.2 知识图谱实体类型
实体类型 | 中文含义 | 实体数量 | 举例 |
---|---|---|---|
Stock#PDATE# | 每一天的股票 | 3,359 | 平安银行;同花顺 |
Concept | 概念 | 1121 | 迪士尼;芯片概念 |
ConceptLeading | 概念龙头 | 205 | 迪士尼;芯片概念 |
Controller | 实际控制人 | 2,433 | 王妙玉;李德敏 |
Industry | 行业 | 66 | 通信服务;纺织制造 |
IndexType | 指数类型 | 75 | 创业板50;公共指数 |
EquityScale | 股本规模 | 4 | 小盘股;大盘股 |
MarketType | 市场类型 | 34 | 全部AB股;上证50 |
BuySignal | 买入信号 | 36 | bias买入信号;boll突破下轨 |
SellSignal | 卖出信号 | 24 | boll跌破上轨;kdj超买 |
TechForm | 技术形态 | 69 | 一阳二线;横盘 |
Movement | 选股动向 | 75 | 破净;持续5天放量 |
Gender | 性别 | 2 | 男;女 |
EducationBg | 学历 | 8 | 本科;中专 |
Nationality | 国籍 | 25 | 中国;日本 |
School | 学校 | 906 | 中国空军第二飞行学院;英国诺丁汉大学 |
Title | 职务 | 1005 | 事业部总经理;技术开发总监 |
Person(包含topmanager) | 人物 | 24554 | 戴海平;杨锡洪 |
Total | 总计 | 44,111 | 约4.4万实体量级 |
1.3.3 知识图谱实体关系类型
实体关系类型 | 中文含义 | 关系数量 | 举例 |
---|---|---|---|
ConceptInvolved | 所属概念 | 8,844 | <平安银行,属于,转融券标的> |
ConceptLeadingInvolved | 概念龙头 | 14,649 | <赛意信息,属于,华为概念> |
IndustryInvolved | 所属行业 | 22,238 | |
IndexTypeIs | 所属指数类 | 17,315 | |
EquityScaleIs | 股本规模 | 39,422 | |
MarketTypeIs | 股票市场类型 | 22,247 | |
TechFormIs | 技术形态 | 59,467 | |
MovementIs | 选股动向 | 40,221 | |
BuySignalIs | 买入信号 | 5,998 | |
SellSignalIs | 卖出信号 | 12,029 | |
IsControlledBy | 实际控制人 | 294,149 | |
TopManagerIs | 高管 | ||
MainBusinessIs | 主营产品 | ||
ProvinceIs | 省份 | ||
CityIs | 城市 | ||
SchoolIs | 毕业学校 | ||
EducationBgIs | 学历 | ||
NationalityIs | 国籍 | ||
GenderIs | 性别 | ||
TitleIs | 高管职务 | ||
Total | 总计 |
1.3.4 知识图谱属性类型
属性类型 | 中文含义 | 举例 |
---|---|---|
stock_id | 股票6位代码 | 000001 |
stock_code | 股票完整代码 | 000001.SZ |
stock_name | 股票名称 | 平安银行 |
industry_ths | 同花顺行业 | 交运设备-交运设备服务-汽车服务 |
open | 开盘价 | 9.39 |
close | 收盘价 | 9.39 |
high | 最高价 | 9.5 |
low | 最低价 | 9.37 |
volume_rate | 量比 | 0.86 |
question_classifier.py:问句类型分类脚本 question_parser.py:问句解析脚本 chatbot_graph.py:问答程序脚本
问句类型 | 中文含义 | 问句举例 |
---|---|---|
stockid_conceptget | 查询概念 | 平安银行有哪些概念? |
太多了,作者会写吐的 |
用户:平安银行有哪些概念?
童尼玛: 000001 平安银行的所属概念是:巴拉巴拉