BertTokenizer.from_pretrained的讲解和使用
目录
1、功能
2.参数解析
3.使用示例
1.加载基础BERT分词器
2.编码文本(添加特殊标记)
3.处理本地模型文件
注意事项
Hugging Face的BertTokenizer.from_pretrained
方法是加载预训练BERT分词器的核心接口,支持多种配置和灵活使用。
1、功能
作用:从预训练模型或本地加载BERT分词器,支持自动下载、缓存以及配置
分词器类型:基于WordPiece算法,处理子词拆分(如将“huggingface”拆为[“hugging”,“face”])
2.参数解析
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
pretrained_model_name_or_path | str 或 os.PathLike | 必填 | 预训练模型名称(如bert-base-uncased )或本地路径 |
cache_dir | str | None | 指定缓存目录(避免使用默认~/.cache/huggingface ) |
force_download | bool | False | 强制重新下载模型,即使已缓存 |
local_files_only | bool | False | 仅使用本地文件,避免网络请求 |
3.使用示例
1.加载基础BERT分词器
from transformers import BertTokenizer
# 加载不区分大小写的BERT分词器
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
# 分词示例
text = "Hello, how are you?"
tokens = tokenizer.tokenize(text) # ["hello", ",", "how", "are", "you", "?"]
2.编码文本(添加特殊标记)
# 转换为ID列表(自动添加[CLS]和[SEP])
encoded_input = tokenizer.encode(text) # 例如 [101, 7592, 2986, ..., 102]
# 获取详细输出(attention_mask, token_type_ids)
encoded_dict = tokenizer.encode_plus(
text,
max_length=512, # 控制最大长度
truncation=True, # 自动截断超长文本
padding="max_length", # 填充至max_length
return_tensors="pt" # 返回PyTorch张量
)
3.处理本地模型文件
# 保存分词器到本地
tokenizer.save_pretrained("./my_tokenizer/")
# 从本地加载
local_tokenizer = BertTokenizer.from_pretrained("./my_tokenizer/")
注意事项
- 大小写敏感模型:如
bert-base-cased
会保留文本大小写,而uncased
会统一转为小写。 - 超长文本处理:BERT最大支持512个token,需通过
max_length
和truncation
参数控制。 - 特殊Token:自动添加[CLS]、[SEP]等标记,可通过
add_special_tokens=False
关闭。