Tokenizers 文档

预分词器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

预分词器

Python
Rust
Node

BertPreTokenizer

class tokenizers.pre_tokenizers.BertPreTokenizer

( )

BertPreTokenizer

此预分词器在空格和标点符号上分割 token。每个标点符号的出现都将单独处理。

ByteLevel

class tokenizers.pre_tokenizers.ByteLevel

( add_prefix_space = True use_regex = True )

参数

  • **add_prefix_space** (`bool`, *可选*, 默认为 `True`) — 是否在第一个单词前添加空格(如果尚没有)。这使我们可以像对待 *say hello* 一样对待 *hello*。
  • **use_regex** (`bool`, *可选*, 默认为 `True`) — 设置为 `False` 以阻止此*预分词器*使用 GPT2 特定的正则表达式来分割空格。

ByteLevel 预分词器

此预分词器负责将给定字符串的所有字节替换为相应的表示形式,以及分割成单词。

alphabet

( ) List[str]

返回

List[str]

构成字母表的字符列表

返回此 PreTokenizer 使用的字母表。

由于 ByteLevel 正如其名称所示,在字节级别工作,它将每个字节值编码为一个唯一的可见字符。这意味着总共有 256 个不同的字符组成这个字母表。

CharDelimiterSplit

class tokenizers.pre_tokenizers.CharDelimiterSplit

( )

此预分词器仅按提供的字符分割。工作方式类似于 .split(delimiter)

Digits

class tokenizers.pre_tokenizers.Digits

( individual_digits = False )

参数

  • **individual_digits** (`bool`, *可选*, 默认为 `False`) —

此预分词器仅使用数字分割成单独的 token

如果设置为 True,数字将分别按如下方式分隔

"Call 123 please" -> "Call ", "1", "2", "3", " please"

如果设置为 False,数字将按如下方式分组

"Call 123 please" -> "Call ", "123", " please"

Metaspace

class tokenizers.pre_tokenizers.Metaspace

( replacement = '_' prepend_scheme = 'always' split = True )

参数

  • **replacement** (`str`, *可选*, 默认为 `_`) — 替换字符。必须正好是一个字符。默认情况下,我们使用 (U+2581) 元符号(与 SentencePiece 中相同)。
  • **prepend_scheme** (`str`, *可选*, 默认为 `"always"`) — 是否在第一个单词前添加空格(如果尚没有)。这使我们可以像对待 *say hello* 一样对待 *hello*。选项:“always”、“never”、“first”。“first”表示仅在第一个 token 上添加空格(当使用特殊 token 或其他 pre_tokenizer 时相关)。

Metaspace 预分词器

此预分词器将所有空格替换为提供的替换字符。然后尝试在这些空格上分割。

PreTokenizer

class tokenizers.pre_tokenizers.PreTokenizer

( )

所有预分词器的基类

此类不应直接实例化。相反,任何 PreTokenizer 的实现都会在实例化时返回此类的实例。

pre_tokenize

( pretok )

参数

  • **pretok** (`~tokenizers.PreTokenizedString`) -- 要应用此 :class:`~tokenizers.pre_tokenizers.PreTokenizer` 的预分词字符串

就地预分词一个 ~tokenizers.PyPreTokenizedString

此方法允许修改 PreTokenizedString 以跟踪预分词,并利用 PreTokenizedString 的功能。如果您只想查看原始字符串的预分词结果,可以使用 pre_tokenize_str()

pre_tokenize_str

( sequence ) List[Tuple[str, Offsets]]

参数

  • **sequence** (`str`) — 要预分词的字符串

返回

List[Tuple[str, Offsets]]

包含预分词部分及其偏移量的元组列表

预分词给定的字符串

此方法提供了一种可视化 PreTokenizer 效果的方式,但它不跟踪对齐,也不提供 PreTokenizedString 的所有功能。如果您需要其中一些功能,可以使用 pre_tokenize()

Punctuation

class tokenizers.pre_tokenizers.Punctuation

( behavior = 'isolated' )

参数

  • **behavior** (`SplitDelimiterBehavior`) — 分割时使用的行为。选项:“removed”、“isolated”(默认)、“merged_with_previous”、“merged_with_next”、“contiguous”

此预分词器仅将标点符号分割为单独的字符。

Sequence

class tokenizers.pre_tokenizers.Sequence

( pretokenizers )

此预分词器组合其他 pre_tokenizer 并按顺序应用它们

Split

class tokenizers.pre_tokenizers.Split

( pattern behavior invert = False )

参数

  • **pattern** (`str` 或 `Regex`) — 用于分割字符串的模式。通常是字符串或使用 tokenizers.Regex 构建的正则表达式。如果要使用正则表达式模式,则必须将其包装在 tokenizer.Regex 中,否则我们将其视为字符串模式。例如,`pattern=”|”` 表示您想在 `|` 上分割(例如,想象一个 csv 文件),而 `patter=tokenizer.Regex(“1|2”)` 表示您在 ‘1’ 或 ‘2’ 上分割。
  • **behavior** (`SplitDelimiterBehavior`) — 分割时使用的行为。选项:“removed”、“isolated”、“merged_with_previous”、“merged_with_next”、“contiguous”
  • **invert** (`bool`, *可选*, 默认为 `False`) — 是否反转模式。

Split 预分词器

这种通用的预分词器使用提供的模式并根据提供的行为进行拆分。可以通过使用反转标志来反转模式。

UnicodeScripts

class tokenizers.pre_tokenizers.UnicodeScripts

( )

此预分词器根据字符所属的不同语系进行拆分。它大致遵循 https://github.com/google/sentencepiece/blob/master/data/Scripts.txt 实际上,平假名和片假名与汉字融合,0x30FC 也被视为汉字。这模仿了 SentencePiece Unigram 的实现。

Whitespace

class tokenizers.pre_tokenizers.Whitespace

( )

此预分词器仅使用以下正则表达式进行拆分:\w+|[^\w\s]+

WhitespaceSplit

class tokenizers.pre_tokenizers.WhitespaceSplit

( )

此预分词器仅按空白字符拆分。 类似于 .split()

< > 在 GitHub 上更新