1.立项背景和目标:
当前网络信息传播极速扩散,传统人工舆情监测存在覆盖不全、响应滞后、分析低效等问题,企业机构机构亟需轻量化、可弹性扩容的舆情管理工具,打造全国企业舆情 SaaS 系统。
2.软件功能,核心功能模块的介绍
a).账号权限认证系统(经root账号/自动 进行权限分配 包含页面、按钮、功能)
b).数据获取(入池前,经python、java等其他语言进行各平台基础数据获取)
c).数据清洗(入池前,对个平台重复数据进行清洗,此轮进行舆情标注三类:正面、中性、负面 四级: 一般 关注 重点 紧急,舆情类别判断 民生、政治、企业、谣言等)
d).数据入池(入池,将通过初次数据清洗数据进行入池)
e).根据账号权限、要求获取数据(二次清洗)
3.主要流程:
企业: 账号购买功能鉴权(线下购买,线上开启权限) -> 设定舆情点 -> 使用
我司: 线下磋商 -> 成功后提供注册地址 -> 注册后开启部分权限(自动、手动两种方案)
网站: 数据采集 -> 数据首次清洗 -> 入池 -> 数据二次清洗 -> 查询报送(舆情报告)
1.整体架构和设计思路,不同模块的技术栈
A)数据处理: 基于语言采集环境要求 选择使用 python语言,基于高并发及模块化需求选择使用java语言 引入 alibaba cloud 框架。(大坑 java语言可以爬取但环境不如python。同意义内容代码 python可用 java不可用。经排查为语言环境原因,此模块需长期维护成本较高,例如某音反扒更新极快)
B)权限处理:为保证细粒度权限划分、满足请求并发需求, 项目技术栈选型 Spring Security 保证鉴权安全 使用AOP面向切面解决方法级粒度权限划分。搭配Vue 前端 动态渲染技术。将页面、路由、权限级别、方法、按钮参数存储与数据库中、基于动态路由及渲染。实现高级别细粒度权限划分(大坑 AOP权限划分未设定好 会出现极大的性能、请求时间消耗)
C)数据清洗首次清洗(最为复杂、及其麻烦、从流程及保存都较为恶心)
a) 基础尝试,预测到极大内容 所以 采集内容哈希为标准进行初筛。但是发现内容量过高时。redis性能时间消耗巨大,随后引入布隆过滤
b) 使用布隆过滤后。性能压力得到缓解,为保证基本杜绝相似内容,以布隆为一层过滤。redis为二层过滤,但发现经过修改的舆情内容并不能被更高效拦截。随后引入 算法
c) 使用SimHash 及海明距离 + 词库分析(正负面及舆情类型)根据热点及查重分析确定等级类型 后面经其他团队更新了算法具体我也不太清楚涉及模型知识。当时还未参与过模型相关开发工作
D) 将结构化存储于ES 经过 经过ik细粒度存储 (大坑。有些词汇必须使用拓展否则无法命中。导致数据存储消耗未有明确效果)由于数据量庞大。按日级别进行存储不同ES索引中。
E) 二次入池。根据设定词条。进行二次清洗将 日级库内容查询存储月级索引库中 (高级用户单独设定 服务器存储池)
***** 未实现未写。项目涉及其他,项目目前状态异常,所以实例图片我做了一些加密处理
展示部分数据库结构及连接异常。尽请谅解