mindspore.dataset.text
此模块用于文本数据增强,包括 transforms 和 utils 两个子模块。
transforms 是一个高性能文本数据增强模块,支持常见的文本数据增强处理。
utils 提供了一些文本处理的工具方法。
在API示例中,常用的模块导入方法如下:
import mindspore.dataset as ds
from mindspore.dataset import text
更多详情请参考 文本数据变换 。
常用数据处理术语说明如下:
TensorOperation,所有C++实现的数据处理操作的基类。
TextTensorOperation,所有文本数据处理操作的基类,派生自TensorOperation。
数据增强算子可以放入数据处理Pipeline中执行,也可以Eager模式执行:
Pipeline模式一般用于处理数据集,示例可参考 数据处理Pipeline介绍。
Eager模式一般用于零散样本,文本预处理举例如下:
from mindspore.dataset import text from mindspore.dataset.text import NormalizeForm # 构造词汇表 vocab_list = {"床": 1, "前": 2, "明": 3, "月": 4, "光": 5, "疑": 6, "是": 7, "地": 8, "上": 9, "霜": 10, "举": 11, "头": 12, "望": 13, "低": 14, "思": 15, "故": 16, "乡": 17, "繁": 18, "體": 19, "字": 20, "嘿": 21, "哈": 22, "大": 23, "笑": 24, "嘻": 25, "UNK": 26} vocab = text.Vocab.from_dict(vocab_list) tokenizer_op = text.BertTokenizer(vocab=vocab, suffix_indicator='##', max_bytes_per_token=100, unknown_token='[UNK]', lower_case=False, keep_whitespace=False, normalization_form=NormalizeForm.NONE, preserve_unused_token=True, with_offsets=False) # 分词 tokens = tokenizer_op("床前明月光,疑是地上霜,举头望明月,低头思故乡。") print("token: {}".format(tokens), flush=True) # 根据单词查找id ids = vocab.tokens_to_ids(tokens) print("token to id: {}".format(ids), flush=True) # 根据id查找单词 tokens_from_ids = vocab.ids_to_tokens([15, 3, 7]) print("token to id: {}".format(tokens_from_ids), flush=True)
变换
接口名 |
概述 |
说明 |
按照指定规则对输入的UTF-8编码字符串进行分词。 |
Windows平台尚不支持 BasicTokenizer |
|
使用Bert分词器对字符串进行分词。 |
Windows平台尚不支持 BertTokenizer |
|
将UTF-8编码字符串中的字符规范化为小写,相比 |
Windows平台尚不支持 CaseFold |
|
Filter Wikipedia XML dumps to "clean" text consisting only of lowercase letters (a-z, converted from A-Z), and spaces (never consecutive). |
||
使用Jieba分词器对中文字符串进行分词。 |
必须保证隐式马尔科夫模型分词(HMMSEgment)和最大概率法分词(MPSegment)所使用的词典文件的完整性 |
|
根据词表,将分词标记(token)映射到其索引值(id)。 |
||
从1-D的字符串生成N-gram。 |
||
对UTF-8编码的字符串进行规范化处理。 |
Windows平台尚不支持 NormalizeUTF8 |
|
使用用户自定义的分词器对输入字符串进行分词。 |
||
根据正则表达式对UTF-8编码格式的字符串内容进行正则替换。 |
Windows平台尚不支持 RegexReplace |
|
根据正则表达式对字符串进行分词。 |
Windows平台尚不支持 RegexTokenizer |
|
使用SentencePiece分词器对字符串进行分词。 |
||
在输入数据的某个维度上进行滑窗切分处理,当前仅支持处理1-D的Tensor。 |
||
将字符串的每个元素转换为数字。 |
||
Look up a token into vectors according to the input vector table. |
||
截断一对 1-D 字符串的内容,使其总长度小于给定长度。 |
||
使用Unicode分词器将字符串分词为Unicode字符。 |
||
使用UnicodeScript分词器对UTF-8编码的字符串进行分词。 |
Windows平台尚不支持 UnicodeScriptTokenizer |
|
基于ICU4C定义的空白字符(' ', '\\t', '\\r', '\\n')对输入的UTF-8字符串进行分词。 |
Windows平台尚不支持 WhitespaceTokenizer |
|
将输入的字符串切分为子词。 |
工具
接口名 |
概述 |
说明 |
CharNGram object that is used to map tokens into pre-trained vectors. |
||
FastText object that is used to map tokens into vectors. |
||
GloVe object that is used to map tokens into vectors. |
||
Unicode规范化模式 枚举类。 |
||
SentencePiece分词方法的枚举类。 |
||
用于执行分词的SentencePiece对象。 |
||
Vectors object that is used to map tokens into vectors. |
||
用于查找单词的Vocab对象。 |
||
基于 encoding 字符集对每个元素进行编码,将 string 的NumPy数组转换为 bytes 的数组。 |
||
基于 encoding 字符集对每个元素进行解码,借此将 bytes 的NumPy数组转换为 string 的数组。 |