Preprocess df and generate final dict
(df: pd.DataFrame, eval_args, df_dev: pd.DataFrame = None)
| 3 | |
| 4 | |
| 5 | def preprocess(df: pd.DataFrame, eval_args, df_dev: pd.DataFrame = None): |
| 6 | ''' |
| 7 | Preprocess df and generate final dict |
| 8 | ''' |
| 9 | question_prompt = '''以下是关于开发运维领域的单项选择题,请选出其中的正确答案。请直接输出选项。\n''' |
| 10 | |
| 11 | if eval_args.k_shot > 0 and df_dev is not None: |
| 12 | # uppercase to lowercase |
| 13 | df_dev.rename(columns={ |
| 14 | 'Question': 'question', |
| 15 | 'Answer': 'answer' |
| 16 | }, inplace=True) |
| 17 | |
| 18 | prefix = '' |
| 19 | |
| 20 | for idx in range(eval_args.k_shot): |
| 21 | question = df_dev['question'].iloc[idx] |
| 22 | prefix = prefix + question_prompt + '问题:' + question + '\n' |
| 23 | |
| 24 | for option in ['A', 'B', 'C', 'D']: |
| 25 | if df_dev[option].iloc[idx]: |
| 26 | prefix += '{}. {}\n'.format(option, df_dev[option].iloc[idx]) |
| 27 | prefix += '答案:{}\n'.format(df_dev['answer'].iloc[idx].strip().upper()) |
| 28 | prefix = prefix + question_prompt |
| 29 | res = preprocess_question(df, prefix) |
| 30 | else: |
| 31 | res = preprocess_question(df, question_prompt) |
| 32 | |
| 33 | return res |
| 34 | |
| 35 | def preprocess_question(df: pd.DataFrame, prefix: str = ''): |
| 36 | ''' |
no test coverage detected