MCPcopy Create free account
hub / github.com/RingBDStack/GDAP / main

Function main

evaluation.py:183–289  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

181 pass
182
183def 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

Callers 1

evaluation.pyFile · 0.70

Calls 8

count_instanceMethod · 0.95
compute_f1Method · 0.95
generate_sentence_dyieppFunction · 0.85
read_from_fileMethod · 0.80
MetricClass · 0.70
read_fileFunction · 0.70
decodeMethod · 0.45

Tested by

no test coverage detected