分词器文档

预分词器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

预分词器

Python
Rust
Node

BertPreTokenizer

class tokenizers.pre_tokenizers.BertPreTokenizer

( )

BertPreTokenizer

此预分词器在空格和标点符号上分割令牌。每个标点符号都会被单独处理。

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]

组成字母表的字符列表

返回此预分词器使用的字母表。

由于 ByteLevel 按字面意思工作,在字节级别,它将每个字节值编码为一个唯一的可见字符。这意味着组成此字母表的字符共有 256 个。

CharDelimiterSplit

class tokenizers.pre_tokenizers.CharDelimiterSplit

( )

此预分词器只在提供的字符上进行分割。工作方式类似于 .split(delimiter)

Digits

class tokenizers.pre_tokenizers.Digits

( individual_digits = False )

参数

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

此预标记器简单地使用数字将单词拆分为单独的标记

如果设置为 True,则每个数字将被拆分为如下所示

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

如果设置为 False,则数字将如下所示分组

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

Metaspace

class tokenizers.pre_tokenizers.Metaspace

( replacement = '_' add_prefix_space = True )

参数

  • replacement (str, 可选, 默认为 ) — 替换字符。必须恰好为一个字符。默认情况下,我们使用 (U+2581) 元符号 (与 SentencePiece 中相同)。
  • add_prefix_space (bool, 可选, 默认为 True) — 如果第一个词前面没有空格,是否在它前面添加一个空格。这让我们可以将 hello 视为与 say hello 完全相同。

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' )

参数

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

这个预标记器简单地将标点符号拆分成单个字符。

序列

class tokenizers.pre_tokenizers.Sequence

( pretokenizers )

这个预标记器组合其他预标记器,并按顺序应用它们

分割

class tokenizers.pre_tokenizers.Split

( pattern behavior invert = False )

参数

  • 模式 (strRegex) — 用于分割字符串的模式。通常是字符串或使用 tokenizers.Regex 构建的正则表达式
  • 行为 (SplitDelimiterBehavior) — 分割时使用的行为。选择:“removed”、“isolated”、“merged_with_previous”、“merged_with_next”、“contiguous”
  • 反转 (bool, 可选, 默认值为 False) — 是否反转模式。

分割预标记器

这个多功能的预标记器使用提供的模式和行为进行分割。可以通过使用反转标志来反转模式。

Unicode 脚本

class tokenizers.pre_tokenizers.UnicodeScripts

( )

这个预标记器根据属于不同语言族的字符进行分割。它大致遵循 https://github.com/google/sentencepiece/blob/master/data/Scripts.txt 实际上,平假名和片假名与汉字融合在一起,0x30FC 也是汉字。这模仿了 SentencePiece Unigram 的实现。

空白

class tokenizers.pre_tokenizers.Whitespace

( )

这个预标记器简单地使用以下正则表达式进行分割:\w+|[^\w\s]+

空格分割

class tokenizers.pre_tokenizers.WhitespaceSplit

( )

这个预标记器简单地在空格处进行分割。与 .split() 功能类似。