毕业设计总结
当时(2018年11月)在选毕业设计题目时,我的想法比较多,用 Java 做管理系统也写烦了(原生、SSH、SSM),所以毕业设计也就不想用 Java 写了,刚好也学了一段时间 Python,就想着用 Python 做些东西,和指导老师交流想法后,最终确定毕业设计的题目为 《基于Scrapy的新闻智能分类微信小程序》 。
看到这个题目就能知道这里面涉及的面比较多,当然和自己在大学接触的东西比较多也有原因,直到 2019 年 3 月我才正式开始写毕业设计,在这之前预研了要用到的技术,在做的过程中,也有把重点放到了在不重要的地方,又和老师交流一番后,自己逐渐找到了这个毕业设计的定位,做的是文本分类相关的应用,目的是打造出一个可以对新闻进行智能分类的微信小程序,也即是可以对任意一篇新闻进行自动分类处理。
整个项目涉及爬虫、文本分类、Web 开发和微信小程序,技术栈为 Python + Scrapy + MongoDB + scikit-learn + Flask + 微信小程序。
整个系统的架构如下图所示,分为基础设施层、服务层、交互层、应用层。
整个系统的实现分为如下四个步骤,分别是新闻数据爬取、文本分类处理、后端 API 接口开发,微信小程序客户端构建。
数据爬取部分,爬取的目标网站为中国新闻网,新闻数据爬取分类为:国内、国际、军事、体育、社会、娱乐、财经,爬取新闻的时间跨度为 2012 年到 2019 年。
文本分类部分,分类效果如下图所示,橙色和蓝色的数量约接近,代表这个分类下的新闻机器分类正确率越高,可以看到由于上面军事类新闻的数量较少,所以训练出来的新闻分类模型效果不是很高,错误率较高。
下面是小程序的效果演示,首先是小程序首页,展示带有机器分类的新闻列表,点击新闻条目可以查看新闻详情,可以点击分类按钮选择新闻分类,还可以输入关键字查找新闻,都是一些很常见的功能。
接下来是该小程序的特色功能,输入新闻标题,程序对其进行智能分类。
最后通过录制的一段 gif 动图展示整个程序。
整个毕业涉及的源码,都放到了我的 GitHub 仓库中,仓库地址: https://github.com/weizhiwen/News-Intelligent-Classification-WeChat-Mini-Program
最终论文被评为校级优秀,省级优秀还未知,在整个毕业设计过程中,下面的书籍对我帮助很大,非常感谢这些书籍的作者,自己在平时实践中锻炼出来的解决问题的能力也在本次毕业设计中得到了展现,特别感谢两年来指导老师对我的锻炼和指导。
《Scrapy从入门到精通》
《Python机器学习实践》
本文作者:Wizey
本文链接:http://wenshixin.gitee.io/blog/2019/06/06/毕业设计总结/
版权声明:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!