You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制HuggingFace BERT Tokenizer不拆分指定词汇?

解决BERT Tokenizer强制保留完整词汇的方法

可以直接通过给Tokenizer添加自定义词汇的方式实现,无需后处理令牌数组重新拼接,具体操作如下:

  • 加载预训练的BERT Tokenizer后,使用add_tokens()方法传入你想完整保留的词汇列表
  • 之后对包含这些词汇的文本进行tokenize时,指定词汇会被当作单个完整token,不会被拆分为子词

示例代码:

from transformers import BertTokenizer

# 加载预训练分词器
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")

# 添加需要完整保留的自定义词汇
custom_words = ["abcd"]
tokenizer.add_tokens(custom_words)

# 测试分词效果
test_text = "xxx abcd yyy zzz"
token_list = tokenizer.tokenize(test_text)
print(token_list)  # 输出结果:['xxx', 'abcd', 'yyy', 'zzz']

补充说明:如果后续需要将这些token输入到BERT模型中训练或推理,由于词汇表大小发生了变化,需要调用model.resize_token_embeddings(len(tokenizer))来调整模型的嵌入层维度,避免出现维度不匹配的问题。如果只是单纯做分词操作,这一步可以省略。

内容的提问来源于stack exchange,提问作者kloop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:27:07