为什么新版本的 allennlp 的 datasetloader 没有 __add__ 方法?

问题描述

取消了吗?那么如何添加两个数据集来构建词汇呢? 在 allennlp1.0 中,我可以做到

reader = StanfordSentimentTreeBankDatasetReader()
train_dataset = reader.read('train.txt')
dev_dataset = reader.read('dev.txt')

for inst in train_dataset + dev_dataset:
    print(inst)
    break

然后一起建一个vocab,但是为什么allennlp 2.0取消了呢? 对不起,我在 allennlp 是个新鲜人

解决方法

DatasetReader.read() 现在只返回一个迭代器。所以你可以像这样完成同样的事情:

from itertools import chain

for inst in chain(train_dataset,dev_dataset):
    print(inst)