diff --git a/opencompass/datasets/smolinstruct.py b/opencompass/datasets/smolinstruct.py
index f84eec23..333d3177 100644
--- a/opencompass/datasets/smolinstruct.py
+++ b/opencompass/datasets/smolinstruct.py
@@ -463,15 +463,16 @@ def smolinstruct_acc_0shot_postprocess(text: str) -> str:
r'[Aa]nswer:\s*(yes|no)\b',
r'\*\*[Aa]nswer:\*\*\s*(yes|no)\b',
r'\*\*[Aa]nswer\*\*:\s*(yes|no)\b',
- r'\s*(yes|no)\s*'
+ r'\s*(yes|no)\s*',
+ r'^\s*(yes|no)[\.\?!]?\s*$'
]
for pattern in patterns:
text = text.strip()
match = re.search(pattern, text, flags=re.IGNORECASE)
if match:
answer = match.group(1) # modified
- if answer.lower() == 'yes' or answer.lower() == 'yes.':
+ if answer.lower() == 'yes':
return " Yes "
- elif answer.lower() == 'no' or answer.lower() == 'no.':
+ elif answer.lower() == 'no':
return " No "
return ""