日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

GitHub:如何構(gòu)建一個股票市場知識圖譜?(附代碼&鏈接)

 昵稱16619343 2019-07-16

如何利用網(wǎng)絡(luò)上的公開數(shù)據(jù)構(gòu)建一個自己的股票證券知識圖譜呢?

[ 導(dǎo)讀 ]你不理財(cái)財(cái)不理你,理財(cái)是大家早就達(dá)成共識的事情。作為新時代的五好青年,又身具機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、知識圖譜的能力,以自己的專業(yè)知識創(chuàng)造財(cái)富,應(yīng)該更有意思。但是,股票證券市場信息繁雜,如何利用網(wǎng)絡(luò)上的公開數(shù)據(jù)構(gòu)建一個自己的股票證券知識圖譜呢?GitHub的lemonhu同學(xué),開源了一套解決方案。

github地址:

作者:lemonhu

結(jié)果預(yù)覽
數(shù)據(jù)源

本項(xiàng)目需要用到兩種數(shù)據(jù)源:一種是公司董事信息,另一種是股票的行業(yè)以及概念信息。

公司董事信息

這部分?jǐn)?shù)據(jù)包含在data目錄下的stockpage壓縮文件中,?面的每一個文件是以XXXXXX.html命名,其中XXXXXX是股票代碼。這部分?jǐn)?shù)據(jù)是由同花順個股的?頁爬取而來的,執(zhí)行解壓縮命令unzip stockpage.zip即可獲取。比如對于600007.html,這部分內(nèi)容來自于:http://stockpage.10jqka.com.cn/600007/company/#manager

股票行業(yè)以及概念信息

這部分信息也可以通過?上公開的信息得到。在這里,我們使用Tushare工具來獲得,詳細(xì)細(xì)節(jié)見之后具體的任務(wù)部分。

從?頁中抽取董事會的信息

在我們給定的html文件中,需要對每一個股票/公司抽取董事會成員的信息,這部分信息包括董事會成員“姓名”、“職務(wù)”、“性別”、“年齡”共四個字段。首先,姓名和職務(wù)的字段來自于:

在這里總共有12位董事成員的信息,都需要抽取出來。另外,性別和年齡字段也可以從下附圖里抽取出來:

最后,生成一個 executive_prep.csv文件,格式如下:

高管姓名性別年齡股票代碼職位
樸明志51600007董事?/董事
高燕60600007執(zhí)?董事
劉永政50600008董事?/董事
···············

注:建議表頭最好用相應(yīng)的英文表示。

獲取股票行業(yè)和概念的信息

對于這部分信息,我們可以利?工具Tushare來獲取,官網(wǎng)為http:/// ,使用pip命令進(jìn)行安裝即可。下載完之后,在python里即可調(diào)用股票行業(yè)和概念信息。

參考鏈接:

http:///classifying.html#id2

通過以下的代碼獲得股票行業(yè)信息,并把返回的信息直接存儲在stock_industry_prep.csv文件里。

類似的,可以通過以下代碼即可獲得股票概念信息,并把它們存儲在stock_concept_prep.csv文件里。

設(shè)計(jì)知識圖譜

設(shè)計(jì)一個這樣的圖譜:

  • 創(chuàng)建“人”實(shí)體,這個人擁有姓名、性別、年齡

  • 創(chuàng)建“公司”實(shí)體,除了股票代碼,還有股票名稱

  • 創(chuàng)建“概念”實(shí)體,每個概念都有概念名

  • 創(chuàng)建“行業(yè)”實(shí)體,每個行業(yè)都有?業(yè)名

  • 給“公司”實(shí)體添加“ST”的標(biāo)記,這個由LABEL來實(shí)現(xiàn)

  • 創(chuàng)建“人”和“公司”的關(guān)系,這個關(guān)系有董事長、執(zhí)行董事等等

  • 創(chuàng)建“公司”和“概念”的關(guān)系

  • 創(chuàng)建“公司”和“行業(yè)”的關(guān)系

把設(shè)計(jì)圖存儲為design.png文件。

注:實(shí)體名字和關(guān)系名字需要易懂,對于上述的要求,并不一定存在唯一的設(shè)計(jì),只要能夠覆蓋上面這些要求即可?!癝T”標(biāo)記是用來刻畫?個股票嚴(yán)重虧損的狀態(tài),這個可以從給定的股票名字前綴來判斷,背景知識可參考百科ST股票,“ST”股票對應(yīng)列表為['*ST', 'ST', 'S*ST', 'SST']。

創(chuàng)建可以導(dǎo)?Neo4j的csv文件

在前兩個任務(wù)里,我們已經(jīng)分別生成了 executive_prep.csv, stock_industry_prep.csv, stock_concept_prep.csv,但這些文件不能直接導(dǎo)入到Neo4j數(shù)據(jù)庫。

所以需要做?些處理,并生成能夠直接導(dǎo)入Neo4j的csv格式。我們需要生成這?個文件:

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

對于格式的要求,請參考:https:///docs/operations-manual/current/tutorial/import-tool/

利用上面的csv文件生成數(shù)據(jù)庫

這個命令會把所有的數(shù)據(jù)導(dǎo)入到Neo4j中,數(shù)據(jù)默認(rèn)存放在 graph.db 文件夾里。如果graph.db文件夾之前已經(jīng)有數(shù)據(jù)存在,則可以選擇先刪除再執(zhí)行命令。

把Neo4j服務(wù)重啟之后,就可以通過localhost:7474觀察到知識圖譜了。

查詢分析

基于構(gòu)建好的知識圖譜,通過編寫Cypher語句回答如下問題:

  • 有多少個公司目前是屬于“ST”類型的?

  • “600519”公司的所有獨(dú)立董事人員中,有多少人同時也擔(dān)任別的公司的獨(dú)立董事職位?

  • 有多少公司既屬于環(huán)保行業(yè),又有外資背景?

  • 對于有鋰電池概念的所有公司,獨(dú)?董事中女性?員?例是多少?

請?zhí)峁?yīng)的Cypher語句以及答案,并把結(jié)果寫在result.txt。

實(shí)施問題

  • 構(gòu)建人的實(shí)體時,重名問題具體怎么解決?

  • 把簡單思路寫在result.txt文件中。

工程目錄

具體內(nèi)容,請到Github庫進(jìn)行查看。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多