主流分词算法

简介: 分词器将文本转为模型可处理的数字序列,主流算法有BPE、WordPiece和SentencePiece。BPE高效但中文支持弱;WordPiece用于BERT,适合英文;SentencePiece语言无关,支持中文。实战中需根据语言选择算法,并合理设置词汇表大小与特殊标记,解决OOV等问题。

🎯 概述
分词器(Tokenizers)是将文本转换为模型可理解的数字序列的关键组件,直接影响模型的性能和效率。
🏗️ 主流分词算法
1️⃣ BPE (Byte Pair Encoding)
原理:通过合并高频字符对来构建词汇表
优点:
● 有效处理未登录词
● 词汇量可控
● 多语言支持好
缺点:
● 可能产生不完整的词
● 对中文支持有限
实现示例:
from tokenizers import Tokenizer
from tokenizers.models import BPE

tokenizer = Tokenizer(BPE(unk_token="[UNK]"))
2️⃣ WordPiece
原理:基于最大似然估计逐步合并词片段
特点:
● Google开发,用于BERT
● 在词前添加##标记子词
● 更适合英文
示例:
"playing" -> ["play", "##ing"]
3️⃣ SentencePiece
原理:将文本视为Unicode序列,不依赖空格分词
优势:
● 语言无关性
● 支持中文、日文等无空格语言
● 可逆转换
配置示例:
import sentencepiece as spm

spm.SentencePieceTrainer.train(
input='input.txt',
model_prefix='tokenizer',
vocab_size=32000,
model_type='bpe'
)
📊 算法对比
特性 BPE WordPiece SentencePiece
分词粒度 子词 子词 子词/字符
语言支持 英文为主 英文为主 多语言
空格处理 依赖空格 依赖空格 不依赖空格
训练速度 快 中等 慢
模型大小 小 中等 大
🎯 实战应用
中文分词最佳实践

使用SentencePiece处理中文

import sentencepiece as spm

训练中文分词器

spm.SentencePieceTrainer.train(
input='chinese_corpus.txt',
model_prefix='chinese_sp',
vocab_size=32000,
character_coverage=0.995, # 覆盖99.5%字符
model_type='bpe'
)

使用分词器

sp = spm.SentencePieceProcessor(model_file='chinese_sp.model')
tokens = sp.encode('大模型面试宝典', out_type=str)
print(tokens) # ['大', '模型', '面试', '宝典']
英文分词示例

使用Hugging Face Tokenizers

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
tokens = tokenizer.tokenize("transformer architecture")
print(tokens) # ['transform', '##er', 'arch', '##itecture']
🔍 技术细节
词汇表构建流程

  1. 预处理:清洗文本,标准化
  2. 训练:基于语料库学习分词规则
  3. 验证:检查分词质量
  4. 优化:调整超参数
    特殊标记处理
    ● [PAD]:填充标记
    ● [UNK]:未知词标记
    ● [CLS]:分类标记
    ● [SEP]:分隔标记
    ● [MASK]:掩码标记(用于MLM)
    📚 深入阅读
    ● 注意力机制详解
    ● 主流大模型结构
    🎯 面试重点
  5. BPE和WordPiece的区别?
  6. 如何处理中文分词?
  7. 词汇表大小如何选择?
  8. OOV(未登录词)问题如何解决?
相关文章
|
6月前
|
机器学习/深度学习 自然语言处理 算法
分词器详解
分词器将文本转为模型可处理的数字序列,主流算法有BPE、WordPiece和SentencePiece。BPE高效但中文支持弱;WordPiece用于BERT,适合英文;SentencePiece语言无关,支持中日文。实战中常用SentencePiece处理中文,Hugging Face工具处理英文。面试需掌握算法差异、中文分词策略、词汇表设计及OOV问题解决。
|
机器学习/深度学习 人工智能 自然语言处理
视觉 注意力机制——通道注意力、空间注意力、自注意力
本文介绍注意力机制的概念和基本原理,并站在计算机视觉CV角度,进一步介绍通道注意力、空间注意力、混合注意力、自注意力等。
15961 58
|
SQL 存储 人工智能
ISO 专家解读 | 什么是 GQL 国际标准图查询语言
4 月 12 日,图查询标准语言 GQL(Graph Query Language)正式发布。与此同时,悦数图数据库 v5.0 宣布原生支持 GQL。GQL 一经问世,便在图行业内外引起广泛关注, ISO 数据库语言项目召集人 Keith W. Hare 发布了一篇对 GQL 的解读文章。让我们跟随专家的视角,来了解一下什么是 GQL,以及 GQL 数据库语言的功能。
|
4月前
|
自然语言处理 算法
大模型应用:大模型的词元化处理详解:BPE、WordPiece、Unigram.11
本文详解大模型中文词元化三大核心算法:BPE(基于频率合并)、WordPiece(基于似然增益合并)和Unigram(自顶向下概率筛选)。通过原理、流程、代码与示例对比,揭示其在中文分词中的适用性与优化要点,强调语料质量、参数配置及中文特性适配的关键作用。(239字)
1111 2
|
6月前
|
人工智能 自然语言处理 机器人
AI也会"三思而后答"?揭秘Self-RAG智能检索术
遇到AI胡说八道怎么办?Self-RAG就像给AI装了个"思考开关",让它知道什么时候该查资料、什么时候该独立思考,还能自我评估答案靠不靠谱。6步智能决策机制,让AI回答又准又稳!#人工智能 #RAG技术 #智能检索 #AI应用
388 11
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:六十七、超参数如何影响大模型?通俗讲解原理、作用与实战示例
超参数是机器学习模型训练前需要人工设定的参数,它们控制着模型的学习过程而非直接通过学习获得。文章通过生动的类比(如自行车调整、烹饪配方)解释了超参数的概念,并详细介绍了其调优流程、常见类型(学习率、批量大小等)及对模型的影响。通过实际代码示例,展示了不同超参数设置如何影响模型训练效果,强调合理调优对提升模型性能、防止过拟合和优化资源使用的重要性。文章指出,超参数调优是模型成功的关键,初学者可从默认值开始逐步实验,借助网格搜索等工具实现高效调参。
685 105
|
4月前
|
人工智能 数据可视化 机器人
2026年OpenClaw(Clawdbot)简单部署及接入钉钉教程:新手必看(无需技术即可上手)
在2026年AI自动化办公全面普及的当下,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言驱动、任务自动化执行、零技术门槛适配”的核心优势,成为新手、个人用户及轻量团队的首选智能AI助手。它无需专业编程基础,就能轻松实现文档处理、联网搜索、代码生成、会议纪要整理、待办同步等多元化办公任务,堪称“7×24小时不下班的AI数字员工”[1][3]。而阿里云针对零基础新手群体,专门优化推出OpenClaw一键部署方案,通过预置专属镜像、自动化配置环境,将原本复杂的依赖安装、端口配置等步骤全部简化,真正实现“点击鼠标、复制少量代码,就能完成部署”的便捷体验[1][3][4]。
2653 3
|
6月前
|
机器学习/深度学习 存储 缓存
注意力机制详解
注意力机制是Transformer核心,通过自注意力、交叉注意力等实现序列间动态关联。多头、分组、多查询等变体在效率与性能间权衡,广泛应用于大模型设计,助力高效长序列建模与推理优化。
|
6月前
|
机器学习/深度学习
位置编码详解
位置编码为Transformer提供序列位置信息,弥补注意力机制无位置感知的缺陷。主要分绝对与相对两类:绝对编码如可学习和Sinusoidal,简单高效但外推性弱;相对编码如RoPE和ALiBi,通过旋转矩阵或线性偏置实现良好外推,支持长序列,广泛应用于LLaMA、BLOOM等大模型。
|
6月前
|
人工智能 自然语言处理 机器人
AI也会说谎?揭秘可靠RAG让智能助手不再胡说八道
你的AI助手老是答非所问、胡编乱造?别急,可靠RAG技术专治各种"AI幻觉症"!通过文档相关性检查、幻觉检测和来源追溯,让你的智能客服从"胡说八道王"变身"靠谱答题员" #人工智能 #RAG #智能客服 #幻觉检测
394 1