郭震 AI公众号:郭震AI

12 从零学NLP系列教程:词向量之Word2Vec

发布日期:

最近更新:

分类: NLP小白

预计阅读: 4 分钟

阅读次数: 0

预计阅读4 分钟
结构重点6 个
图文要点6 张
正文规模1.6k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 6 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

Word2Vec流程图查看大图
Word2Vec流程图

Word2Vec 把词放到连续向量空间里,让相似上下文的词更接近。它强调分布式语义,而不是人工写规则。

Word2Vec实操核对图查看大图
Word2Vec实操核对图

我会用相似词和类比样例检查向量质量。只看训练 loss,不足以说明向量有用。

在上一篇中,我们讨论了词向量的另一种表示方法——TF-IDF。这种方法侧重于词在文档中的重要性。然而,TF-IDF并未考虑词与词之间的语义关系,限制了其在许多自然语言处理任务中的应用。因此,今天我们将深入了解一种更为先进的词向量生成技术——Word2Vec。

什么是Word2Vec

Word2Vec是一种高效的算法,用于生成词向量(word embeddings),由Google的研究团队在2013年推出。与TF-IDF不同,Word2Vec通过“上下文”来捕捉词语的语义关系。这意味着模型会考虑一个词在句子中出现时周围的所有词,从而生成一个能够代表该词的稠密向量。

Word2Vec判断卡查看大图
Word2Vec判断卡

学习 Word2Vec 时,先看上下文窗口、Skip-gram、CBOW、负采样和向量相似度。

Word2Vec的基本原理

Word2Vec主要有两种模型:

  1. 连续词袋模型(CBOW):该模型的输入是一组上下文词,目标是预测中心词。也就是说,给定上下文词,CBOW希望找出这个上下文下最有可能的中心词。

例如,给定上下文“the cat on the”,CBOW希望预测中心词“mat”。

  • 跳字模型(Skip-gram):与CBOW相反,Skip-gram的输入是中心词,而输出是一组上下文词。它的目标是在给定一个词的情况下,预测周围的词。

    例如,给定中心词“cat”,Skip-gram希望预测上下文词“the”、“on”和“mat”。

  • 总结来说,Word2Vec模型通过这一系列的输入输出关系,训练出一个能够把每个词转换为一组数字的模型,这就是词向量。

    Word2Vec的实现

    接下来,我们将使用Python中的gensim库来实现Word2Vec。首先,需要安装gensim库:

    自然语言处理阅读地图卡查看大图
    自然语言处理阅读地图卡

    读《从零学NLP系列教程:词向量之Word2Vec》时,先确定要解决的场景,再把关键概念和练习动作串起来。这样读到细节时,不容易只记住零散名词。

    pip install gensim
    

    处理文本数据

    在使用Word2Vec之前,我们需要先准备我们的文本数据。下面是一个简单的例子,我们将使用一些句子来训练模型:

    import gensim
    from gensim.models import Word2Vec
    
    # 示例句子数据
    sentences = [
        ['the', 'cat', 'sat', 'on', 'the', 'mat'],
        ['dogs', 'are', 'better', 'than', 'cats'],
        ['the', 'dog', 'is', 'man\'s', 'best', 'friend'],
        ['cats', 'are', 'great', 'companions'],
    ]
    
    # 训练Word2Vec模型
    model = Word2Vec(sentences, vector_size=10, window=2, min_count=1, workers=4)
    
    # 获取词向量
    vector = model.wv['cat']
    print(f"词'cat'的词向量:{vector}")
    

    在这个例子中,我们定义了一个简单的句子集合,然后使用这组句子来训练一个Word2Vec模型。这里的一些参数说明:

    • vector_size:指定生成的词向量的维度。
    • window:上下文窗口的大小,表示考虑的上下文词数量。
    • min_count:要考虑的最小词频;频率低于这个值的词将被忽略。
    • workers:使用的线程数,可以提高训练速度。

    词向量的应用

    Word2Vec模型训练完成后,我们可以用它生成词向量,并计算词与词之间的相似度。以下是一些常用的操作:

    • 获取词向量
    vector = model.wv['dog']
    print(f"词'dog'的词向量:{vector}")
    
    • 相似词查询
    similar_words = model.wv.most_similar('cat', topn=3)
    print(f"与'cat'最相似的词:{similar_words}")
    
    • 词向量的数学运算

    由于词向量是稠密向量,故可以进行一些有趣的线性代数运算,比如:

    • 通过“国王 - 男人 + 女人 = 女王”来展示性别关系。
    result = model.wv.most_similar(positive=['woman', 'king'], negative=['man'], topn=1)
    print(f"结果:{result}")
    
    从零学NLP系列教程:词向量之Word2Vec应用复盘卡查看大图
    从零学NLP系列教程:词向量之Word2Vec应用复盘卡

    读到这里,可以把《从零学NLP系列教程:词向量之Word2Vec》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

    从零学NLP系列教程:词向量之Word2Vec应用检查卡查看大图
    从零学NLP系列教程:词向量之Word2Vec应用检查卡

    读完《从零学NLP系列教程:词向量之Word2Vec》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

    小结

    通过今天的学习,我们了解到Word2Vec是如何生成词向量的,并通过gensim库实践了相关操作。与TF-IDF相比,Word2Vec提供了一种更能反映词语间的语义关系的方式,使得在后续的自然语言处理任务中能够更好地利用这些词向量。

    在下一篇中,我们将讨论另一种流行的词向量生成方法——GloVe。GloVe通过全局词共现矩阵构建词向量,进一步提升了词向量的质量,希望大家继续关注!

    继续阅读

    从这篇继续找到相关教程

    AI 教程总索引

    常见问题

    读前先确认这三点

    从零学NLP系列教程:词向量之Word2Vec适合谁读?

    这是 自然语言处理入门 系列第 12 / 30 篇,适合正在学习自然语言处理入门,并且需要把概念落到操作步骤或判断标准里的读者。

    读这篇自然语言处理入门教程要多久?

    按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

    这篇文章里的图文节点怎么用?

    正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

    分享文章

    转发到常用平台

    微信/朋友圈可先复制链接

    相关教程

    AI 教程总索引

    继续阅读

    继续找到相关 AI 教程

    返回栏目

    Reader Messages

    读者留言

    有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

    最多 800 字

    为了防刷,每条留言会做长度、链接数量和提交频率限制。

    0/800

    留言列表

    0
    正在加载留言...