目录
一.需求分析
1.项目背景
2.用户简介
3.术语定义
4.功能概述
二.概要设计
1.概要设计流程图
2.流程图详细说明
三.数据库设计
1.软件名称
2.概念结构设计
2.1电商模块
2.2猪肉今日价格模块
2.3大屏展示模块
2.3.1舆论舆情
2.3.2 省均价模块
2.3.3进出口模块
2.3.4喜好程度分析模块
四.详细设计
1.电商展示模块
1.1数据爬取
1.2数据计算
1.3 web展示
2.今日猪价模块
2.1数据爬取
2.2web展示
3.大屏展示模块
3.1舆论舆情
3.1.1数据爬取
3.1.2 web展示
3.2今日省均价
3.2.1数据计采集计算
3.2.2 web展示
3.3喜好程度分析模块
3.3.1评论预处理
3.3.1.1评论去重
3.3.1.2数据清洗
3.3.2评论分词
3.3.2.1分词、词性标注、去除停用词
3.3.2.2提取含名词的评论
3.3.2.3绘制词云查看分词效果
3.3.3评论数据情感倾向分析
3.3.3.1匹配情感词
3.3.3.2修正情感倾向
3.3.3.3查看情感分析效果
五.软件使用
1.首页
2.模块编辑
2.1大数据展示平台
2.1.1舆论舆情
2.1.2地图展示
2.2各省市每日肉价模块
2.3电商展示模块
六.安装部署
1.安装规划
1.1两台Linux操作系统服务器
1.2两台服务器说明
1.2.1一台服务器:
1.2.2另一台服务器:
2.系统概述
2.1硬件
2.2软件
七.项目背景
八.项目内容
1.数据大屏展示
2.猪肉每日肉价可视化
3.肉质智能识别
4.电商肉食数据展示
九.核心技术
1.大数据分析计算
2.喜好程度分析
3.图像智能识别
十.平台优势
十一.源码和相关文档
一.需求分析
1.项目背景
因猪周期和猪瘟缘故,自2018年10月份以来,生猪基础产能大幅下降,共需不足,价格暴涨。中华人民共和国农业农村部制定方案《加快生猪生产恢复发展三年行动方案》,加大各项补贴政策,猪肉行业前景大好。受“居家隔离”影响,虚拟猪肉经济占比明显提高。猪肉进口关税提高,进口量减小,国产比重变大。
2.用户简介
该项目的用户为个体自营养殖屠宰户和电商用户,旨在为创业者提供服务。年龄为20-50的人群,其具有一定的学习能力和网页操作能力。
3.术语定义
土杂猪:是由良种猪与本地猪杂交而来的。
内三元:以中国地方品种猪为母本,以进口猪为父本的一代杂交猪,再以进口猪为终端父本杂交而成,第一代的母本是家猪品种。
外三元:以大白猪作为母本,长白作为第一父本,杜洛克作为第二父本。其中、长白和杜洛克的猪都是进口品种,具有三种进口猪的基因。
4.功能概述
(1)电商展示模块,如名称、价格、原产地、进出口情况、毛重、净重等,可进行模糊查询。
(2)各省市今日肉价模块,可精确到地级市,展示土杂猪,内三元猪,外三元猪今日猪肉价格
(3)大屏数据展示:今日较昨日涨跌情况展示,今日新闻舆论展示,舆情词云图,电商评论喜好程度分析展示,今日各省平均肉价地图展示。
二.概要设计
1.概要设计流程图
2.流程图详细说明
1.利用python爬虫定时对京东生鲜电商肉类食材数据、猪肉价格数据、舆论舆情数据进行爬取。
2.利用flume,kafka对数据进行实时采集。
3.使用flink、spark分别进行实时计算和离线计算,利用python对商品评论进行喜好程度分析。
4.将分析计算后的数据导入mysql数据库。
5.采用前后端分离开发方式使用springboot、Vue+echarts对数据进行可视化展示。
三.数据库设计
1.软件名称
数据库软件:Mysql 8.0.26
管理员工具:navicat 15
数据库名称:pork
2.概念结构设计
2.1电商模块
2.2猪肉今日价格模块
2.3大屏展示模块
2.3.1舆论舆情
2.3.2 省均价模块
2.3.3进出口模块
2.3.4喜好程度分析模块
四.详细设计
1.电商展示模块
1.1数据爬取
使用python+selenium库对京东生鲜进行数据爬取。
1.2数据计算
将爬取的数据转化成结构化数据。利用spark框架对于编号重复的商品进行去重,只保留该商品第一次出现的记录。对于缺失值的处理,对于缺失多个属性的记录将其直接删除;对于没有价格的数据,采用网上搜索该商品价格和填充为同种类商品价格的均值两种方法进行处理;对于商品产地的缺失处理,采用继承上一条同种类商品的产地和默认填充为中国大陆两种方法结合;对于同种类商品净重的处理,网上查阅信息,填充为0~500g、500g~1000g、1000g~1500g三个类别;对于属性国产\进口的缺失值处理和上述方法类似。
利用函数式编程的scala语言和spark框架相结合,分析处理出每类商品的均值,每类商品本土生产、进口的比重等工作,为后续数据分析工作提供帮助。
1.3 web展示
使用springboot后端框架+mybatis puls对mysql数据进行模糊查询以及抽取。
前端使用vue2+vuex3+axios+elementUI等技术,接受后端传回来的数据,进行分页展示,具有输入框、选择地区、国产进口等功能。
2.今日猪价模块
2.1数据爬取
使用python+selenim库爬取猪肉价格数据存入mysql,将py文件部署于linux远程服务器上编辑脚本文件使用crontab服务工具定时调度脚本以执行爬虫任务。
2.2web展示
使用springboot后端框架+mybatis puls对mysql数据抽取。
前端使用vue2+vuex3+elementUI+Echarts等技术,使用阿里云的地图json文件,地图下钻获取各个省份的各个市的三种猪肉的当日价格。
3.大屏展示模块
3.1舆论舆情
3.1.1数据爬取
使用python+selenim库爬取舆论舆情数据数据存入mysql,利用jie ba + word cloud对舆情数据进行分词以及词语图的绘制。将py文件部署于linux远程服务器上编辑脚本文件使用crontab服务工具定时调度脚本以执行爬虫任务更新数据和词云图。
3.1.2 web展示
使用springboot后端框架+mybatis puls对mysql数据抽取以及读取词云图转为字节数组返回给前端
前端使用vue2+axios处理后端传回来的字节数组,以图片的形式展现出来。
3.2今日省均价
3.2.1数据计采集计算
使用flume监控目录文件夹,对爬虫的数据进行采集,输出到kafka消息队列,flink从Kafka中读取数据进行均价计算存入mysql。
3.2.2 web展示
使用springboot后端框架+mybatis puls对mysql数据抽取返回给前端。
前端使用vue2+vuex3+elementUI+Echarts等技术,使用阿里云的地图json文件,通过中国地图展示出各省的三种猪肉当日均价。
3.3喜好程度分析模块
3.3.1评论预处理
3.3.1.1评论去重
获取的数据有些评论相似度极高,可是在某些词语的运用上存在差异。为了存留更多的有用数据,删除完全重复部分,以确保保留有用的文本评论信息。
3.3.1.2数据清洗
评论数据中包含许多数字与字母,这类数据本身并没有实质性帮助。另外,由于该评论文本数据围绕京东生鲜中的肉类进行评价的,其中“京东”“快递”“京东生鲜”等词出现的频数很大,但对分析并没有什么作用,因此可以在分词之前将这些词去除,对数据进行清洗。
3.3.2评论分词
3.3.2.1分词、词性标注、去除停用词
使用Python中的jieba库将词语转化为数据框形式(一列是词,一列是词语所在的句子id,最后一列是词语在该句子中的位置)并删除标点符号和停用词。
3.3.2.2提取含名词的评论
由于分析目标是肉类产品的优缺点,评论中只有出现明确的名词,才有意义,因此需要对分词后的词语进行词性标注,之后再根据词性将含有名词类的评论提取出来。
3.3.2.3绘制词云查看分词效果
对预处理后的数据绘制词云查看分词效果,首先进行词频统计,将词频按照降序排序,然后选择前100个词,使用wordcloud模块中的WordCloud绘制词云,查看分词效果。
3.3.3评论数据情感倾向分析
3.3.3.1匹配情感词
情感倾向也称为情感极性。在某商品评论中,可以理解为用户对该商品表达自身观点所持的态度是支持、反对还是中立,即通常所指的正面情感、负面情感、中性情感。由于本案例主要是对肉类产品的优缺点进行分析,因此只要确定用户评论信息中的情感倾向方向分析即可,不需要分析每一评论的情感程度。对评论情感倾向进行分析首先要对情感词进行匹配,主要采用词典匹配的方法,本案例使用的情感词表是2007年10月22日知网发布的“情感分析用词语集 ( beta版)”,主要使用“中文正面评价”词表、“中文负面评价”“中文正面情感”“中文负面情感"词表等。将“中文正面评价”“中文正面情感”两个词表合并,并给每个词语赋予初始权重1,作为本案例的正面评论情感词表。将“中文负面评价”“中文负面情感”两个词表合并,并给每个词语赋予初始权重-1,作为本案例的负面评论情感词表。
一般基于词表的情感分析方法,分析的效果往往与情感词表内的词语有较强的相关性,如果情感词表内的词语足够全面,并且词语符合该案例场景下所表达的情感,那么情感分析的效果会更好。针对本评论分析,需要在知网提供的词表基础上进行优化.例如“好评”“超值”“差评”“五分”等词只有在网络购物评论上出现,就可以根据词语的情感倾向添加至对应的情感词表内。将“满意”“好评”“很快”“还好”“还行”“超值”“给力”“支持”“超好”“感谢”“太棒了”“厉害”“挺舒服”“辛苦”“完美”“喜欢”“值得”“省心”等词添加进正面情感词表。将“差评”“贵”“高”等词加入负面情感词表。
3.3.3.2修正情感倾向
情感倾向修正主要根据情感词前面两个位置的词语是否存在否定词而去判断情感值的正确与否,由于汉语中存在多重否定现象,即当否定词出现奇数次时,表示否定意思;当否定词出现偶数次时,表示肯定意思。按照汉语习惯,搜索每个情感词前两个词语,若出现奇数否定词,则调整为相反的情感极性。本分析使用的否定词表共有19个否定词,分别为:不、没、无、非、莫、弗、毋、未、否、别、六、休、不是、不能、不可、没有、不用、不要、从没、不太。读入否定词表,对情感值的方向进行修正。计算每条评论的情感得分,将评论分为正面评论和负面评论。
3.3.3.3查看情感分析效果
提出正面评论和负面评论,然后分别绘制词云,来查看情感分析效果,并计算各肉类评论的平均分。
五.软件使用
1.首页
软件地址: http://120.76.248.89/#/
2.模块
点击可进入相应模块
2.1大数据展示平台
2.1.1舆论舆情
自动滚动,点击可跳转相应新闻页
2.1.2地图展示
鼠标浮于地图之上可滚动放大缩小
可点击猪的不同种类查看相应价格
2.2各省市每日肉价模块
点击所要查看的省可以查看省内各市的猪肉价格
点击左边省地图空白区可返回中国地图
2.3电商展示模块
可以点击各省市,以及进出口进行筛选
六.安装部署
1.安装规划
1.1两台Linux操作系统服务器
一台部署flunk,Kafka,flume集群和python定时爬虫任务。
一台部署web项目jdk、和mysql数据库。
1.2两台服务器说明
1.2.1一台服务器:
作用:安装flink、flume、kafka、spark
防火墙:开放flinkwebUI端口号:8081、kafka端口号:9092
1.2.2另一台服务器:
作用:安装jdk、安装mysql数据库,设置允许远程链接配置。
防火墙:开放SpringBoot项目端口号:8070、开放mysql端口号:3306
2.系统概述
2.1硬件
双核
内存4G
系统盘80G
2.2软件
CentOS 8.2
Mysql 8.0.26
jdk1.8
flink1.3
Kafka2.12
Flume1.7
Python3.6
spark
七.项目背景
八.项目内容
1.数据大屏展示
2.猪肉每日肉价可视化
3.肉质智能识别
4.电商肉食数据展示
九.核心技术
1.大数据分析计算
2.喜好程度分析
3.图像智能识别
十.平台优势
十一.源码和相关文档
肉食食材大数据平台