2021SC@SDUSC
之前的十篇博客,我对train.py中的核心代码和关键代码进行了详细分析,可以得知,它主要是用于对数据集的训练,运行train.py的部分结果如下:
接下来我们看对数据集进行评价的代码:eval.py。简单说一下它是用来干嘛的。就是说,我们train完训练集之后,生成文本,也就是generate的过程。在生成之后,需要对生成的文本进行评估,这里也就是eval.py的内容,里面的类、函数和各种操作都是为了对文本进行评估。
首先先看main函数:
with open(sys.argv[1]) as f:
cands = {'generated_description'+str(i):x.strip() for i,x in enumerate(f.readlines())}
with open(sys.argv[2]) as f:
refs = {'generated_description'+str(i):[x.strip()] for i,x in enumerate(f.readlines())}
x = Evaluate()
x.evaluate(live=True, cand=cands, ref=refs)
cands是sys.argv[1]文件中按行读取的descriptions,大致为:
'generated_description1: