|
|
import os
|
|
|
import pyecharts.options as opts
|
|
|
from pyecharts.charts import Line
|
|
|
from pyecharts.faker import Faker
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
outcome_dir = r'E:\Data\Research\Outcome'
|
|
|
datasets_list = os.listdir(outcome_dir)
|
|
|
inter_list = ['0', '0.5', '0.7', '0.9', '1']
|
|
|
configs_dir = r'\Magellan+Smac+roberta-large-nli-stsb-mean-tokens+inter-'
|
|
|
|
|
|
for _ in datasets_list:
|
|
|
block_recall_list = []
|
|
|
f1 = []
|
|
|
interpretability = []
|
|
|
for inter in inter_list:
|
|
|
path = outcome_dir + rf'\{_}' + configs_dir + inter
|
|
|
statistics_files = os.listdir(path)
|
|
|
for i in statistics_files:
|
|
|
if i.startswith('eval_result'):
|
|
|
with open(path + rf'\{i}', 'r') as f:
|
|
|
# 读取每一行的md,加入该文件的md列表
|
|
|
for line in f.readlines():
|
|
|
if line.startswith('block_recall'):
|
|
|
lt = line.split(':')
|
|
|
value = float(lt[1])
|
|
|
block_recall_list.append(round(value, ndigits=3))
|
|
|
elif line.startswith('F1'):
|
|
|
lt = line.split(' ')
|
|
|
value = float(lt[2].replace('%', '')) / 100
|
|
|
f1.append(round(value, ndigits=3))
|
|
|
elif line.startswith('interpretability'):
|
|
|
lt = line.split(':')
|
|
|
value = float(lt[1])
|
|
|
interpretability.append(round(value, ndigits=3))
|
|
|
interpretability[0] = 0
|
|
|
|
|
|
c = (
|
|
|
Line()
|
|
|
.add_xaxis(inter_list)
|
|
|
.add_yaxis("Block Recall", block_recall_list)
|
|
|
.add_yaxis("F1", f1)
|
|
|
.add_yaxis("Interpretability", interpretability)
|
|
|
.set_global_opts(
|
|
|
title_opts=opts.TitleOpts(title=_),
|
|
|
# yaxis_opts=opts.AxisOpts(name="Block Recall", name_location="middle", name_gap=15, name_rotate=0),
|
|
|
xaxis_opts=opts.AxisOpts(name="Interpretability Weight", name_location="middle", name_gap=25)
|
|
|
)
|
|
|
.render(outcome_dir + rf'\{_}\inter_weight_lines.html')
|
|
|
)
|