Untitled

key_start_idx, key_end_idx → match_info {keyword, keyword start, keyword end}로 전환

Output

name type description
subject str (현재) 시험 이름
problem list 모든 문제에 대한 정보 모음

Problem ( n번째 문제 )

name type description
problem_idx int 문제 번호
question str 문제
gold_answer str 모범 답안
keywords list 키워드 목록
result list(dict) 모든 학생에 대한 결과 모음

Result ( n번째 학생 )

name type description
student_id int 학생 고유 id
answer str 답변
sim_score float 문장 유사도 점수
keyword_score float 키워드 점수(맞은 개수/전체 개수)
total_score float 문장 유사도 점수 + 키워드 점수
match_info dict 매칭되는 키워드 정보

Match_info

name type description
keyword list(str) 키워드 목록
start_idx list(list(int)) 문장 내 키워드의 시작 idx(여러개일 경우를 대비해 list 형태)
end_idx list(list(int)) 문장 내 키워드의 끝 idx
{
    "subject": "사회시험",
    "problem": [
        {
            "problem_idx": 0,
            "question": "여러 제과점이 서로 경쟁을 하면 소비자에게 어떤 점이 좋을까요?",
            "gold_answer": "제품의 가격이 낮아지고, 품질이 올라간다(좋아진다, 높아진다). 또 제품의 다양성이 증가하고, 소비자들은 더 좋은 혜택을 받을 수 있다.",
            "keywords": [
                "가격",
                "품질",
                "다양성",
                "혜택"
            ],
            "result": [
                {
                    "student_id": "20165020",
                    "answer": "가격이 내려가거나 양이 많아진다. 그래서 소비자에게 이득이 된다.",
                    "sim_score": 0.5621,
                    "keyword_score": 0.25,
                    "total_score": 0.8121,
                    "match_info": {
                        "keyword": [
                            "가격"
                        ],
                        "start_idx": [
                            [
                                0
                            ],
                            [],
                            [],
                            []
                        ],
                        "end_idx": [
                            [
                                2
                            ],
                            [],
                            [],
                            []
                        ]
                    }
                },
                {
                    "student_id": "20182222",
                    "answer": "물건의 가격이 더 싸지고, 품질이 더 좋아진다.",
                    "sim_score": 0.5621,
                    "keyword_score": 0.5,
                    "total_score": 1.0621,
                    "match_info": {
                        "keyword": [
                            "가격",
                            "품질"
                        ],
                        "start_idx": [
                            [
                                4
                            ],
                            [
                                15
                            ],
                            [],
                            []
                        ],
                        "end_idx": [
                            [
                                6
                            ],
                            [
                                17
                            ],
                            [],
                            []
                        ]
                    }
                }
            ]
        },
        {
            "problem_idx": 1,
            "question": "높은 산에서 과자봉지가 부풀어 오르는 이유는 무엇일까요?",
            "gold_answer": "고도가 높아지면 공기의 압력이 낮아지는데, 온도가 일정할 때 압력이 작아지면 기체의 부피는 증가하므로 과자 봉지 내부 기체의 부피가 증가하기 때문이다.",
            "keywords": [
                "압력",
                "공기",
                "고도",
                "온도",
                "부피"
            ],
            "result": [
                {
                    "student_id": "20165020",
                    "answer": "높이 올라가면 공기의 압력이 낮아지고 과자가 빵빵해진다",
                    "sim_score": 0.5621,
                    "keyword_score": 0.4,
                    "total_score": 0.9621,
                    "match_info": {
                        "keyword": [
                            "압력",
                            "공기"
                        ],
                        "start_idx": [
                            [
                                12
                            ],
                            [
                                8
                            ],
                            [],
                            [],
                            []
                        ],
                        "end_idx": [
                            [
                                14
                            ],
                            [
                                10
                            ],
                            [],
                            [],
                            []
                        ]
                    }
                },
                {
                    "student_id": "20182222",
                    "answer": "과자봉지의 기체 부피가 늘어난다",
                    "sim_score": 0.5621,
                    "keyword_score": 0.2,
                    "total_score": 0.7621,
                    "match_info": {
                        "keyword": [
                            "부피"
                        ],
                        "start_idx": [
                            [],
                            [],
                            [],
                            [],
                            [
                                9
                            ]
                        ],
                        "end_idx": [
                            [],
                            [],
                            [],
                            [],
                            [
                                11
                            ]
                        ]
                    }
                }
            ]
        }
    ]
}