当我使用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,)
。我认为data [0]是训练集,data [1]是有效集,data [2]是测试集,data [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)
每个泡菜可以分为训练,验证,测试及其字典。当您看到字典元素时,它们包含单词2idx
table2idx
标签2
现在测试以下代码
for i in train_set:print len(i[0])
它将返回相同长度的文件。
所以第一个元素是单词,第二个是table2idx,第三个是插槽填充的最终结果(labels2idx)
使用字典来解密ID,您将获得含义。
关于python - ATIS(航空旅行信息系统)数据集的结构是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36299544/