当我使用 ATIS(航空旅行信息系统)数据集( http://lisaweb.iro.umontreal.ca/transfert/lisa/users/mesnilgr/atis/ )进行循环神经网络研究时。我对它的结构感到困惑。
例如,使用 data = pickle.load(open("./dataset/atis.fold0.pkl", "rb"),encoding='iso-8859-1')
要加载 atis.fold0.pkl,我使用 print (np.shape(data_train))
来获取 (4,)
。我认为数据[0]是训练集,数据[1]是有效集,数据[2]是测试集,数据[3]是字典。
但是当我使用 print(np.shape(data[0]))
时,我得到 (3, 3983)
。我想知道为什么我的里面有3行?这三行有什么区别。
文件 atis.fold0.pkl、atis.fold1.pkl、atis.fold2.pkl、atis.fold3.pkl、atis.fold4.pkl 之间有什么区别?
最佳答案
f = gzip.open(filename, 'rb')
try:
train_set, valid_set, test_set, dicts = pickle.load(f, encoding='latin1')
except:
train_set, valid_set, test_set, dicts = pickle.load(f)
print np.shape(train_set)
每个pickle都可以分为训练、验证、测试及其字典。当您看到字典元素时,它们包含
words2idx
表2idx
labels2idx
现在测试以下代码
对于 train_set 中的 i:
打印长度(i[0])
它将返回相同长度的文件。 所以第一个元素是单词。第二个元素是tables2idx,第三个元素是槽填充的最终结果(labels2idx)
用dict解密一下id,就明白意思了。
关于python - ATIS(航空旅行信息系统)数据集的结构是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36299544/