Python实现简单词嵌入:无第三方库底层代码解析
不依赖任何第三方库实现词嵌入(Word Embedding),本质上就是亲手编写词向量的完整训练流程——从文本清洗、词典构建,到生成上下文样本,再到定义前向传播与反向更新。其核心在于透彻理解 Skip‑gram 或 CBOW 的前向计算与梯度回传机制。下面我们用纯 Python(仅使用 math、r
不依赖任何第三方库实现词嵌入(Word Embedding),本质上就是亲手编写词向量的完整训练流程——从文本清洗、词典构建,到生成上下文样本,再到定义前向传播与反向更新。其核心在于透彻理解 Skip‑gram 或 CBOW 的前向计算与梯度回传机制。下面我们用纯 Python(仅使用 math、random、collections)搭建一个可运行的轻量级词嵌入模型,以 Skip‑gram + 负采样(Negative Sampling)为例。虽然无法处理大规模语料,但每个步骤都对应着 NLP 表征学习的核心动机,值得亲手走一遍。

1. 文本预处理与词汇表构建
第一步是将原始句子转换为整数索引序列,同时过滤低频词和停用词(可选,但通常能提升嵌入质量)。具体拆解如下:
- 分词:按空格或简单标点切分,统一转为小写,丢弃空字符串;
- 词频统计:使用
Counter统计所有词的出现次数; - 词汇表构建:仅保留出现次数 ≥
min_count的词,按频次从高到低排序;务必为UNK(未登录词)预留索引 0; - 映射表:建立两个字典——
word2idx(词→索引)和idx2word(索引→词),后续所有查表操作均依赖它们。
2. 生成 Skip‑gram 训练样本
对于每个中心词,提取窗口内(例如左右各2个)的词作为正样本;负样本则依据词频分布按概率采样——这里有一个常用技巧:将一元分布的 3/4 次方作为平滑权重,使低频词也有机会被选中。
- 遍历句子中的每个词(跳过窗口边界处的词),以它为中心,收集左右
window_size内的词作为正样本; - 针对每个正样本,随机采样
n_neg个负样本:预先计算每个词的采样概率(freq^(3/4)后归一化),可采用轮盘赌或别名采样;简易版本直接使用random.choices并设置权重即可; - 每条样本存储为三元组
(center_idx, context_idx, label),正样本label=1,负样本label=0。
3. 初始化与前向传播(Sigmoid + 点积)
需要维护两组向量:输入矩阵 W(尺寸 vocabulary_size × embedding_dim)和输出矩阵 W'(相同大小)。Skip‑gram 的做法是:从 W 中查询中心词得到向量 v_c,从 W' 中查询上下文词得到向量 v_w,计算两者点积 v_c ⋅ v_w,再通过 Sigmoid 得到概率值。
- 初始化:
W和W'均赋值为小随机数,例如uniform(-0.5/dim, 0.5/dim),以避免对称性导致向量趋同; - Sigmoid 手写实现:
def sigmoid(x): return 1 / (1 + math.exp(-max(-50, min(50, x))))——通过截断防止数值溢出; - 前向计算:
score = sum(v_c[i] * v_w[i] for i in range(dim)),然后prob = sigmoid(score)。
4. 手动反向传播与参数更新
损失函数选用二元交叉熵:L = −[y·log(p) + (1−y)·log(1−p)]。正样本时 y=1,梯度为 (p−1);负样本时 y=0,梯度为 p。依据该误差信号更新两组向量:
- 令
g = prob - label(即误差信号); - 更新中心词向量:
W[center_idx][i] -= lr * g * W_prime[context_idx][i]; - 更新上下文词向量:
W_prime[context_idx][i] -= lr * g * W[center_idx][i]; - 学习率
lr建议初始值设为 0.025,并随训练步数线性衰减。
整个过程不依赖 NumPy 或 PyTorch,全部使用原生 Python 列表与循环手动实现。虽然效率较低——仅适合小语料或教学演示——但优点在于清晰展现了词向量如何通过局部共现被“拉近”,以及负采样如何绕过 softmax 的计算瓶颈。归根结底,核心不在于代码的简洁性,而在于每一步都映射了“分布假设”的数学本质。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:Python实现简单词嵌入:无第三方库底层代码解析要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点面壁智能聚焦端侧AI,不拼参数大小,而是通过知识密度提升与模型风洞技术,将大模型压缩至手机、汽车等设备。其MiniCPM以2B参数超越同期8B对手。CTO曾国洋22岁主导训练中国首个大语言模型CPM-1。端侧AI追求“默契系统”,在用户开口前预判需求,已在吉利、上汽大众等车型落地应用。
印度IT巨头HCLTech投资最高350亿卢比建设AI数据中心,容量可扩展至50MW,提供从设计到运营的端到端服务,旨在满足政府及企业日益增长的算力需求,抢占印度快速增长的数据中心市场,并推动AI基础设施布局。
小米具身机器人在汽车工厂自攻螺母上件工站实现双侧作业成功率98%,接近人工水平。同时在新工站分别达到90%成功率,从单一操作拓展至多工站协同,验证了具身智能在复杂工业环境的落地能力。
全球AI行业正迎来新的财富格局,DeepSeek创始人梁文锋凭借其公司的迅猛发展,个人财富急剧膨胀,一举超越多位硅谷知名人物,成为全球AI公司领域的新首富。以下将详细解析其身价飙升背后的关键因素及公司发展历程。 一、身价飙升至360亿美元,超越多位AI大佬 根据最新彭博亿万富豪指数,DeepSeek
- 日榜
- 周榜
- 月榜
热点快看
