计算机毕设之 基于协同过滤的考研推荐系统

1 简介

今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于协同过滤的考研推荐系统

计算机毕业生设计,课程设计需要帮助的可以找我

2 设计概要

21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,人们可以随时随地浏览到海量信息,但是这些大量信息千差万别,需要费事费力的筛选、甄别自己喜欢或者感兴趣的数据。对网络电影服务来说,需要用到优秀的协同过滤推荐功能去辅助整个系统。

本系统基于java技术,使用UML建模,采用springboot框架组合进行设计,Mysql数据库存储数据。本系统的功能主要包括:用户注册、登录、信息维护、搜索院校、院校详情、考研分数线,考研院校推荐,协同过滤个性化推荐以及管理员进行信息管理等。

3 系统关键技术

使用springboot,vue,mysql, mybaties, typescript, html ,css, js,协同过滤算法 等进行开发

4 开发工具

开发工具主要有:idea、jdk1.8、maven、mysql5.7、Navicat等。

5 代码展示

@RestController
@RequestMapping("question")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class QuestionController {

    private final QuestionMapper questionMapper;


    @GetMapping("/{id}")
    public QuestionBean get(@PathVariable long id) {

        var entity = questionMapper.selectById(id);
        return BeanUtil.to(entity, new QuestionBean());
    }

    @GetMapping("/list")
    public List<QuestionBean> getList(QuestionBean query) {

        var list = questionMapper.selectList(
                Wrappers.<QuestionEntity>lambdaQuery()
                        .eq(
                                query.getQuestionGroupId() != null,
                                QuestionEntity::getQuestionGroupId,
                                query.getQuestionGroupId()
                        )
                        .like(
                                StrUtil.isNotBlank(query.getQuestionTitle()),
                                QuestionEntity::getQuestionTitle,
                                query.getQuestionTitle()
                        )
        );

        List<QuestionBean> beanList = new ArrayList<>();
        for (QuestionEntity entity : list) {
            var bean = BeanUtil.to(entity, new QuestionBean());
            if (entity.getRightAnswer() == null) {
                bean.setRightAnswer(Collections.emptyList());
            }
            if (entity.getErrorAnswer() == null) {
                bean.setErrorAnswer(Collections.emptyList());
            }

            Map<String, Boolean> answer = new LinkedHashMap<>();
            for (String right : bean.getRightAnswer()) {
                answer.put(right, true);
            }
            for (String right : bean.getErrorAnswer()) {
                answer.put(right, false);
            }

            List<String> keys = new ArrayList<>(answer.keySet());
            Collections.shuffle(keys);

            Map<String, Boolean> newAnswer = new LinkedHashMap<>();
            for (String key : keys) {
                newAnswer.put(key, answer.get(key));
            }
            bean.setAnswer(newAnswer);
            beanList.add(bean);
        }

        return beanList;
    }

6 系统功能描述

项目功能演示

计算机毕设之 基于协同过滤的考研推荐系统_第1张图片
计算机毕设之 基于协同过滤的考研推荐系统_第2张图片
计算机毕设之 基于协同过滤的考研推荐系统_第3张图片
计算机毕设之 基于协同过滤的考研推荐系统_第4张图片
计算机毕设之 基于协同过滤的考研推荐系统_第5张图片
计算机毕设之 基于协同过滤的考研推荐系统_第6张图片
计算机毕设之 基于协同过滤的考研推荐系统_第7张图片
计算机毕设之 基于协同过滤的考研推荐系统_第8张图片
计算机毕设之 基于协同过滤的考研推荐系统_第9张图片

7 最后

计算机毕业生设计,课程设计需要帮助的可以找我

你可能感兴趣的:(协同过滤,计算机毕业设计,spring,cloud,typescript)