한글채점 개선버전 1-13문항까지 적용
This commit is contained in:
164
DIW_2504A_test.json
Normal file
164
DIW_2504A_test.json
Normal file
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"0": {
|
||||
"0": {
|
||||
"path": "",
|
||||
"path2": "",
|
||||
"points": 0,
|
||||
"category": "파일저장",
|
||||
"item": "파일명 (수검번호.hwp/hwpx)"
|
||||
},
|
||||
"1": {
|
||||
"path": "//PAGEMARGIN",
|
||||
"value": {
|
||||
"Bottom": 5669,
|
||||
"Footer": 2834,
|
||||
"Gutter": 0,
|
||||
"Header": 2834,
|
||||
"Left": 5669,
|
||||
"Right": 5669,
|
||||
"Top": 5669
|
||||
},
|
||||
"tolerance": 1,
|
||||
"points": 4,
|
||||
"category": "PageSetting",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//STYLE[@Name='바탕글']",
|
||||
"value": {
|
||||
"FontName": "바탕",
|
||||
"FontSize": "1000",
|
||||
"Alignment": "Justify",
|
||||
"LineSpacing": "160"
|
||||
},
|
||||
"points": 4,
|
||||
"category": "BasicSetting",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"3": {
|
||||
"path": "",
|
||||
"searchValue": null,
|
||||
"value": null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"1": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": "궁서",
|
||||
"points": 1,
|
||||
"category": "SingleAnswer",
|
||||
"item": "문구 (한옥마을사생대회안내)/① 글씨체 (궁서)"
|
||||
},
|
||||
"2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": "100,170,92",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "문구 (한옥마을사생대회안내)/② 채우기 : 색상(RGB:100,170,92)"
|
||||
},
|
||||
"3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": "28346",
|
||||
"points": 2,
|
||||
"category": "SingleAnswer",
|
||||
"item": "문구 (한옥마을사생대회안내)/③ 크기-너비 (100mm)"
|
||||
},
|
||||
"4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": "5669",
|
||||
"points": 2,
|
||||
"category": "SingleAnswer",
|
||||
"item": "문구 (한옥마을사생대회안내)/④ 크기-높이 (20mm)"
|
||||
},
|
||||
"5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "SingleAnswer",
|
||||
"item": "문구 (한옥마을사생대회안내)/⑤ 위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "SingleAnswer",
|
||||
"item": "문구 (한옥마을사생대회안내)/⑥ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"7": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']",
|
||||
"path2": null,
|
||||
"searchValue": "한옥마을사생대회안내",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "Boolean",
|
||||
"item": "문구 (한옥마을사생대회안내)/⑦ 글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE",
|
||||
"path2": null,
|
||||
"searchValue": "자",
|
||||
"value": {
|
||||
"Height": 2800,
|
||||
"Width": 2800
|
||||
},
|
||||
"tolerance": 200,
|
||||
"points": 1,
|
||||
"category": "TwoLineSize",
|
||||
"item": "자/① 모양 (2줄)"
|
||||
},
|
||||
"9": {
|
||||
"path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape",
|
||||
"path2": null,
|
||||
"searchValue": "자",
|
||||
"value": "맑은 고딕",
|
||||
"points": 1,
|
||||
"category": "FontName",
|
||||
"item": "자/② 글씨체 (맑은 고딕)"
|
||||
},
|
||||
"10": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor",
|
||||
"path2": null,
|
||||
"searchValue": "자",
|
||||
"value": "53,135,145",
|
||||
"points": 2,
|
||||
"category": "Color",
|
||||
"item": "자/③ 면색 : 색상(RGB:53,135,145)"
|
||||
},
|
||||
"11": {
|
||||
"path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right",
|
||||
"path2": null,
|
||||
"searchValue": "자",
|
||||
"value": "850",
|
||||
"points": 2,
|
||||
"category": "SingleAnswer",
|
||||
"item": "자/④ 본문과의 간격 : 3.0mm"
|
||||
},
|
||||
"12": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"path2": null,
|
||||
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
|
||||
"value": "BOLD",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/① 진하게"
|
||||
},
|
||||
"13": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]",
|
||||
"path2": null,
|
||||
"searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회",
|
||||
"value": "UNDERLINE",
|
||||
"points": 2,
|
||||
"category": "FontAttribute",
|
||||
"item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/② 밑줄"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -313,14 +313,26 @@ class XMLScorer:
|
||||
charshape_id = root.xpath(xpath)
|
||||
if not charshape_id:
|
||||
charshape_id = None
|
||||
user_answer = None
|
||||
else:
|
||||
font_id = root.xpath(f"//CHARSHAPE[@Id='{charshape_id[0]}']/FONTID/@Hangul")
|
||||
font_name = root.xpath(f"//FONTFACE[@Lang='Hangul']/FONT[@Id='{font_id[0]}']/@Name")
|
||||
|
||||
user_answer = font_name[0]
|
||||
user_answer = font_name[0]
|
||||
|
||||
self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal")
|
||||
|
||||
elif "FontAttribute" in (category or ""):
|
||||
charshape = root.xpath(xpath)
|
||||
if not charshape:
|
||||
charshape = None
|
||||
user_answer = None
|
||||
else:
|
||||
font_attribute = charshape[0].find(right_answer)
|
||||
if font_attribute is not None:
|
||||
user_answer = font_attribute.tag
|
||||
|
||||
self.evaluate_answer(scoring, user_answer, right_answer, points, method="equal")
|
||||
|
||||
onePersonResult['score_results'].append(scoring)
|
||||
print(f'scoring: {scoring}')
|
||||
onePersonResult['partial_scores'].append({
|
||||
@@ -609,7 +621,7 @@ class XMLScorer:
|
||||
def main():
|
||||
|
||||
# 시험회차 및 유형
|
||||
exam_round = '2503'
|
||||
exam_round = '2504'
|
||||
exam_types = [
|
||||
'A',
|
||||
# 'B',
|
||||
|
||||
@@ -1 +1 @@
|
||||
[{"kind":2,"language":"xpath","value":"boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul][@Name='바탕']"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Name='바탕']/@Id"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id='6']/FONTID/@Hangul"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id='0']/@Align"},{"kind":2,"language":"xpath","value":"boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id={charshape_id}]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id={font_id}]/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape][ITALIC]"},{"kind":2,"language":"xpath","value":"//CHAR[contains(text(),'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]]"}]
|
||||
[{"kind":2,"language":"xpath","value":"boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul][@Name='바탕']"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Name='바탕']/@Id"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id='6']/FONTID/@Hangul"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id='0']/@Align"},{"kind":2,"language":"xpath","value":"boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id={charshape_id}]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id={font_id}]/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape][ITALIC]"},{"kind":2,"language":"xpath","value":"//CHAR[contains(text(),'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text(),'한옥에 대한 체험과 교육이 준비된 사생대회')]/parent::TEXT/@CharShape]"}]
|
||||
Reference in New Issue
Block a user