1

例如,我有用于训练和验证的 txt 文件,其中包含字母

文件_1:

hg jk lo ju jk lk

文件 2:

sd sg gt gh qe

所以我想用这些文件构建一个数据集,(我有 5 个标签)所以我构建了一个 Dataset 类


class Dataset(data.Dataset):
    def __init__(self,data_root):
        self.letters=[]
        self.labels=[]
        labels=0

        for lan in os.listdir(data_root):
            lan_folder = os.path.join(data_root,lan)
            labels=labels+1
            for type in os.listdir(lan_folder):
                type_folder = os.path.join(lan_folder,type)

                for name in os.listdir(type_folder):
                    file_names=os.path.join(type_folder,name)
                    phonegrams=open(file_names,encoding='utf-8').read().strip().split('\n')
                    self.letters.append(phonegrams)
                    self.labels.append(labels)

    def __len__(self):
        return len(self.labels)

    def __getitem__(self,index):
        return self.letters[index],self.labels[index]



dataset=Dataset(r'C:\Users\ASUS\Desktop\David\Programas\Sequence to tag 1st version\phon\training')

当我打印数据集的第一项时,我得到:

([['ij jA: A:z zy yi i']], [1])

我的问题是我想对每个文件进行标记和索引,因为这些文件里面有很少的单词,所以我做了这个:

tokenize = lambda x: x.split()
LANS = Field(tokenize=tokenize,init_token='<sos>',eos_token='<eos>',sequential=True)
LANS.build_vocab(dataset)

接着 :

LANS.vocab.freqs.most_common(1)

我得到

[('ij jA: A:z zy ,1)]

使用完整的句子而不是每个单词,应该让我得到类似的东西:

ij : 1

雅:2

4

0 回答 0