[1-15, 16] 채점기준 변경

This commit is contained in:
2025-07-09 17:10:59 +09:00
parent 332be598d1
commit b8b233e50a
10 changed files with 38 additions and 19 deletions

View File

@@ -73,9 +73,12 @@ class XMLScorer:
if xml_type == "hml":
all_text = root.xpath(f"//BODY//text() | //TEXTART/@Text") if root is not None else []
if xml_type == "chart":
elif xml_type == "chart":
all_text = root.xpath(f"//c:chart//text()", namespaces=namespaces) if root is not None else []
else:
all_text = []
# 유사도 비교
max_score = 0
similar_text = ''
@@ -368,7 +371,23 @@ class XMLScorer:
self.evaluate_answer(scoring, user_answer, right_answer, points)
# [1-16] ◈ 행사안내 ◈
# 특수문자와 글자의 속성이 같고 문서 내부에 '행사안내'와 같은 문자가 있을 경우
# 유사도 문제로 의도치 않은 부분의 속성이 채점되는것을 방지하고자
# 해당 문자를 포함하는 모든 문단의 속성을 판단해
# 정렬값이 정답과 일치하는 경우 정답으로 채점
elif (category or "") == "Align":
match_str = criterion.get('match_str', None)
xpath = xpath.replace('{match_str}', match_str)
items = root.xpath(xpath)
for item in items:
user_answer = item
self.evaluate_answer(scoring, user_answer, right_answer, points)
if scoring['points'] > 0:
break
# 정답이 하나인 경우
# elif (category or "") == "OneAnswer":
elif (category or "") in ["OneAnswer", "ChartOneAnswer"]:
@@ -1230,10 +1249,10 @@ def main():
# 채점하고자 하는 유형은 주석 해제
exam_types = [
'A',
'B',
# 'A',
# 'B',
'C',
'D',
# 'D',
]
test_mode = False