分词器文档

预分词器

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) — 是否在第一个单词前添加空格(如果还没有的话)。这使我们可以将 hellosay hello 完全一样地处理。
  • use_regex (bool, 可选, 默认为 True) — 将此项设为 False 以阻止此 pre_tokenizer 使用 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 = '_' prepend_scheme = 'always' split = True )

参数

  • replacement (str, 可选, 默认为 ) — 替换字符。必须是单个字符。默认情况下,我们使用 (U+2581) 元符号(与 SentencePiece 中的相同)。
  • prepend_scheme (str, 可选, 默认为 "always") — 是否在第一个单词前添加空格(如果还没有的话)。这使我们可以将 hellosay hello 完全一样地处理。选项有:“always”、“never”、“first”。“First” 意味着只在第一个词符前添加空格(当使用特殊词符或其他预分词器时,这一点很重要)。

Metaspace 预分词器

此预分词器将任何空白字符替换为提供的替换字符。然后,它会尝试按这些空格进行切分。

PreTokenizer

class tokenizers.pre_tokenizers.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 )

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

Split

class tokenizers.pre_tokenizers.Split

( pattern behavior invert = False )

参数

  • pattern (str or 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 预分词器

这个多功能的预分词器使用提供的模式并根据提供的行为进行切分。可以通过使用 invert 标志来反转模式。

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 上更新