引言:本系統的目標是設計並實現一個基於分佈式數據庫HBase的文獻數據挖掘系統,以幫助科研人員分析出相關科技前沿領域的專家、機構等的學術影響力。並挖掘領域高頻詞和不同協作者之間的關係圖譜,如此便可達到科研決策支持的目的。以下將從幾個方面進行簡要介紹。
一、開發意義
科研文獻是科技與學術的載體,高效的分析科研文獻對科技的發展有着重要的推動作用。準確地提取出期刊會議中科研文獻元數據裏所隱藏的信息,可提高科研文獻分析的準確度與效率。
二、功能架構設計
本系統的功能主要分爲三個模塊,分別是數據統計分析結果展示平臺、後臺管理系統和數據存儲平臺,其總體功能架構如圖所示。
三、系統實現
3.1 開發環境及框架配置
考慮到系統需求,採用在CentOS系統上,搭建整個開發和運行環境,其中包括Hadoop分佈式平臺以及HBase分佈式數據庫,在Win10上搭建Django框架和關係型數據庫MySQL等必要的開發環境。
環境/框架 | 名稱/版本 |
---|---|
操作系統 | CentOS 7.5+Win10 |
數據庫 | MySQL 5.7+HBase 2.1.0 |
數據庫管理軟件 | Navicat-10.1.7 |
主要編程語言 | Python-3.6.6 |
Web服務器 | Nginx服務器 |
後端框架Django | 2.0.1 |
前端框架LayUI | 2.4.5 |
前端框架Bootstrap | 3.3.7 |
可視化圖庫ECharts | 4.2.1 |
Hadoop | 3.0.3 |
Zookeeper | 3.4.13 |
Gephi複雜網絡分析軟件 | 0.9.2 |
3.2 主要技術實現過程
- 搭建Hadoop平臺。使用四臺雲主機(CentOS7.5)搭建集羣,配置好HDFS,ZooKeeper和HBase。
- 異步爬取數據。使用Python中的
asyncio
和aiohttp
庫實現異步爬蟲,從而異步爬取AAAI人工智能會議的歷年論文元數據(包括論文標題、摘要、作者、機構以及關鍵詞等數據)存儲到Excel表中,並對爬取的數據進行規則清洗和必要的人工清洗得到較爲乾淨的數據。 - 數據分析。①利用Excel函數進行數據去重、統計、排序;②利用Python構建作者數據的共現矩陣,然後將其三元組數據導入至
Gephi
軟件進行複雜網絡可視化並導出SVG
可伸縮矢量圖片;③利用LDA主題模型對論文摘要進行主題聚類,得到top5熱門話題;④最終將清洗後的完整數據以及分析結果數據存儲至位於雲端的HBase中。 - Web系統開發。使用
Django
+LayUI
+Bootstrap
開發(對於前端樣式衝突問題可通過提升優先級解決),主要功能有註冊登錄、忘記密碼郵箱驗證、個人中心信息修改、全局檢索、論文下載、數據分析結果展示(使用Echarts
和Gephi
進行數據可視化)以及詞雲圖(中文使用jieba
分詞,英文使用wordcloud
分詞)等。同時使用Django第三方插件xadmin
進行後臺管理系統的快速註冊和綁定。 - 系統部署。最後將系統部署到雲端Nginx服務器中。
四、系統界面展示
4.1 系統主界面展示
4.2 用戶註冊登錄頁面
①註冊頁面如下:
點擊註冊按鈕後,系統郵箱會自動給註冊用戶郵箱發激活鏈接(如下圖),當用戶在個人郵箱中點擊激活鏈接後方可登錄,以此來確認註冊爲本人操作。
②登錄頁面如下:
③忘記密碼頁面如下,使用郵箱驗證修改密碼:
用戶在收到郵件後點擊修改頁面鏈接後,跳轉到如下頁面進行密碼修改。點擊“提交”按鈕後會自動跳轉到登錄頁面進行登錄。如圖爲修改密碼頁面圖。
4.3 用戶個人中心
用戶成功登錄進入系統主頁面後,可進入個人中心查看個人信息,同時可以完善或修改自己的個人信息,其中包括頭像、密碼、暱稱、性別和地址等信息。
4.4 全局檢索功能
全局檢索功能主要方便用戶快速查找所需信息。其中,本系統提供了“標題”、“作者”和“機構”三個方面的模糊查詢服務,並對英文關鍵詞大小寫不敏感。如圖爲按論文標題查找,關鍵詞爲Machine LEARNING
。
4.5 系統各項功能模塊
4.5.1 論文所屬國家分佈(圖表基於Echarts
實現)
向下滑動可看到top10國家以及各個國家的具體論文發表機構分佈(該表樣式由LayUI
提供)。
4.5.2 AAAI會議歷年中稿率
4.5.3 AAAI詞雲圖
①動態詞雲圖,使用WordArt第三方在線工具導入。
②靜態詞雲圖,使用Python中的wordcloud
製作。
4.5.4 AAAI作者關係圖譜
在對作者數據構建共現矩陣並得出其三元組存儲形式後,將數據導入到Gephi
,使用力引導佈局繪製出如下知識圖譜
,並以SVG
矢量可伸縮圖片保存,將其導入到HTML
中,借用開源JavaScript包svg_Zoom_Pan
實現可無限伸縮且可平移的網頁效果。(具體實現步驟見此)
4.5.5 AAAI會議論文主題聚類(使用LDA主題模型)
其中top5
主題分別是:
- 機器學習的理論和應用
- 自然語言處理
- 深度神經網絡
- 知識表現與垂直搜索
- 博弈論與經濟範式
4.5.6 AAAI會議論文概覽及下載頁面
點擊標題鏈接後可進入到論文詳情頁面,可看到論文標題、摘要以及作者和所屬機構,同時對於已登錄用戶可提供PDF論文下載服務。
4.5.7 AAAI會議論文作者統計
本系統對前五年的作者、前三年以及2018年的做了統計(其中細化爲所有作者和第一作者兩部分)
4.5.8 AAAI會議論文機構統計
本系統同時對前五年、前三年和2018年機構做了統計,細化規則同上,此處不再贅述。
4.6 系統管理後臺
五、完整代碼及相關文件說明
完整代碼見我的GitHub:DataMingingPaper
- 機構國家分佈、論文接受率、論文概覽、論文詳情頁面、詞雲圖、作者和機構統計頁面後端代碼見:
DataMingingPaper/apps/statistic/views.py
;其路由設置見DataMingingPaper/apps/statistic/urls.py
- 連接遠程HBase以及相關HBase表操作代碼見:
DataMingingPaper/apps/statistic/connect_hbase.py
- 用戶登錄、註冊、忘記密碼找回、賬號激活、個人中心信息修改及頭像上傳和404頁面配置頁面後端代碼見:
DataMingingPaper/apps/users/views.py
- 用戶個人信息ORM代碼見:
DataMingingPaper/apps/users/models.py
xadmin
後臺管理系統代碼見:DataMingingPaper/apps/users/adminx.py
- 郵件發送代碼見:
DataMingingPaper/apps/utils/email_send.py
- 異步爬蟲代碼見:
DataMingingPaper/spider/metadata_Coroutine_Spider.py
- 共現矩陣構建算法見:
DataMingingPaper/others/Co-occurrence_Matrix.py
- LDA主題模型算法見:
DataMingingPaper/others/LDAkeywords.py
- 詞雲圖代碼見:
DataMingingPaper/others/wordcloud.py
- 各個HTML頁面見:
DataMingingPaper/templates/