Bootstrap

MindSpore加载文本数据集

使用mindspore.dataset模块可以帮助用户构建数据集对象,分批次地读取文本数据。同时,在各个数据集类中还内置了数据处理和数据分词算子,使得数据在训练过程中能够像经过pipeline管道的水一样源源不断地流向训练系统,提升数据训练效果。

下面,简要演示如何使用MindSpore加载和处理文本数据。

  1. 准备数据

    1. 数据如下:

    Welcome to Beijing!

    北京欢迎您!

    我喜欢China!

    2.创建tokenizer.txt文件并复制文本数据到该文件中,将该文件存放在./test路径中,目录结构如下。

    └─test

        └─tokenizer.txt

    3.导入mindspore.dataset和mindspore.dataset.text模块。

    import mindspore.dataset as ds

    import mindspore.dataset.text as text

  2. 加载数据集

    1.配置数据集目录,创建数据集对象。

    DATA_FILE = "./test/tokenizer.txt"

    dataset = ds.TextFileDataset(DATA_FILE, shuffle=False)

    2.创建迭代器,通过迭代器获取数据。

    for data in dataset.create_dict_iterator(output_numpy=True):

        print(text.to_str(data['text']))

    获取到分词前的数据:

    Welcome to Beijing!

    北京欢迎您!

    我喜欢China!

  3. 3

    数据分词

    下面演示使用WhitespaceTokenizer分词器来分词,该分词是按照空格来进行分词。

    1.创建tokenizer。

    tokenizer = text.WhitespaceTokenizer()

    2.执行操作tokenizer。

    dataset = dataset.map(operations=tokenizer)

    3.创建迭代器,通过迭代器获取数据。

    for i in dataset.create_dict_iterator(num_epochs=1, output_numpy=True):

            token = text.to_str(i['text']).tolist()

            print(token)

    获取到分词后的数据:

    ['Welcome', 'to', 'Beijing!']

    ['北京欢迎您!']

    ['我喜欢China!']

;