torchtext.transforms¶
转换是常见的文本转换。它们可以使用 或 using 链接在一起以支持 torch 脚本化。
SentencePieceTokenizer¶
-
类 (sp_model_path: str)[来源]
torchtext.transforms.
SentencePieceTokenizer
¶ 从预先训练的句子词模型转换 Sentence Piece 分词器
Additiona 详细信息: https://github.com/google/sentencepiece
- 参数
sp_model_path (str) – 预训练句子模型的路径
- 例
>>> from torchtext.transforms import SentencePieceTokenizer >>> transform = SentencePieceTokenizer("spm_model") >>> transform(["hello world", "attention is all you need!"])
- 教程使用:
SentencePieceTokenizer
GPT2BPETokenizer¶
CLIPTokenizer¶
-
class (merges_path: str, encoder_json_path: Optional[str] = None, num_merges: 可选[int] = 无,return_tokens:bool = False)[来源]
torchtext.transforms.
CLIPTokenizer
¶ CLIP Tokenizer 的 Transform。基于字节级 BPE。
在 TorchScript 中重新实现 CLIP Tokenizer。原始实现: https://github.com/mlfoundations/open_clip/blob/main/src/clip/tokenizer.py
此分词器已经过训练,可将空格视为令牌的一部分 (有点像 sentencepiece)所以一个单词的编码会有所不同,无论是 是否位于句子的开头(不带空格)。
以下代码片段显示了如何将 CLIP 分词器与编码器和合并文件一起使用 摘自原始论文实现。
- 例
>>> from torchtext.transforms import CLIPTokenizer >>> MERGES_FILE = "http://download.pytorch.org/models/text/clip_merges.bpe" >>> ENCODER_FILE = "http://download.pytorch.org/models/text/clip_encoder.json" >>> tokenizer = CLIPTokenizer(merges_path=MERGES_FILE, encoder_json_path=ENCODER_FILE) >>> tokenizer("the quick brown fox jumped over the lazy dog")
- 参数
BERTTokenizer¶
-
类 (vocab_path: str, do_lower_case: bool = True, strip_accents: 可选 [bool] = 无,return_tokens=False)[来源]
torchtext.transforms.
BERTTokenizer
¶ BERT Tokenizer 的转换。
基于论文中引入的 WordPiece 算法:https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/37842.pdf
后端内核实现是从 https://github.com/LieluoboAi/radish 获取和修改的。
有关更多详细信息,请参阅 PR https://github.com/pytorch/text/pull/1707 摘要。
下面的代码片段显示了如何使用预训练的词汇表文件的 BERT 分词器。
- 例
>>> from torchtext.transforms import BERTTokenizer >>> VOCAB_FILE = "https://huggingface.co/bert-base-uncased/resolve/main/vocab.txt" >>> tokenizer = BERTTokenizer(vocab_path=VOCAB_FILE, do_lower_case=True, return_tokens=True) >>> tokenizer("Hello World, How are you!") # single sentence input >>> tokenizer(["Hello World","How are you!"]) # batch input
- 参数
词汇转换¶
-
类(词汇:torchtext.vocab.vocab.Vocab)[来源]
torchtext.transforms.
VocabTransform
¶ 词汇转换,用于将输入批次的词元转换为相应的词元 ID
例
>>> import torch >>> from torchtext.vocab import vocab >>> from torchtext.transforms import VocabTransform >>> from collections import OrderedDict >>> vocab_obj = vocab(OrderedDict([('a', 1), ('b', 1), ('c', 1)])) >>> vocab_transform = VocabTransform(vocab_obj) >>> output = vocab_transform([['a','b'],['a','b','c']]) >>> jit_vocab_transform = torch.jit.script(vocab_transform)
- 教程使用:
VocabTransform
- 教程使用:
ToTensor¶
-
class (padding_value: 可选[int] = 无, dtype: torch.dtype = torch.int64)[来源]
torchtext.transforms.
ToTensor
¶ 将输入转换为 torch 张量
- 参数
padding_value (Optional[int]) – 填充值,使批次中的每个输入的长度等于批次中最长的序列。
标签到索引¶
截断¶
添加令牌¶
顺序¶
PadTransform 面板变换¶
-
类(max_length:int,pad_value:int)[来源]
torchtext.transforms.
PadTransform
¶ 使用给定的 padding 值将 tensor 填充到固定长度。
-
forward
(x:Torch。Tensor) → torch 的 Tensor 中。张量[来源]¶ - 参数
x (Tensor) - 要填充的张量
- 返回
使用 pad_value 填充的 Tensor 最多为 max_length
- 返回类型
张肌
-