2021SC@SDUSC
这一部分代码仍旧属于mkVocab函数,但重点与上半部分不同,上半部分集中于训练集的构建,而该部分着手于将数据集向量化并传递给主体
self.OUTP.build_vocab(train, min_freq=args.outunk)
self.TGT.vocab = copy(self.OUTP.vocab)
specials = zip("method material otherscientificterm metric task".split(" ")
利用build_vocab函数从训练集train中构建向量,条件为min-freq=args.outtunk,并产生一个OUTP.vocab的副本,赋值于self.TGT.vocab。zip是Python的一个内置函数,用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表,在这里我们将训练集通过split函数按照“ ”拆分字符串后形成元组列表,生成specials列表。
for x in specials:
s = "<"+x[0]+"_"+str(x[1])+">"
self.TGT.vocab.stoi[s] = len(self.TGT.vocab.itos)+x[1]