()
| 181 | pass |
| 182 | |
| 183 | def main(): |
| 184 | parser = argparse.ArgumentParser() |
| 185 | parser.add_argument('--text_file', type=str) |
| 186 | parser.add_argument('--pred_file', type=str) |
| 187 | parser.add_argument('--gold_file', type=str) |
| 188 | parser.add_argument('--schema_file', type=str) |
| 189 | |
| 190 | parser.add_argument('--format', type=str, default="dyiepp") |
| 191 | parser.add_argument('--verbose', action='store_true') |
| 192 | parser.add_argument('--decoding_format', type=str, default='noetrtspan') |
| 193 | options = parser.parse_args() |
| 194 | |
| 195 | |
| 196 | label_schema = EventSchema.read_from_file( |
| 197 | filename=options.schema_file |
| 198 | ) |
| 199 | |
| 200 | decoding_format_dict = { |
| 201 | 'role': RolePredictParser, |
| 202 | 'tri': TriPredictParser |
| 203 | } |
| 204 | |
| 205 | # 替换为自己的predict parser |
| 206 | pred_reader = decoding_format_dict[options.decoding_format](schema=label_schema) |
| 207 | |
| 208 | |
| 209 | trigger_metric = Metric() |
| 210 | argument_metric = Metric() |
| 211 | |
| 212 | # Reconstruct the offset of predicted event records. |
| 213 | text_filename = options.text_file |
| 214 | pred_filename = options.pred_file |
| 215 | gold_filename = options.gold_file |
| 216 | print("pred_filename: ", pred_filename) |
| 217 | print("gold_filename: ", gold_filename) |
| 218 | |
| 219 | # 离线评估 |
| 220 | # 在此处处理的时候, 需要将 et、rt特殊处理的部分进行添加, 以及src相同的部分进行合并 |
| 221 | event_list, _ = pred_reader.decode( |
| 222 | gold_list=[], |
| 223 | pred_list=read_file(pred_filename), |
| 224 | text_list=[json.loads(line)['text'] |
| 225 | for line in read_file(text_filename)], |
| 226 | ) |
| 227 | # print(event_list[0]) |
| 228 | |
| 229 | # text 中空格一类的做key会有影响, 后续可考虑用id来指代 |
| 230 | text_pred_dict = {} # 构建 text: ([tri_list][role_list]) 类型的字典 |
| 231 | text_gold_dict = {} |
| 232 | |
| 233 | for item in event_list: |
| 234 | if item["text"] in text_pred_dict: |
| 235 | # print("Warning: text duplicate , text: ", item["text"]) |
| 236 | text_pred_dict[item["text"]][0] += item['pred_event'] |
| 237 | text_pred_dict[item["text"]][1] += item['pred_role'] |
| 238 | else: |
| 239 | text_pred_dict[item["text"]] = [item['pred_event'], item['pred_role']] |
| 240 |
no test coverage detected