分词器文档

后处理器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验

开始使用

后处理器

Python
Rust
Node

BertProcessing

tokenizers.processors.BertProcessing

( sep cls )

参数

  • sep (Tuple[str, int]) — SEP 标记的字符串表示形式及其 ID 组成的元组
  • cls (Tuple[str, int]) — CLS 标记的字符串表示形式及其 ID 组成的元组

此后处理器负责添加 Bert 模型所需的特殊标记

  • 一个 SEP 标记
  • 一个 CLS 标记

ByteLevel

tokenizers.processors.ByteLevel

( trim_offsets = True )

参数

  • trim_offsets (bool) — 是否从生成的偏移量中修剪空格。

此后处理器负责修剪偏移量。

默认情况下,ByteLevel BPE 可能会在生成的标记中包含空格。如果您不希望偏移量包含这些空格,则必须使用此后处理器。

RobertaProcessing

tokenizers.processors.RobertaProcessing

( sep cls trim_offsets = True add_prefix_space = True )

参数

  • sep (Tuple[str, int]) — SEP标记的字符串表示及其ID组成的元组
  • cls (Tuple[str, int]) — CLS标记的字符串表示及其ID组成的元组
  • trim_offsets (bool, 可选, 默认为 True) — 是否从生成的偏移量中修剪空格。
  • add_prefix_space (bool, 可选, 默认为 True) — 在预标记期间是否启用了add_prefix_space选项。这很重要,因为它定义了偏移量修剪的方式。

此后处理程序负责添加Roberta模型所需的特殊标记。

  • 一个 SEP 标记
  • 一个 CLS 标记

它还负责修剪偏移量。默认情况下,字节级BPE可能会在生成的标记中包含空格。如果您不希望偏移量包含这些空格,则应使用trim_offsets=True初始化此后处理程序。

TemplateProcessing

tokenizers.processors.TemplateProcessing

( single pair special_tokens )

参数

  • single (Template) — 用于单个序列的模板
  • pair (Template) — 当指定两个序列时使用的模板
  • special_tokens (Tokens) — 每个序列中使用的特殊标记列表

提供了一种指定模板的方法,以便根据需要将特殊标记添加到每个输入序列中。

BERT标记器为例。它使用两个特殊标记来分隔每个序列。[CLS]始终用于第一个序列的开头,[SEP]添加到第一个序列和配对序列的末尾。最终结果如下所示

  • 单个序列:[CLS] Hello there [SEP]
  • 配对序列:[CLS] My name is Anthony [SEP] What is my name? [SEP]

类型ID如下所示

[CLS]   ...   [SEP]   ...   [SEP]
0      0      0      1      1

您可以使用TemplateProcessing实现此行为。

TemplateProcessing(
    single="[CLS] $0 [SEP]",
    pair="[CLS] $A [SEP] $B:1 [SEP]:1",
    special_tokens=[("[CLS]", 1), ("[SEP]", 0)],
)

在此示例中,每个输入序列都使用$构造来标识。此标识符允许我们指定每个输入序列以及要使用的type_id。当未指定任何内容时,它使用默认值。以下是如何指定它的不同方法

  • 指定序列,默认type_id == 0$A$B
  • 指定type_id,默认sequence == A$0$1$2等。
  • 同时指定两者:$A:0$B:1等。

特殊标记使用相同的构造:<identifier>(:<type_id>)?

警告:您必须确保提供正确的标记/ID,因为这些标记/ID将添加到编码中,无需进一步检查。如果给定的ID与使用此后处理器的标记器中完全不同的内容相对应,则可能导致意外结果。

类型

Template (strList)

  • 如果提供str,则空格用作标记之间的分隔符。
  • 如果提供List[str],则为标记列表。

Tokens (List[Union[Tuple[int, str], Tuple[str, int], dict]])

  • 一个Tuple包含标记及其关联的ID,顺序任意。

  • 一个包含以下键的dict

    • “id”: str => 特殊标记ID,如模板中指定。
    • “ids”: List[int] => 关联的ID。
    • “tokens”: List[str] => 关联的标记。

    给定的dict期望提供的idstokens列表具有相同的长度。