torchtext.data.functional¶
generate_sp_model¶
-
torchtext.data.functional.
generate_sp_model
(文件名, vocab_size=20000, model_type='unigram', model_prefix='m_user')[来源]¶ 训练 SentencePiece 分词器。
- 参数
filename – 用于训练 SentencePiece 模型的数据文件。
vocab_size – 词汇表的大小(默认值:20,000)。
model_type – SentencePiece 模型的类型,包括 unigram, bpe, char, 单词。
model_prefix – 保存 model 和 vocab 的文件的前缀。
- 输出:
- 模型和词汇保存在两个单独的文件中,其中
model_prefix。
例子
>>> from torchtext.data.functional import generate_sp_model >>> generate_sp_model('test.csv', vocab_size=23456, model_prefix='spm_user')
load_sp_model¶
sentencepiece_numericalizer¶
-
torchtext.data.functional.
sentencepiece_numericalizer
(sp_model)[来源]¶ - 将文本句子数值化为的 sentencepiece model
一个基于 ID 的生成器。
- 参数
sp_model – 一个 SentencePiece 模型。
- 输出:
- output:一个生成器,其中包含 text sentence 的 input 和
基于 SentencePiece 模型的相应 id。
例子
>>> from torchtext.data.functional import sentencepiece_numericalizer >>> sp_id_generator = sentencepiece_numericalizer(sp_model) >>> list_a = ["sentencepiece encode as pieces", "examples to try!"] >>> list(sp_id_generator(list_a)) [[9858, 9249, 1629, 1305, 1809, 53, 842], [2347, 13, 9, 150, 37]]
sentencepiece_tokenizer¶
-
torchtext.data.functional.
sentencepiece_tokenizer
(sp_model)[来源]¶ - 将文本句子标记成的句子模型
令牌的生成器。
- 参数
sp_model – 一个 SentencePiece 模型。
- 输出:
- output:一个生成器,其中包含 text sentence 的 input 和
基于 SentencePiece 模型的相应标记。
例子
>>> from torchtext.data.functional import sentencepiece_tokenizer >>> sp_tokens_generator = sentencepiece_tokenizer(sp_model) >>> list_a = ["sentencepiece encode as pieces", "examples to try!"] >>> list(sp_tokens_generator(list_a)) [['_sentence', 'piece', '_en', 'co', 'de', '_as', '_pieces'], ['_example', 's', '_to', '_try', '!']]
custom_replace¶
-
torchtext.data.functional.
custom_replace
(replace_pattern)[来源]¶ 用于转换文本字符串的转换。
例子
>>> from torchtext.data.functional import custom_replace >>> custom_replace_transform = custom_replace([(r'S', 's'), (r'\s+', ' ')]) >>> list_a = ["Sentencepiece encode aS pieces", "exampleS to try!"] >>> list(custom_replace_transform(list_a)) ['sentencepiece encode as pieces', 'examples to try!']
simple_space_split¶
-
torchtext.data.functional.
simple_space_split
(迭代器)[来源]¶ 按空格拆分文本字符串的转换。
例子
>>> from torchtext.data.functional import simple_space_split >>> list_a = ["Sentencepiece encode as pieces", "example to try!"] >>> list(simple_space_split(list_a)) [['Sentencepiece', 'encode', 'as', 'pieces'], ['example', 'to', 'try!']]
numericalize_tokens_from_iterator¶
-
torchtext.data.functional.
numericalize_tokens_from_iterator
(词汇、迭代器、removed_tokens=无)[来源]¶ 从带有词汇表的令牌迭代器中生成 id 列表。
- 参数
词汇表 – 词汇表将标记转换为 ID。
iterator – iterator 生成一个 tokens 列表。
removed_tokens – 从输出数据集中删除的标记 (默认值:None)
例子
>>> from torchtext.data.functional import simple_space_split >>> from torchtext.data.functional import numericalize_tokens_from_iterator >>> vocab = {'Sentencepiece' : 0, 'encode' : 1, 'as' : 2, 'pieces' : 3} >>> ids_iter = numericalize_tokens_from_iterator(vocab, >>> simple_space_split(["Sentencepiece as pieces", >>> "as pieces"])) >>> for ids in ids_iter: >>> print([num for num in ids]) >>> [0, 2, 3] >>> [2, 3]
filter_wikipedia_xml¶
-
torchtext.data.functional.
filter_wikipedia_xml
(text_iterator)[来源]¶ 根据 https://github.com/facebookresearch/fastText/blob/master/wikifil.pl 过滤 wikipedia xml 行
- 参数
text_iterator – 生成字符串的迭代器类型对象。示例包括字符串列表、文本 io、生成器等。
例子
>>> from torchtext.data.functional import filter_wikipedia_xml >>> from torchtext.datasets import EnWik9 >>> data_iter = EnWik9(split='train') >>> filter_data_iter = filter_wikipedia_xml(data_iter) >>> file_name = '.data/EnWik9/enwik9' >>> filter_data_iter = filter_wikipedia_xml(open(file_name,'r'))
to_map_style_dataset¶
-
torchtext.data.functional.
to_map_style_dataset
(iter_data)[来源]¶ 将可迭代样式的数据集转换为地图样式的数据集。
- 参数
iter_data – 迭代器类型对象。示例包括 Iterable 数据集、字符串列表、文本 io、生成器等。
例子
>>> from torchtext.datasets import IMDB >>> from torchtext.data import to_map_style_dataset >>> train_iter = IMDB(split='train') >>> train_dataset = to_map_style_dataset(train_iter) >>> file_name = '.data/EnWik9/enwik9' >>> data_iter = to_map_style_dataset(open(file_name,'r'))