mindspore.dataset.text

此模块用于文本数据增强,包括 transformsutils 两个子模块。

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)
    

变换

接口名

概述

说明

mindspore.dataset.text.BasicTokenizer

按照指定规则对输入的UTF-8编码字符串进行分词。

Windows平台尚不支持 BasicTokenizer

mindspore.dataset.text.BertTokenizer

使用Bert分词器对字符串进行分词。

Windows平台尚不支持 BertTokenizer

mindspore.dataset.text.CaseFold

将UTF-8编码字符串中的字符规范化为小写,相比 str.lower() 支持更多字符。

Windows平台尚不支持 CaseFold

mindspore.dataset.text.FilterWikipediaXML

Filter Wikipedia XML dumps to "clean" text consisting only of lowercase letters (a-z, converted from A-Z), and spaces (never consecutive).

mindspore.dataset.text.JiebaTokenizer

使用Jieba分词器对中文字符串进行分词。

必须保证隐式马尔科夫模型分词(HMMSEgment)和最大概率法分词(MPSegment)所使用的词典文件的完整性

mindspore.dataset.text.Lookup

根据词表,将分词标记(token)映射到其索引值(id)。

mindspore.dataset.text.Ngram

从1-D的字符串生成N-gram。

mindspore.dataset.text.NormalizeUTF8

对UTF-8编码的字符串进行规范化处理。

Windows平台尚不支持 NormalizeUTF8

mindspore.dataset.text.PythonTokenizer

使用用户自定义的分词器对输入字符串进行分词。

mindspore.dataset.text.RegexReplace

根据正则表达式对UTF-8编码格式的字符串内容进行正则替换。

Windows平台尚不支持 RegexReplace

mindspore.dataset.text.RegexTokenizer

根据正则表达式对字符串进行分词。

Windows平台尚不支持 RegexTokenizer

mindspore.dataset.text.SentencePieceTokenizer

使用SentencePiece分词器对字符串进行分词。

mindspore.dataset.text.SlidingWindow

在输入数据的某个维度上进行滑窗切分处理,当前仅支持处理1-D的Tensor。

mindspore.dataset.text.ToNumber

将字符串的每个元素转换为数字。

mindspore.dataset.text.ToVectors

Look up a token into vectors according to the input vector table.

mindspore.dataset.text.TruncateSequencePair

截断一对 1-D 字符串的内容,使其总长度小于给定长度。

mindspore.dataset.text.UnicodeCharTokenizer

使用Unicode分词器将字符串分词为Unicode字符。

mindspore.dataset.text.UnicodeScriptTokenizer

使用UnicodeScript分词器对UTF-8编码的字符串进行分词。

Windows平台尚不支持 UnicodeScriptTokenizer

mindspore.dataset.text.WhitespaceTokenizer

基于ICU4C定义的空白字符(' ', '\\t', '\\r', '\\n')对输入的UTF-8字符串进行分词。

Windows平台尚不支持 WhitespaceTokenizer

mindspore.dataset.text.WordpieceTokenizer

将输入的字符串切分为子词。

工具

接口名

概述

说明

mindspore.dataset.text.CharNGram

CharNGram object that is used to map tokens into pre-trained vectors.

mindspore.dataset.text.FastText

FastText object that is used to map tokens into vectors.

mindspore.dataset.text.GloVe

GloVe object that is used to map tokens into vectors.

mindspore.dataset.text.JiebaMode

mindspore.dataset.text.JiebaTokenizer 的枚举值。

mindspore.dataset.text.NormalizeForm

Unicode规范化模式 枚举类。

mindspore.dataset.text.SentencePieceModel

SentencePiece分词方法的枚举类。

mindspore.dataset.text.SentencePieceVocab

用于执行分词的SentencePiece对象。

mindspore.dataset.text.SPieceTokenizerLoadType

mindspore.dataset.text.SentencePieceTokenizer 加载类型的枚举值。

mindspore.dataset.text.SPieceTokenizerOutType

mindspore.dataset.text.SentencePieceTokenizer 输出类型的枚举值。

mindspore.dataset.text.Vectors

Vectors object that is used to map tokens into vectors.

mindspore.dataset.text.Vocab

用于查找单词的Vocab对象。

mindspore.dataset.text.to_bytes

基于 encoding 字符集对每个元素进行编码,将 string 的NumPy数组转换为 bytes 的数组。

mindspore.dataset.text.to_str

基于 encoding 字符集对每个元素进行解码,借此将 bytes 的NumPy数组转换为 string 的数组。