核心内容摘要
代码道德扫描器:自动检测算法偏见
标题Django面向校园安全的大数据舆情检测系统的设计与实现(jiebaLSTM)文档介绍1绪论
1课题研究背景及意义新浪微博、微信公众号及百度贴吧等软件丰富了当代大学生的生活大学生们也可以利用这些软件进行社交也可以及时关注当今社会正在发生的事件还可以利用这些软件或者工具抒发自己的情绪宣泄自己的不满等等。
但是在新浪微博等平台上如果言行不注意可能会对自己的本人、班级甚至是学校带来负面的影响学生用户们在发表微博或者自己的言论前可能不会考虑那么多不会想到自己的一些话会产生一些什么舆论很可能自己无心说的一句话放在网上就被无限放大为自己或者为自己的学校带来负面影响甚至自己会被网络暴力所影响产生不必要的极端的后果。
综上所述在进行毕业设计的选题之时我就希望可以利用所学的知识开发一款校园安全的大数据舆情管理系统这不仅仅可以帮助学校的管理人员迅速的排查跟学校有关的负面言论还可以避免学生因为本身意识不到位而评论或发布一些不好的观点的情况最终的目的就是帮助我的母校更好的发展。
2国内外研究现状及发展趋势随着当今社会计算机技术发展越来越迅速传统的去每个同学微博或者贴吧等账号下进行负面言论管理和查找的方式逐渐没落这是不能避免的。
不只是校园舆情的管理方式其实人们生活中的各个领域都发生了改变人们的生活质量也在不断提升。
我国的最早社交平台是腾讯公司开发的OICQQQ的前身但当时的计算机技术并不发达所以大多信息传递和通信交流还是通过信件或者电话进行的。
随着计算机网络技术的发展出现了很多功能齐全的校园社交平台比如校内网后期改名为人人网、新浪微博和百度贴吧等这都为大学生们的校园生活带来了便利除此之外随着QQ和微信等社交聊天工具的普遍应用类似于腾讯QQ空间、微信朋友圈等方式也逐渐流行起来同学们可以在上面发说说和照片。
但如果发布一些不利于学校发展、毁坏学校名誉的言论是坚决不能被允许的近些年大数据技术发展十分迅速。
不管是国内还是国外的高校大都已经拥有一个校园舆情的大数据分析系统管理着同学们的社交平台。
3本文的研究思路与结构在开发本系统之前做了许多的调查研究也从学校的图书馆中查阅了一些关于校园舆情的书籍最重要的是咨询了老师的建议。
老师向我讲述了很多因为校园舆情管理不利导致的学校口碑下降的案例其实很多问题都是可以避免的学校绝对不能因为个别同学有失偏颇的发言而受影响所以我更加明确了做这个系统的重要性。
另外老师们也提了一些很有建设性的建议让我可以更加明确本系统的需求。
本系统的开发遵循着软件工程学的设计原则在决定自己的毕业设计做什么之前会进行项目的前期调研和可行性分析如果可行的话就对项目进行立项。
在项目立项之后会对整体的功能进行需求分析和数据库设计这可以保证后期编码的顺利进行。
在所有的前期准备工作完成之后会对所有的功能模块进行计划保证在某一个时间段完成对应的功能。
最后就是项目的编码与测试这两者最好可以同时进行在保证开发效率的同时还能提升测试的准确性。
2开发工具及技术介绍
1B/S结构的介绍在确定了项目的主题和研究背景之后就要确定本系统的架构了。
主流的架构有两种一种是B/S架构一种是C/S架构。
C/S的全称是Client/ServerClient是客户端的意思Server是服务器的意思所以C/S架构就是客户端-服务器的模式我们常用的电脑上的软件比如QQ、微信都是C/S架构的程序。
B/S架构的全称是Browser/Server含义是浏览器-服务器我们常用的一些网站系统就是属于B/S架构。
本系统的开发框架为B/S架构与传统的C/S架构相比它不需要繁琐的安装并且运行时只需要打开浏览器即可对电脑的硬件要求和对操作者的要求较低。
以往的很多系统使用的都是C/S架构C/S架构虽然在某些方面表现非常好但是逐渐被B/S架构取代了因为C/S架构必须进行安装或者升级之后才可以使用而B/S架构只需要电脑有浏览器即可使用所以本系统采用了B/S架构。
2Python技术的介绍本系统的基本功能是基于大数据进行的校园舆情分析所以本系统的后台语言使用的是PythonPython是一种动态编程语言可以对数据进行增删改查等操作。
在JSP、ASP、PHP等动态语言出现之前很多网站就只能用静态的HTML语言宣传自己的网站但这种网站不具备数据的存储操作功能因为无法连接数据库本系统使用的Python语言可以与HTML语言有效的结合起来不仅可以将各类素材展现在页面上还可以将数据保存在数据库中。
选择JSP技术开发主要因为其有以下几个优点1首先就是因为Python的结构清晰、易于理解而且Python是面向对象的编程语言可以使用封装、继承和多态等技术可以使用类和对象的思想解决很多问题可以极大的提高编码效率。
2选择Python的第二个原因就是它在浏览器中的响应速度较快可以提高本系统运行的速度。
3选择Python作为本系统开发技术的第三个原因就是它具备较为稳定的连接数据库的方法可以使数据稳定地进行存储和更新。
3 HTML技术的介绍本系统的前台语言使用的是HTML5HTML5是最新的HTML技术与之前的版本相比增加了许多功能比如自带的表单验证及响应式设计。
在本系统主要用到的HTML5技术有表单的提交、整体网页的布局等。
HTML语言的全称是超本文标记语言HTML语言可以将文字、图片或者视频展现在网页上但仅仅使用标签排列会使得网页杂乱无章所以本系统的前台页面还使用了CSS技术和JavaScript技术。
CSS是层叠样式表的缩写编程人员可以使用DIVCSS的布局方式对网页进行美化这样对网页后期的维护和更新非常方便如果有需要增加的内容就不需要再次书写样式了只需要在网页中使用已有的样式即可。
JavaScript是一种脚本语言可以为网页增加更多的功能比如可以增加动态效果等。
4 MYSQL数据库的介绍本系统用来进行数据存储的数据库是MYSQL数据库基本的使用与其他数据库相似。
都可以使用表进行数据的存储。
除此之外还可以使用存储过程、事务、触发器等对象。
以下是MYSQL的几个优点(
首先就是因为MYSQL较为小巧、易于安装和维护而且MYSQL是完全开源并且免费的非常适合计算机专业的学生作为学习工具使用虽然MYSQL小巧但它的查询速度、执行效率都是非常快的。
(
选择MYSQL的第二个原因就是它具有稳定的查询和存储机制可以避免因为数据库的原因导致系统的数据出错。
(
选择MYSQL作为本系统数据库的第三个原因就是它具备较为稳定的与程序进行连接的优点可以使数据稳定地在系统内进行存储和更新。
5开发环境的介绍通过本节来介绍本系统的开发环境开发的环境为个人笔记本电脑处理器为I5十代内存为8GB硬盘为500G固态硬盘浏览器为谷歌浏览器。
用来编程的工具为Sublime Text它是功能强大的编辑工具在市面上进行Python和Django编程时非常流行具备代码提示、代码自动缩进和换行等基本功能还能用来对程序进行部署和测试等。
用来进行MYSQL编辑的工具为Navicat for MySQL它非常直观可以对数据进行导入和导出。
3需求分析
1 可行性分析系统的可行性分析主要目的是在系统立项开始前对系统所做的一系列的评估综合各项评估决定是否对该项目进行立项。
一般来说一个系统的可行性分析主要分为技术可行性、操作可行性及经济可行性等。
一个系统的经济可行性主要是指网站去除成本后还是否可以盈利该系统为计算机专业大学生的毕业设计主要目的是为了使用大学四年所学的知识开发出一个有价值的系统证明自己可以达到毕业的要求。
该项目几乎没有任何成本因为所有的设备及开发软件都为电脑上已安装的免费版本该项目为非商业项目所以从经济可行性上分析本系统是可行的。
系统的技术可行性主要是在开发开始前对本系统所使用的开发环境、开发技术等进行分析对所有可能遇到的问题进行预估等。
本系统的开发环境为自己的个人电脑所有使用的工具都是平时学习时用过的所用的开发技术大多数都是大学期间学习过的如果遇到没有涉及的领域可以通过在CSDN、博客园等技术论坛寻找答案也可以咨询指导老师。
所以从技术层面分析本系统是可行的。
系统的操作可行性也可以被称为运行可行性主要对系统运行或操作进行分析。
在当前这个电脑走入寻常百姓家的时代不管是成年人还是小朋友都多多少少对电脑操作略知一二更不用说本系统的使用者是在高校工作的老师们本系统只要有简单的电脑常识就可以熟练使用所以说从系统的操作方面是可行的。
2 功能需求分析1用户注册登录用户们这里的用户主要是学校负责网络安全的老师需要按照相关的法律法规进行注册注册后才可以使用本系统。
2首页模块网站的前台页面主要对所有菜单进行显示除此之外还能显示最新的校园舆情信息、舆情统计图等。
3言论分析模块系统具有数据爬取功能可以爬取本校内大学生的微博数据可以根据学生的舆情微博信息的爬虫结果进行数据分析还可以对负面信息进行百分比的分析和预警。
4言论管理模块可以查看所有言论的数据并进行管理。
3 非功能需求对本系统来说除了要成功开发具有言论分析和言论管理等基本功能外还要保障系统的稳定性和安全性因为操作这个系统的大概率是学校的工作人员如果在使用本系统的过程中遇到一些网络攻击或者自己的账户被盗取后果是很严重的所以在开发本系统之前需要对系统的性能及安全性进行分析。
对于本系统而言系统的性能及稳定性非常重要因为校园安全的大数据舆情管理系统涉及到大量的数据爬取、计算和分析如果不能保证网站的性能可能数据计算和分析的速度会很慢。
另一方面如果在操作期间系统发生崩溃会造成比较大的影响其次如果不能保证稳定性则多人共同访问网站时也可能会出现系统崩溃等问题。
除了性能及稳定性安全性对本系统也非常重要如果不能提高安全性被一些不法分子或居心叵测的人钻了漏洞会对本系统及本系统的用户财产产生非常大的影响所以提高安全性是本系统优先级很高的一个需求。
4总体设计
1 总体功能设计本系统的主要用户是学校负责舆情监控的管理人员本系统允许多个用户同时使用也就是说用户可以有多个但管理员用户只有一个。
系统的功能主要是对校园内学生的微博言论进行分析所有的言论会进行数据的展示也可以使用饼状统计图进行更直观的显现如果发现有20%以上的负面信息会进行及时的预警除此之外用户还可以对自己的个人信息比如密码进行维护管理员用户可以管理其他的用户信息可以修改或删除系统中现有的用户。
系统结构图如下所示
2 系统数据库设计数据库的设计在整个系统的开发过程中是非常重要的而且一定要在开始编程之前就对数据库进行设计这样可以避免编程过程中无谓的返工。
比如在进行用户信息管理功能的开发时又想突然加上用户权限的判定这样就要再添加一个表或者需要对现有的表进行列的添加但数据库的结构发生改变之后所有的代码都需要进行修改非常的费事费力。
经过上文对系统功能的需求分析我认为本系统的数据库应该具有以下表1用户信息表用户注册之后的个人信息会存储在此表中。
这个表中的用户ID应设置为主键除此之外还要有用户名、密码、注册时间等列。
2言论分类及言论信息表经过爬取收集到的言论的信息都会保存在此表中设置两张表的目的是可以使用分类表管理言论的种类使用言论信息表来详细的管理产品的信息。
3言论管理信息表这张表主要存储系统中的言论管理信息当用户或管理员用户对收集到的言论信息进行查看或者管理时就需要对此表进行操作。
此外本信息表中应设置一列来反映当前言论的管理状态如未处理、已处理等。
4站内新闻表站内新闻表用来保存本系统内的站内新闻信息管理员会定期对本表进行维护让用户看到最新的新闻。
5系统功能实现
1 首页展示用户在输入正确的域名后即可访问本系统不过用户在注册用户之前只能访问系统公告及站内新闻等信息。
本系统的首页使用上中下结构头部为导航中间部分的左侧为当前的用户信息除此之外还能显示当前的日期右侧为当前系统内的总发言数、总用户数等数据。
2 登录注册未进行注册的用户无法使用本系统的所有功能只有经过一系列表单验证后完成注册拥有自己的账号之后才可以进行登录进而使用所有的功能。
3 言论分析用户登录首页后点击上方的言论分析即可进入本功能进入后可以查看系统的所有言论的统计有柱状图和饼图两种统计方式点击某一种言论就可以进入言论详情信息具体操作如下
4 言论管理言论管理功能是本系统最核心的功能用户可以通过言论的关键词进行搜索和爬虫在搜索和爬虫后可以看到当下微博中的所有包含关键词的言论信息可以某一条言论的具体内容及是否为消极言论等如果通过分析检测到为消极言论用户可以通过最后一列将其删除。
具体界面如下
5 个人信息查看在首页上方的导航栏中有个人信息的超链接按钮点击个人信息后即可进入本页面用户在此界面上可以查看到当前账户的ID、姓名、联系方式和最后登录时间等信息。
具体界面如下
6 密码修改模块不管是普通用户还是管理员在本系统中扮演着至关重要的角色比如管理员可以对所有用户信息进行管理普通用户可以及时发现并删除一些发表不当的负面言论这对学生自己和对学校都是非常重要的。
所以说用户的信息安全是非常重要的。
在本模块中用户可以定期修改自己的密码具体操作界面如下
7 注册用户管理模块管理员在登录系统后台之后可以通过本功能对用户信息进行查看和管理可以查看用户的帐号、密码及其他基本的个人信息还能为用户进行权限的设置用户没有权限的时候是无法进行言论管理的除此之外如果用户违反了网站的相关规定管理员可以对用户进行删除。
用户管理模块分为两个功能首先是可以进行用户的创建在输入用户的姓名、密码和手机号的信息后即可进行新用户的添加。
新添加的用户可以通过数据列表上方的搜索栏进行搜索输入用户的姓名就可以查看到指定的数据信息如果用户的信息发生了改变比如更换了手机号时就可以点击列表最右边的修改进行用户数据的更新。
操作界面如下图6系统测试
1 测试目的简单来说软件测试的目的是为了发现潜在的功能缺陷。
一个画面再漂亮的系统如果有功能缺陷也是无人敢用的比如本系统的言论分析功能如果用户没有经过爬虫和分析就进行言论的删除那会造成很多误删的情况同时也会降低在学生用户或老师用户心中的可信度毕竟一个存在缺陷的系统是没有人愿意使用的。
在计算机软件刚刚兴起的时候人们不太注重软件测试这个环节其实软件测试是整个软件开发过程中不可忽略的一个组成部分没有软件测试环节的系统是不健全的系统是无法投入使用的系统。
当然目前所有的软件公司与软件从业人员以及非常注重软件测试的工作大部分的公司都会有一个软件测试部门。
测试人员需要根据系统的功能不同进行测试用例的书写然后根据测试用例进行功能的测试如果出现了预期结果与测试结果不一致的情况就需要对代码进行修改修改过后再进行二次测试。
2 测试内容本系统在进行测试的时候选择的主要是自己的电脑为了保证测试的严谨性也借用了同学的电脑进行测试。
性能在整个软件测试阶段是非常重要的我选择了LoadRunner作为性能测试的工具。
LoadRunner的使用非常简单首先需要在LoadRunner中录入自己要操作的功能脚本然后输入测试次数就可以进行重复的性能测试了。
除了使用自动化测试工具之外大部分的性能测试都是通过多打开几个浏览器窗口进行的比如测试多人同时访问网站、多人同时进行言论分析或言论管理的操作。
接下来以用户注册模块为例对本系统的单元测试进行讲解用户注册模块的测试用例如下图所示。
3 测试
总结本系统的测试主要使用的测试方法是黑盒测试并且多次进行了边界值的测试比如进行言论分析的时候言论为0此时要查看前台的页面分析中的饼图和柱状图会不会有异常再比如用户输入的手机号超过11位或者等测试用例。
大部分功能都与书写的测试用例保持一致但也有一些小的功能缺陷都根据前期进行的功能规划进行了修改经过二次测试之后都可以满足系统正常使用。
结语本次毕业设计使用的是PythonMYSQL的开发模式在结合了自己的生活经验以及对他人进行的调查问卷之后最终完成了系统的开发并且所有的功能都可以正常使用。
在为自己通过四年的学习可以做出一个完整的项目的同时也在反思自己开发的这个系统有哪些不足最终发现在以下几个方面还有待提升点
某些模块的代码结构冗余代码执行效率及可读性较差某些模块中结构不清晰经过思考发现可以使用面向对象思想中的继承和多态进行改进。
数据库的设计较为单一并且书写SQL查询语句时只用了连接查询和相关子查询等这会造成查询较多数据时查询速度慢的问题。
改进的方法就是使用存储过程和视图来替代复杂的查询语句。