大家好,又见面了,我是你们的朋友全栈君。
编写此文档的目的是通过系统的详细设计指导系统的编码等工作。
A. 待开发系统的名称:舆情分析系统 B. 系统架构类型:BS 架构类型,即浏览器、服务器架构类型 C.开发项目组名称:东北大学软件学院大数据班 T09 实训项目组 (lzf、lcx)
我们的舆情分析系统的需求主要由舆情首页、舆情事件分析页、舆情事件预警这三个需求模块构成。其中舆情首页包括领域(分类)舆情事件热度表、领域舆情热度趋势、舆情地域分布图,舆情事件分析包括事件文章分析、事件评论分析、舆情事件分析三大块(详细需求令见需求规格说明书),舆情事件预警包括舆情事件负面评论舆情、舆情事件负面评论增长预警、舆情事件热度增长预警。
由于系统架构类型为BS架构类型,故而系统运行在服务器上,只要任何一台安装了主流浏览器的电脑均可以通过IP地址加端口号的方式获取系统服务、访问系统页面。因此,系统的运行环境是指服务器的环境,环境大致如下:
(1) 网络正常的情况下用户点击网页后页面的跳转时间<=1s; (2) 页面数据加载与渲染时间<=5s; (3) 页面的数据量较大而导致的页面加载时间长时,页面必须提供加载提示。
系统需要运行在一个具有10GB内存的、100GB磁盘的CentOS7系统系统上,才能保证系统的性能,并且随着系统的运行,磁盘的占用会比较大,需要定时清理ClickHouse存储的过时的舆情数据,当然也可以构建ClickHouse集群解决磁盘占用变大的问题。
(1) 中文分词接口: 采用Jieba分词提供的分词接口来进行事件文章的分词与事件评论的分词。 (2) 中文情感分析接口: 采用HanLP提供的相关类构建并训练一个情感分析模型,并针对模型编写一个中文情感分析的接口。
算法需求主要涉及的事件热度算法,算法公式参考:https://juejin.cn/post/6844903833856901133 基于上述文章的热度计算公式,即
其中, ·H:表示内容的热度, ·W:表示内容质量的数值表达,如文章点赞数 ·I:表示内容的初始质量,是文章作者的影响因子 ·G:重力Gravity,表示的是一个内容变得不再热门的速度,重力越大,一个内容刷新的越快 ·T:事件T 基于上述公式,事件的热度定义为文章热度的和,文章热度的计算公式由公式(1)变化而得,文章热度的计算公式如下:
其中, ·H:文章热度 ·L:文章点赞量 ·C:文章评论量 ·R:文章转发量 ·S:文章爬取时间(Spider Time) ·A:文章时间(Article Time) ·h:表示小时, 表示爬取时间到文章时间的小时数 故而事件的热度计算公式为:
系统总体上由数据来源层、数据采集层、数据处理层、数据存储层、数据访问层、数据服务层、数据视图层七层组成。数据来源层到数据采集层再到数据处理层最后到数据存储层是一个单向的层次结构。数据存储层、数据访问层、数据服务层、数据视图层各层之间是一个双向的数据传递的层结构。具体见系统架构图。
略。
系统程序代码架构设计主要是舆情分析系统的后台服务子系统与前端展示子系统的架构设计。舆情分析系统采用采用三层架构模型,分为用户界面层、业务逻辑层、数据访问层。代码的包结构如下:
5.1.1 用户界面层(User Interface Layer) 用户界面层包含前端界面与Controller。前端界面用于与系统用户交互、提交Http请求并展示舆情分析结果;Collroller 用于处理前端提交的Http请求,并调用业务逻辑层的接口获取数据并放回数据到前端。
5.1.2 业务逻辑层(Business Logic Layer) 业务逻辑层是系统代码的重要部分,承担了所有的逻辑判断,实现了程序功能。它被用户界面层的Controller调用,并调用了数据访问层的接口以获取查询数据。
5.1.3 数据访问层(Data Access Layer) 由于系统由MyBatis+ClickHouse实现且系统主要涉及的是舆情分析数据的展示,因此数据访问层主要是接口加ClickHouse的查询语句,根据查询语句查询ClickHouse获取结果。
5.1.4 实体类(Entity Class) 实现对数据的封装,用户界面层、业务逻辑层、数据访问层这三层之间主要就是通过实体类作为参数、返回值进行交互的。
根据系统需求和功能,舆情分析系统的逻辑结构划分为分析子系统、后台子系统、前端子系统、爬虫子系统等4个子系统,系统下又分各功能模块,如下图所示:
在分析子系统中,我们的设计是把爬取到的文章数据通过OdsFlink获取处理到下游的Kafka Topic中,然后从下游的Topic中获取上游处理到的数据进行处理分析。
b) 舆情事件文章分析 i. 事件文章点赞、转发、评论排名 ii. 事件文章热度排名 iii. 事件文章地域分布 iv. 事件文章时间线
c) 舆情事件评论分析 i. 评论关键词分析 ii. 事件评论者分析 iii. 事件评论情感趋势分析 iv. 事件评论点赞排名 v. 事件评论回复排名
数据库系统的设计需要很好的满足系统的功能性需求与非功能性需求。功能性需求的满足要求设计恰当的表结构,以支持系统的功能性需求的完成;非功能性需求的满足主要是系统查询性能的保证,进而才能保证系统的性能需求。
系统采用的数据库是ClickHouse与ElasticSearch。ClickHouse是一个面向列存储的OLAP分析数据库,具有非常优越的分析查询速度,能够满足舆情分析系统的查询需求,并且支持集群搭建,具有很好的横向扩展能力;ElasticSearch是分布式的开源搜索与分析引擎,具有领先地位,能够很好的满足舆情系统的舆情事件搜索需求。
系统的数据采用ClickHouse表存储,其表设计见系统架构设计说明书的数据存储部分。
必须通过用户名与密码访问数据库获取数据。
无,舆情分析系统目前不需要数据字典。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191232.html原文链接:https://javaforall.cn