1.1 研究背景
高考是中国高中毕业生升入大学的主要途径,考试成绩决定了学生的录取排名和学校专业的选择。由于高校众多、专业繁杂,学生和家长在填报志愿时常面临困扰和选择困难。为了给考生和家长提供平台可以让其客观的根据自身情况填报以及当下发展情况,进行推荐填报。而大多数考生都是找志愿填报老师,完全听取其意见,自己没有相关了解以及个人兴趣。针对此问题,设计本系统可以更好的注重于个人兴趣以及院校水平、专业前景客观推荐。本文将推荐系统与大数据处理框架Spark相结合,帮助考生解决高考志愿填报环节的志愿选择问题。
1.2 国内外现状
1.2.1 国外研究现状
国外的研究主要关注学生个性化需求和多样化的招生制度。一些国际知名企业,如Google、Facebook等,已经开发出了一些先进的大规模推荐系统,涵盖了视频推荐、广告推荐等多个领域。这些推荐系统通常基于分布式计算框架,能够高效地处理大规模数据,提供更加准确和个性化的推荐建议[1]。从大量信息中挖掘出有用信息,为用户进行精准推荐,有效解决了个人用户的“信息过载”问题。同时,推荐系统在消费领域发挥着不可或缺的作用,推动了企业进行数据营销,给企业和社会带来了较高的经济效益[2]。
1.2.2 国内研究现状
目前多家互联网公司已经推出了高考志愿填报模拟系统,比如高考网,中国教育在线—高考频道等。考生可以输入自己的高考分数、所在省份,系统会搜索近几年各院校各专业在该省历年录取分数线与本省当年批次分数线差值低于考生这一年与本省批次线差值的学校和专业[3]。
随着高考改革的不断深入,越来越多的学者和研究机构开始关注高考志愿填报推荐系统的研究和开发。基于Spark的高考志愿填报推荐系统作为一种分布式计算框架,能够高效地处理大规模的高考数据,提供更加准确和个性化的推荐建议。高校和科研机构已经开始进行相关研究和实验,取得了一些初步的成果。同时,一些互联网企业也纷纷涉足高考志愿填报领域,推出了一系列基于大数据分析的志愿填报辅助工具和平台[4]。
。
1.3 主要研究内容
将推荐系统与大数据处理框架Spark相结合,帮助考生志愿选择问题。设计高考志愿推荐的Web前端界面。其中包括用户注册界面、用户登录界面、志愿推荐结果展示界面以及相关高考信息(高校信息与专业信息)的浏览界面。并设计高考志愿场景下的志愿推荐引擎。首先,通过阅读大量高考志愿填报文献,选取合适的用户属性,计算相似性,建立相似矩阵,寻找相似用户;其次,分析几种最常见的推荐算法,结合高考志愿填报的真实场景选择协同过滤算法作为本系统的推荐算法;最后通过Spark计算框架的并行化计算方式生成最终的推荐列表[5]。
1.4 论文框架结构
本文将分为七个章节介绍系统的开发设计过程,全面的向读者介绍从建立课题到理论分析再到完成实现所调查的市场现状,使用的开发技术,创建的搭建环境,制作的编程代码等,使读者能够通过本论文对所开发的系统有所了解。
第一章,绪论。在绪论章节中,将介绍研究背景、国内外现状、主要研究内容以及论文的框架结构。
第二章,相关开发技术与理论。在相关开发技术与理论章节中,将介绍项目所涉及到的相关开发技术与理论。
第三章,系统分析。在系统分析章节中,对本次开发的软件系统从不同方面、不同角度进行可行性分析、功能分析、用例图建模。
第四章,系统设计。在系统设计章节中,对系统的功能模块、概念模型、数据库等进行设计。
第五章,系统实现。在系统实现章节中,对系统的核心功能进行截图展示介绍。
第2章 相关开发技术与理论
2.1 前端技术
Vue是一个渐进式JavaScript框架,Vue具有简洁易学、组件化等特点,使用它可以快速地构建前端界面,且以组件化的方式构建用户界面,将复杂的UI拆分为独立的、可重用的组件,每个组件有自己的数据和逻辑,提高了代码的可维护性和可重用性[6]。它采用MVVM设计模式,通过数据驱动和组件化的方式来构建用户界面。并且采用了类似HTML的模板语法,可以简洁地描述UI的结构和行为。模板语法支持绑定表达式、条件渲染、循环渲染等常见的操作,具有高效的虚拟DOM渲染机制和优化的更新策略,使得应用程序具有出色的性能[7]。
是一个Vue UI库,提供大量的UI组件和开发工具,可以帮助我们快速构建美观、易用的Web应用程序。它提供了丰富的组件和工具,可以帮助开发人员快速构建现代化、高效的Web界面。Element-Plus提供了简单易用的API,可以方便地在Vue应用中集成和使用。同时,也提供了丰富的主题和样式配置选项,支持个性化的主题定制化 [8]。
2.2 后端技术
PySpark是Apache Spark的Python版本,适用于处理大规模数据和进行复杂的数据分析任务。它结合了Python的简洁性和Spark的性能优势,是Apache Spark的Python API。提供了丰富的功能,包括数据处理、机器学习、图计算等。它能够处理各种数据源,PySpark提供了丰富的转换操作和动作操作可以灵活地对数据进行处理和分析 [9]。
Django是一款基于Python的Web应用程序开发框架,具有高度的可重用性、可扩展性和灵活性,被广泛地应用于Web开发领域。Django被用于编写后端API接口和管理界面,在该系统中,Django被用于编写后端API接口和管理界面[8]。提供了强大的对象关系映射(ORM)支持,可以轻松地将数据存储到数据库中,并且可以使用Python类来表示数据库表格。这使得开发人员可以专注于业务逻辑而不是低级别的数据访问代码[9]。
Scrapy是一个Python编写的高效的网络爬虫框架,支持数据抓取和处理、自动化测试等功能。使用XPath或CSS选择器来定义数据提取规则,可以灵活地从HTML或XML文档中提取所需的数据。可以根据不同的网页结构和数据格式来编写提取规则[10]。并且Scrapy自动处理请求的发送和响应的接收,开发人员只需定义爬取规则和数据处理逻辑即可。它还支持请求的优先级、重试机制和动态代理等功能,可实现更加灵活和智能的请求管理。可用于数据挖掘、搜索引擎索引、数据监测还是网站自动化测试 [11]。
协同过滤算法是一种基于用户行为数据的推荐算法,通过分析用户的历史行为数据来计算用户之间的相似度,然后根据相似用户或相似物品的评价来预测用户对未知物品的喜好程度。这种算法能够利用兴趣相投、拥有共同经验的群体的喜好来推荐用户感兴趣的信息。
通过分析用户的历史行为数据,找到与目标用户行为相似的其他用户,从而推荐目标用户可能感兴趣的物品。可以处理任何类型的物品和用户行为,提供高度个性化的推荐,但也存在数据稀疏性、冷启动问题和可扩展性等方面的挑战。
具体步骤:计算用户之间的相似度,如皮尔逊相关系数、余弦相似度等。找到与目标用户相似度最高的K个用户,然后综合这些用户对某个物品的评分来预测目标用户对该物品的评分或偏好,最后推荐目标用户评分最高的N个物品。
将物品的内容信息和用户行为数据结合起来进行推荐。在电子商务、搜索引擎和广告推送等领域有着广泛的应用,能够优化搜索结果,提高用户搜索体验。
具体步骤:它侧重于物品的内容信息,如商品名称、描述、分类等,同时结合用户行为数据来分析用户的行为模式,发现用户的偏好和兴趣。通过分析这些信息,算法可以自动计算出用户的兴趣模型,并推荐与之匹配的相关物品。