mindspore.dataset.text.BasicTokenizer

class mindspore.dataset.text.BasicTokenizer(lower_case=False, keep_whitespace=False, normalization_form=NormalizeForm.NONE, preserve_unused_token=True, with_offsets=False)[源代码]

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

说明

Windows平台尚不支持 BasicTokenizer

参数:
  • lower_case (bool,可选) - 是否对字符串进行小写转换处理。若为 True ,会将字符串转换为小写并删除重音字符;若为 False ,将只对字符串进行规范化处理,其模式由 normalization_form 指定。默认值: False

  • keep_whitespace (bool,可选) - 是否在分词输出中保留空格。默认值: False

  • normalization_form (NormalizeForm,可选) - Unicode规范化模式 ,仅当 lower_caseFalse 时生效,取值可为 NormalizeForm.NONENormalizeForm.NFCNormalizeForm.NFKC、NormalizeForm.NFDNormalizeForm.NFKD 。默认值: NormalizeForm.NONE

    • NormalizeForm.NONE:不进行规范化处理。

    • NormalizeForm.NFC:先以标准等价方式分解,再以标准等价方式重组。

    • NormalizeForm.NFKC:先以兼容等价方式分解,再以标准等价方式重组。

    • NormalizeForm.NFD:以标准等价方式分解。

    • NormalizeForm.NFKD:以兼容等价方式分解。

  • preserve_unused_token (bool,可选) - 是否保留特殊词汇。若为 True ,将不会对特殊词汇进行分词,如 ‘[CLS]’, ‘[SEP]’, ‘[UNK]’, ‘[PAD]’, ‘[MASK]’ 等。默认值: True

  • with_offsets (bool,可选) - 是否输出词汇在字符串中的偏移量。默认值: False

异常:
  • TypeError - 当 lower_case 的类型不为bool。

  • TypeError - 当 keep_whitespace 的类型不为bool。

  • TypeError - 当 normalization_form 的类型不为 mindspore.dataset.text.NormalizeForm

  • TypeError - 当 preserve_unused_token 的类型不为bool。

  • TypeError - 当 with_offsets 的类型不为bool。

  • RuntimeError - 当输入Tensor的数据类型不为str。

支持平台:

CPU

样例:

>>> import mindspore.dataset as ds
>>> import mindspore.dataset.text as text
>>> from mindspore.dataset.text import NormalizeForm
>>>
>>> text_file_list = ["/path/to/text_file_dataset_file"]
>>> text_file_dataset = ds.TextFileDataset(dataset_files=text_file_list)
>>>
>>> # 1) If with_offsets=False, default output one column {["text", dtype=str]}
>>> tokenizer_op = text.BasicTokenizer(lower_case=False,
...                                    keep_whitespace=False,
...                                    normalization_form=NormalizeForm.NONE,
...                                    preserve_unused_token=True,
...                                    with_offsets=False)
>>> text_file_dataset = text_file_dataset.map(operations=tokenizer_op)
>>> # 2) If with_offsets=True, then output three columns {["token", dtype=str],
>>> #                                                     ["offsets_start", dtype=uint32],
>>> #                                                     ["offsets_limit", dtype=uint32]}
>>> tokenizer_op = text.BasicTokenizer(lower_case=False,
...                                    keep_whitespace=False,
...                                    normalization_form=NormalizeForm.NONE,
...                                    preserve_unused_token=True,
...                                    with_offsets=True)
>>> text_file_dataset = text_file_dataset.map(operations=tokenizer_op, input_columns=["text"],
...                                           output_columns=["token", "offsets_start", "offsets_limit"])
教程样例: