mirror of
https://github.com/open-compass/opencompass.git
synced 2025-05-30 16:03:24 +08:00
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
![]() |
# flake8: noqa: E501
|
||
|
import re
|
||
|
|
||
|
|
||
|
def check_standalization(model_response, prompt_style, type):
|
||
|
if model_response.startswith(
|
||
|
('option 1', 'option 2', 'option 3', '选项一', '选项二', '选项三')):
|
||
|
return 0
|
||
|
else:
|
||
|
return 1
|
||
|
|
||
|
|
||
|
def check_empty(model_response):
|
||
|
if model_response == '':
|
||
|
return 1
|
||
|
else:
|
||
|
return 0
|
||
|
|
||
|
|
||
|
def check_repetition(model_response):
|
||
|
if any(response in model_response for response in [
|
||
|
'answer (option 1 or option 2 or option 3 ?)',
|
||
|
'you will be presented with a causal graph in the following form:',
|
||
|
'答案(选项一或选项二或选项三?)', '给定如下因果图'
|
||
|
]):
|
||
|
return 1
|
||
|
else:
|
||
|
return 0
|
||
|
|
||
|
|
||
|
def contains_chinese(text):
|
||
|
chinese_pattern = re.compile(r'[\u4e00-\u9fff]+')
|
||
|
result = 1 if chinese_pattern.search(text) is not None else 0
|
||
|
|
||
|
return result
|
||
|
|
||
|
|
||
|
def contains_english(text):
|
||
|
english_pattern = re.compile(r'[A-Za-z]{2,}')
|
||
|
result = 1 if english_pattern.search(text) is not None else 0
|
||
|
|
||
|
return result
|
||
|
|
||
|
|
||
|
def check_abnormality(preds):
|
||
|
abnormalities = 'All option1' if all(pred == 1 for pred in preds) else \
|
||
|
'All option2' if all(pred == 2 for pred in preds) else \
|
||
|
'All option3' if all(pred == 3 for pred in preds) else 0
|
||
|
return abnormalities
|