KLUE-baseline
KLUE-baseline copied to clipboard
[MRC 평가] 평가 스크립트 내 정규 표현식
Abstract(요약) 🔥
MRC 평가에서 텍스트 내의 구두점들을 제거하기 위해서 쓰여진 정규 표현식이 적절치 않습니다.
아래 코드에서 정규표현식 r"['"《》<>〈〉]()\‘\’"는 의미상 '"《》<>〈〉 중 하나로 시작하고 ()\‘\’ 로 끝나는 텍스트 인데 정답 텍스트 중에는 이런 텍스트가 없어서 정규표현식이 아무 역할을 하지 않고 있습니다. 결과적으로 line 22 는 lowercasing 만 수행하고 있습니다.
한편 이 정규표현식이 커버해 줄 수 있는 케이스가 적진 않아서 적절한 평가를 위해 수정하면 좋을 듯 합니다.
결론적으로, 코드 맥락 상 정규표현식이 r"['"《》<>〈〉()‘’]" 이렇게 바뀌는게 맞는 것 같습니다.
https://github.com/KLUE-benchmark/KLUE-baseline/blob/8a03c9447e4c225e806877a84242aea11258c790/klue_baseline/metrics/utils.py#L8-L25
How to Reproduce(재현 방법) 🤔
import re
NORMALIZE_CHAR_PATTERN = re.compile(r"[\'\"《》<>〈〉]\(\)\‘\’")
text = "\'\"《》<>〈〉‘’()"
print(f"before:\n{text}")
text = NORMALIZE_CHAR_PATTERN.sub(" ", text) # .lower()
print(f"after:\n{text}")
실행결과:
before:
'"《》<>〈〉‘’()
after:
'"《》<>〈〉‘’()
How to solve (어떻게 해결할 수 있을까요) 🙋♀
😭
line 8: NORMALIZE_CHAR_PATTERN = re.compile(r"[\'\"《》<>〈〉]\(\)\‘\’")
🥰
line 8: NORMALIZE_CHAR_PATTERN = re.compile(r"[\'\"《》<>〈〉()‘’]")