mindspore.dataset.text.WordpieceTokenizer
- class mindspore.dataset.text.WordpieceTokenizer(vocab, suffix_indicator='##', max_bytes_per_token=100, unknown_token='[UNK]', with_offsets=False)[源代码]
将输入的字符串切分为子词。
- 参数:
vocab (
Vocab
) - 用于查词的词汇表。suffix_indicator (str, 可选) - 用于指示子词后缀的前缀标志。默认值:
'##'
。max_bytes_per_token (int,可选) - 分词最大长度,超过此长度的词汇将不会被拆分。默认值:
100
。unknown_token (str,可选) - 对未知词汇的分词输出。当设置为空字符串时,直接返回对应未知词汇作为分词输出;否则,返回该字符串作为分词输出。默认值:
'[UNK]'
。with_offsets (bool, 可选) - 是否输出词汇在字符串中的偏移量。默认值:
False
。
- 异常:
TypeError - 当 vocab 不为
mindspore.dataset.text.Vocab
类型。TypeError - 当 suffix_indicator 的类型不为str。
TypeError - 当 max_bytes_per_token 的类型不为int。
TypeError - 当 unknown_token 的类型不为str。
TypeError - 当 with_offsets 的类型不为bool。
ValueError - 当 max_bytes_per_token 为负数。
- 支持平台:
CPU
样例:
>>> import mindspore.dataset as ds >>> import mindspore.dataset.text as text >>> >>> vocab_list = ["book", "cholera", "era", "favor", "##ite", "my", "is", "love", "dur", "##ing", "the"] >>> vocab = text.Vocab.from_list(vocab_list) >>> # If with_offsets=False, default output one column {["text", dtype=str]} >>> tokenizer_op = text.WordpieceTokenizer(vocab=vocab, unknown_token='[UNK]', ... max_bytes_per_token=100, with_offsets=False) >>> text_file_dataset = text_file_dataset.map(operations=tokenizer_op) >>> # If with_offsets=True, then output three columns {["token", dtype=str], ["offsets_start", dtype=uint32], >>> # ["offsets_limit", dtype=uint32]} >>> tokenizer_op = text.WordpieceTokenizer(vocab=vocab, unknown_token='[UNK]', ... max_bytes_per_token=100, with_offsets=True) >>> >>> text_file_list = ["/path/to/text_file_dataset_file"] >>> text_file_dataset = ds.TextFileDataset(dataset_files=text_file_list) >>> text_file_dataset = text_file_dataset.map(operations=tokenizer_op, input_columns=["text"], ... output_columns=["token", "offsets_start", "offsets_limit"])
- 教程样例: