one-hot编码是简单直接的“贴标签”式表示,每个词对应一个与词汇表等长的稀疏向量,仅有一个位置为1、其余全0,无法表达语义关系;word embedding则是通过训练学习得到的稠密低维向量,能刻画词语间语义相似性与类比关系。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Word Embedding 和 One-Hot 编码都是把词语变成数字向量的方法,但思路完全不同:One-Hot 是“贴标签”,Embedding 是“学含义”。前者只管“是不是这个词”,后者努力表达“这个词像什么、和谁接近”。
One-Hot 编码:简单直接,但很“笨”
每个词对应一个超长向量,长度等于整个词汇表大小。比如词汇表有 5 万个词,“猫”的向量就是长度为 50000 的数组,其中只有第 1247 位是 1,其余全是 0。
- 向量极度稀疏——99.99% 都是 0,浪费存储和计算资源
- 所有词两两之间的距离完全一样(余弦相似度恒为 0),无法区分“猫”和“狗”更近,还是“猫”和“奔跑”更近
- 没有泛化能力:模型看到“猫”和“狗”的编码毫无关联,学不会“动物”这类抽象概念
- 适合极小词汇集或作为输入层的初始表示,不适合单独用于语义建模
Word Embedding:紧凑智能,能“懂意思”
每个词被映射成一个短得多的稠密向量,常见维度是 100、256 或 300。这些数值不是人工设定,而是在大量文本训练中自动学习出来的。
- 向量是稠密的——每个位置都有实际浮点数值,信息密度高
- 语义相似的词在空间中靠得近:“国王” - “男人” + “女人” ≈ “女王”
- 支持数学运算和类比推理,能捕捉上下位、同义、反义等关系
- 天然降维:把 5 万维的 One-Hot 压缩到几百维,同时保留语义结构
关键差异对比表
| 特性 | One-Hot 编码 | Word Embedding |
|---|---|---|
| 向量长度 | 等于词汇表大小(如 50000) | 固定小维度(如 200) |
| 是否稀疏 | 是(几乎全零) | 否(每个值都参与表达) |
| 能否表达语义关系 | 不能 | 能(通过向量距离/方向) |
| 是否需要训练 | 不需要(规则生成) | 需要(从语料中学习) |
| 内存占用 | 高(尤其大词表) | 低(稠密+维度可控) |
什么时候用哪个?
实际项目中往往组合使用:
- 预处理阶段可用 One-Hot 快速构建词表索引,作为 Embedding 层的输入 ID
- 模型主干一定用 Embedding 层(如 PyTorch 的 nn.Embedding 或 TensorFlow 的 tf.keras.layers.Embedding)
- 小样本或可解释性要求极高时,One-Hot 搭配浅层模型(如逻辑回归)仍有价值
- Embedding 可复用:GloVe、Word2Vec、FastText 等预训练向量能直接迁移到新任务











