基于Django+LayUI+HBase的文献数据挖掘系统的实现

引言:本系统的目标是设计并实现一个基于分布式数据库HBase的文献数据挖掘系统,以帮助科研人员分析出相关科技前沿领域的专家、机构等的学术影响力。并挖掘领域高频词和不同协作者之间关系图谱,如此便可达到科研决策支持的目的。以下将从几个方面进行简要介绍。

一、开发意义

科研文献是科技与学术的载体,高效的分析科研文献对科技的发展有着重要的推动作用。准确地提取出期刊会议中科研文献元数据里所隐藏的信息,可提高科研文献分析的准确度与效率。

二、功能架构设计

本系统的功能主要分为三个模块,分别是数据统计分析结果展示平台后台管理系统数据存储平台,其总体功能架构如图所示。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第1张图片

三、系统实现

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 主要技术实现过程

  1. 搭建Hadoop平台。使用四台云主机(CentOS7.5)搭建集群,配置好HDFSZooKeeperHBase
  2. 异步爬取数据。使用Python中的asyncioaiohttp库实现异步爬虫,从而异步爬取AAAI人工智能会议的历年论文元数据(包括论文标题、摘要、作者、机构以及关键词等数据)存储到Excel表中,并对爬取的数据进行规则清洗和必要的人工清洗得到较为干净的数据
  3. 数据分析。①利用Excel函数进行数据去重、统计、排序;②利用Python构建作者数据的共现矩阵,然后将其三元组数据导入至Gephi软件进行复杂网络可视化并导出SVG可伸缩矢量图片;③利用LDA主题模型对论文摘要进行主题聚类,得到top5热门话题;④最终将清洗后的完整数据以及分析结果数据存储至位于云端的HBase中。
  4. Web系统开发。使用Django+LayUI+Bootstrap开发(对于前端样式冲突问题可通过提升优先级解决),主要功能有注册登录、忘记密码邮箱验证、个人中心信息修改、全局检索、论文下载、数据分析结果展示(使用EchartsGephi进行数据可视化)以及词云图(中文使用jieba分词,英文使用wordcloud分词)等。同时使用Django第三方插件xadmin进行后台管理系统的快速注册和绑定。
  5. 系统部署。最后将系统部署到云端Nginx服务器中。

四、系统界面展示

4.1 系统主界面展示

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第2张图片
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第3张图片

4.2 用户注册登录页面

①注册页面如下:
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第4张图片
点击注册按钮后,系统邮箱会自动给注册用户邮箱发激活链接(如下图),当用户在个人邮箱中点击激活链接后方可登录,以此来确认注册为本人操作。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第5张图片
②登录页面如下:
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第6张图片
③忘记密码页面如下,使用邮箱验证修改密码:
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第7张图片
用户在收到邮件后点击修改页面链接后,跳转到如下页面进行密码修改。点击“提交”按钮后会自动跳转到登录页面进行登录。如图为修改密码页面图。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第8张图片

4.3 用户个人中心

用户成功登录进入系统主页面后,可进入个人中心查看个人信息,同时可以完善或修改自己的个人信息,其中包括头像、密码、昵称、性别和地址等信息。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第9张图片

4.4 全局检索功能

全局检索功能主要方便用户快速查找所需信息。其中,本系统提供了“标题”、“作者”和“机构”三个方面的模糊查询服务,并对英文关键词大小写不敏感。如图为按论文标题查找,关键词为Machine LEARNING

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第10张图片

4.5 系统各项功能模块

4.5.1 论文所属国家分布(图表基于Echarts实现)

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第11张图片
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第12张图片
向下滑动可看到top10国家以及各个国家的具体论文发表机构分布(该表样式LayUI提供)。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第13张图片

4.5.2 AAAI会议历年中稿率

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第14张图片

4.5.3 AAAI词云图

①动态词云图,使用WordArt第三方在线工具导入。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第15张图片
②静态词云图,使用Python中的wordcloud制作。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第16张图片

4.5.4 AAAI作者关系图谱

在对作者数据构建共现矩阵并得出其三元组存储形式后,将数据导入到Gephi,使用力引导布局绘制出如下知识图谱,并以SVG矢量可伸缩图片保存,将其导入到HTML中,借用开源JavaScript包svg_Zoom_Pan实现可无限伸缩且可平移的网页效果。(具体实现步骤见此)

4.5.5 AAAI会议论文主题聚类(使用LDA主题模型)

其中top5主题分别是:

  • 机器学习的理论和应用
  • 自然语言处理
  • 深度神经网络
  • 知识表现与垂直搜索
  • 博弈论与经济范式

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第17张图片

4.5.6 AAAI会议论文概览及下载页面

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第18张图片
点击标题链接后可进入到论文详情页面,可看到论文标题、摘要以及作者和所属机构,同时对于已登录用户可提供PDF论文下载服务。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第19张图片

4.5.7 AAAI会议论文作者统计

本系统对前五年的作者、前三年以及2018年的做了统计(其中细化为所有作者第一作者两部分)
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第20张图片

4.5.8 AAAI会议论文机构统计

本系统同时对前五年、前三年和2018年机构做了统计,细化规则同上,此处不再赘述。
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第21张图片

4.6 系统管理后台

基于Django+LayUI+HBase的文献数据挖掘系统的实现_第22张图片
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第23张图片
基于Django+LayUI+HBase的文献数据挖掘系统的实现_第24张图片

五、完整代码及相关文件说明

完整代码见我的GitHub:DataMingingPaper

  1. 机构国家分布、论文接受率、论文概览、论文详情页面、词云图、作者和机构统计页面后端代码见:DataMingingPaper/apps/statistic/views.py;其路由设置DataMingingPaper/apps/statistic/urls.py
  2. 连接远程HBase以及相关HBase表操作代码见:DataMingingPaper/apps/statistic/connect_hbase.py
  3. 用户登录、注册、忘记密码找回、账号激活、个人中心信息修改及头像上传和404页面配置页面后端代码见:DataMingingPaper/apps/users/views.py
  4. 用户个人信息ORM代码见:DataMingingPaper/apps/users/models.py
  5. xadmin后台管理系统代码见:DataMingingPaper/apps/users/adminx.py
  6. 邮件发送代码见:DataMingingPaper/apps/utils/email_send.py
  7. 异步爬虫代码见:DataMingingPaper/spider/metadata_Coroutine_Spider.py
  8. 共现矩阵构建算法见:DataMingingPaper/others/Co-occurrence_Matrix.py
  9. LDA主题模型算法见:DataMingingPaper/others/LDAkeywords.py
  10. 词云图代码见:DataMingingPaper/others/wordcloud.py
  11. 各个HTML页面见:DataMingingPaper/templates/

你可能感兴趣的:(Python,数据挖掘,Hadoop,机器学习,知识图谱,Django,Django,Hadoop,数据挖掘,LDA主题模型,Gephi)