コード例 #1
0
ファイル: main.py プロジェクト: gfly007/linux_test
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)
コード例 #2
0
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)