使用mindspore.dataset模块可以帮助用户构建数据集对象,分批次地读取文本数据。同时,在各个数据集类中还内置了数据处理和数据分词算子,使得数据在训练过程中能够像经过pipeline管道的水一样源源不断地流向训练系统,提升数据训练效果。
下面,简要演示如何使用MindSpore加载和处理文本数据。
-
准备数据
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
-
加载数据集
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
数据分词
下面演示使用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!']