def getRecommedData(): stu_no = session.get('stu_id') id2Student, id2Course, stuNo2MatId = map_student_course.get_map_student() scoreMatrix = map_student_course.get_matrix(id2Student) """ 函数,recommedCourse:使用SVD进行课程推荐: 返回:(课程1ID, 课程1评分) """ topNCourse, topNStudent = recommed_module.recommedCoursePerson(scoreMatrix, stuNo2MatId[stu_no], N=20) """ 将得到的Course与Person装换为前端图标需要的json格式: { "source": [ [2.3, "计算机视觉"], [1.1, "自然语言处理"], [2.4, "高等数学"], [3.1, "线性代数"], [4.7, "计算机网络"], [5.1, "离散数学"] ] } """ id2Student = {i:id2Student[i][0] for i in id2Student.keys()} print(id2Student) print(id2Course) courseJson = recommed_module.toBarJson(topNCourse, id2Course) personJson = recommed_module.toBarJson(topNStudent, id2Student) courseJson = recommed_module.regularData(courseJson, 1, 5) personJson = recommed_module.regularData(personJson, 0, 1) coursePersonJson = {} coursePersonJson['course'] = courseJson coursePersonJson['person'] = personJson return jsonify(coursePersonJson)
def getRecommedData(): # 获取学号 stu_no = session.get('stu_id') # {0:[白雪,12321],1:[xxx,1231]};{0: co_name};{12321: 0 ,1231:1} id2Student, id2Course, stuNo2MatId = map_student_course.get_map_student() # [[5.0,4.0][2.0,3.0]] 每个用户对课程的评分,行编号为学生编号,列为课程编号 scoreMatrix, passMatrix = map_student_course.get_matrix(id2Student) """ 函数,recommedCourse:使用SVD进行课程推荐: 入参: 学生对课程的评分矩阵,需要推荐的那个人的编号 推荐top20 返回:(课程1ID, 课程1评分) """ # 需要推荐的课程和人及评分 topNCourse, _ = recommed_module.recommedCoursePerson(scoreMatrix, stuNo2MatId[stu_no], N=20) # passTopNCourse, _ = recommed_module.recommedCoursePerson(passMatrix, stuNo2MatId[stu_no], N=10) """ 将得到的Course与Person装换为前端图标需要的json格式: { "source": [ [2.3, "计算机视觉"], [1.1, "自然语言处理"], [2.4, "高等数学"], [3.1, "线性代数"], [4.7, "计算机网络"], [5.1, "离散数学"] ] } """ # 生成新字典{数字:姓名} # id2Student = {i: id2Student[i][0] for i in id2Student.keys()} # print(id2Student) # print(id2Course) # [评分:课程] courseJson = recommed_module.toBarJson(topNCourse, id2Course) # [评分:姓名] # passTopNCourse = recommed_module.toBarJson(passTopNCourse, id2Course) passTopNCourse = map_student_course.get_count_by_choose_column( stu_no, 'PASS') interstingTopNCourse = map_student_course.get_count_by_choose_column( stu_no, 'interesting') acknowledgeTopNCourse = map_student_course.get_count_by_choose_column( stu_no, 'acknowledged') courseJson = recommed_module.regularData(courseJson, 1, 5) passCourseJson = recommed_module.regularData(passTopNCourse, 1, 5) interstingCourseJson = recommed_module.regularData(interstingTopNCourse, 1, 5) acknowledgeCourseJson = recommed_module.regularData( acknowledgeTopNCourse, 1, 5) coursePersonJson = {} coursePersonJson['course'] = courseJson coursePersonJson['passCourse'] = passCourseJson coursePersonJson['interstingCourse'] = interstingCourseJson coursePersonJson['acknowledgeCourse'] = acknowledgeCourseJson print(coursePersonJson) return jsonify(coursePersonJson)