Transformer 通关秘籍11:Word2Vec 及工具的使用

news2025/7/21 5:40:24

将文字文本转换为词向量(word embedding)的过程中,一个非常著名的算法模型应该就是 Word2Vec 了。

相信大家或多或少都听说过,本节就来简单介绍一下 Word2Vec 。

什么是 Word2Vec ?

Word2Vec 可以非常有效的创建词嵌入向量,你可以把它理解为是一个算法模型,也可以理解为是一个工具包。

它 2013 年由 Google 推出,自问世以来,一直被广泛的应用在自然语言处理的词嵌入向量的表达过程中,它可以完成文本到词向量的映射,同时保留文本在向量空间的语义关系。

关于文本在向量空间的语义关系,可以参考10、词向量运算:queen=king-man+wowem的内容。

所以我们可以说, Word2Vec 是一个算法模型,人们利用这个模型对大量的文本数据进行训练,从而使模型可以输出训练好的词向量。

在使用 Word2Vec 模型训练时,其内部支持使用两种不同的训练算法进行训练:

    1. 连续词袋算法(Continuous Bag of Words, CBOW):该算法通过给定文本上下文单词,来预测中心词。
    1. 跳元算法(Skip-gram): 该算法通过给定文本中心词,来预测文本上下文词。

什么是上下文词和中心词呢?

假设有如下的句子:We are about to study the idea of deep learning.

如果已知 We are about to 和 the idea of deep learning,去预测 study,那么就相当于通过上下文去预测中心词,此时实用的也就是 CBOW 算法。

反过来,如果给定了单词 study,去预测句子中的其他上下文词(比如 idea),则是使用了 Skip-gram 算法。

这两种算法是 Word2Vec 中支持的两种算法,这里暂时不多介绍两种算法的细节。大家只需要知道,无论是连续词袋算法还是跳元算法,都是用来更好的预测文本中的词,以此来达到对大量单词进行语义学习的目的,从而产生更加有效的词向量。

Word2Vec 工具

Google 将 Word2Vec 进行了开源,并且提供了一套简洁可用的工具包。我们可以非常方便的使用这些工具来进行词向量相关的测试。

开源的源代码仓库 github 链接为:https://github.com/dav/ Word2Vec 。

该仓库为 C++ 源码仓库,使用前需要确保具备 C++ 源码的编译和运行环境。

如何编译?

代码下载之后,在 src 目录下,执行 ‘make’ 命令便可完成代码仓库的编译,编译生成的可执行文件会放在 bin 目录下。

在bin目录下,可以执行对应的可执行程序来测试词向量。

比如可以使用 distance程序来计算单词的相似程度。

例如,你可以执行下面的命令后,进入工具交互界面。

./distance ~/GoogleNews-vectors-negative300.bin

上述命令中的 GoogleNews-vectors-negative300.bin 是需要提前下载到本地中,是一个已经训练好的词嵌入模型(包含了词嵌入向量)文件,该文件的下载方式在10、词向量运算:queen=king-man+wowem有介绍。

需要先将其下载到本地电脑中,再进行使用。

执行完上述命令后,在交互界面输入“compute"单词。

distance 工具会输出该单词在词汇表中所处的位置,下图显示 compute 单词位于词汇表中的第 33688 的位置。
在这里插入图片描述

同时,distance 工具会给出与 compute 单词最接近的其他单词(使用余弦距离表示),比如 computation,calculate等。
在这里插入图片描述

你可以使用该工具测试其他单词。

该源码仓库完成编译后,还包含了很多其他的工具,详细的使用可以参考官方指南:https://code.google.com/archive/p/ Word2Vec /。

本节仅需要知道 Word2Vec 是Google开发的一个用来将文本转换为词向量的算法模型(工具)即可,并且该模型内置支持了两种不同的算法完成文本到词向量的转换,分别是 CBOW 和 Skip-gram 算法。

CBOW 和 Skip-gram 两种算法的细节非本专栏重点,这里就不深入介绍了,感兴趣的同学可以去百度一下。

总结一下

至此,我们把自然语言处理模型需要的预处理预备知识基本介绍完了。

这些知识包括: token 的概念,词汇表, token 转换到词向量的必要性以及一些代码演示。相信看到这里你应该对这些基础概念有了一定的了解。

事实上,以上的预备知识和操作,仅仅完成了一件事,那就是将人类可以理解的文本,转换到了高维空间的词向量。

只有将文本转换为词向量后,才可以输入给自然语言模型进行处理。

另外,对于基于 transformer 架构的模型而言,单有词向量是不够的,还需要使用位置编码来对文本信息进一步处理。这一点可以查看本节最上面的配图以了解这个过程。

只有将词向量和位置编码结合起来,才能作为真正的输入给到 transformer 架构(大模型)。

这一部分内容,为了逻辑连贯,并且更好理解,在后面介绍 transformer 技术细节时,再进行位置编码的相关介绍,主要会包括:transformer 的输入为什么需要位置编码,以及相关的算法和原理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2392867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DAY34】GPU训练及类的call方法

内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点: CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前…

Flutte ListView 列表组件

目录 1、垂直列表 1.1 实现用户中心的垂直列表 2、垂直图文列表 2.1 动态配置列表 2.2 for循环生成一个动态列表 2.3 ListView.builder配置列表 列表布局是我们项目开发中最常用的一种布局方式。Flutter中我们可以通过ListView来定义列表项,支持垂直和水平方向展示…

muduo库的初步认识和基本使用,创建一个简单查询单词服务系统

小编在学习完muduo库之后,觉得对于初学者,muduo库还是有点不好理解,所以在此,小编来告诉大家muduo库的初步认识和基本使用,让初学者也可以更快的上手和使用muduo库。 Muduo由陈硕大佬开发,是⼀个基于 非阻塞…

【HTML/CSS面经】

HTML/CSS面经 HTML1. script标签中的async和defer的区别2. H5新特性(1 标签语义化(2 表单功能增强(3 音频和视频标签(4 canvas和svg绘画(5 地理位置获取(6 元素拖动API(7 Web Worker&#xff08…

git查看commit属于那个tag

1. 快速确认commit原始分支及合入tag # git describe 213b4b3bbef2771f7a1b8166f6e6989442ca67c8 查看commit合入tag # git describe 213b4b3bbef2771f7a1b8166f6e6989442ca67c8 --all 查看commit原始分支 2.查看分支与master关系 # git show --all 0.5.67_0006 --stat 以缩…

mysql-mysql源码本地调试

前言 先进行mysql源码本地编译:mysql源码本地编译 1.本地调试 这里以macbook为例 1.使用vscode打开mysql源码 2.创建basedir目录、数据目录、配置文件目录、配置文件 cd /Users/test/ mkdir mysqldir //创建数据目录和配置目录 cd mysqldir mkdir conf data …

PCIe— Legacy PCI

Legacy Model ​​ 该器件通过将其引脚置位到控制器来生成中断。 在较旧的系统中,这个控制 器通常是Intel 8259 PIC,有15个IRQ输入和一个INTR输出。 然后,PIC将断 言INTR以通知CPU一个或多个中断正在挂起。 一旦CPU检测到INTR的断言…

PostgreSQL数据库配置SSL操作说明书

背景: 因为postgresql或者mysql目前通过docker安装,只需要输入主机IP、用户名、密码即可访问成功,这样其实是不安全的,可能会通过一些手段获取到用户名密码导致数据被窃取。而ES、kafka等也是通过用户名/密码方式连接,…

低碳理念在道路工程中的应用-预制路面

一、引子 在上一篇文章里,给大家介绍了预制基层的应用,有人提出,既然基层能够预制,那么,道路面层能不能预制呢,有没有相关的研究成果和应用实例呢?答案是肯定的,在本篇文章中&#x…

12-后端Web实战(登录认证)

在前面的课程中,我们已经实现了部门管理、员工管理的基本功能,但是大家会发现,我们并没有登录,就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的,所以我们今天的主题就是登录认证。最终要实现的效果是&#…

4.2.2 Spark SQL 默认数据源

在本实战概述中,我们探讨了如何在 Spark SQL 中使用 Parquet 格式作为默认数据源。首先,我们了解了 Parquet 文件的存储特性,包括其二进制存储方式和内嵌的 Schema 信息。接着,通过一系列命令,我们演示了如何在 HDFS 上…

234. Palindrome Linked List

目录 一、题目描述 方法一、使用栈 方法二、将链表全部结点值复制到数组,再用双指针法 方法三、递归法逆序遍历链表 方法四、快慢指针反转链表 一、题目描述 234. Palindrome Linked List 方法一、使用栈 需要遍历两次。时间复杂度O(n),空间复杂度…

无人机报警器探测模块技术解析!

一、运行方式 1. 频谱监测与信号识别 全频段扫描:模块实时扫描900MHz、1.5GHz、2.4GHz、5.8GHz等无人机常用频段,覆盖遥控、图传及GPS导航信号。 多路分集技术:采用多传感器阵列,通过信号加权合并提升信噪比,…

Bonjour

Bonjour 是苹果的一套零配置网络协议,用于发现局域网内的其他设备并进行通信,比如发现打印机、手机、电视等。 一句话:发现局域网其他设备和让其他设备发现。 Bonjour 可以完成的工作 IP 获取名称解析搜索服务 实际应用场景示例&#xff0…

华为云Flexus+DeepSeek征文 | 基于Dify和DeepSeek-R1开发企业级AI Agent全流程指南

作者简介 我是摘星,一名专注于云计算和AI技术的开发者。本次通过华为云MaaS平台体验DeepSeek系列模型,将实际使用经验分享给大家,希望能帮助开发者快速掌握华为云AI服务的核心能力。 目录 1. 前言 2. 环境准备 2.1 华为云资源准备 2.1 实…

HarmonyOS-ArkUI固定样式弹窗(1)

固定样式弹窗指的就是ArkUI中为我们提供的一些具备界面模板性质的弹窗。样式是固定的,我们可以决定在这些模板里输入什么样的内容。常见的有,警告弹窗, 列表选择弹窗, 选择器弹窗,对话框,操作菜单。 下图是本文中要讲到的基类固定样式弹窗,其中选择器弹窗没有包含在内,…

痉挛性斜颈相关内容说明

一、颈部姿态的异常偏移​ 痉挛性斜颈会打破颈部原本自然笔直的状态,让颈部像被无形的力量牵引,出现不自主的歪斜、扭转。它就像打乱了颈部原本和谐的 “平衡游戏”,使得颈部姿态偏离正常,影响日常的体态与活动。​ 二、容易察觉…

【25-cv-05917】HSP律所代理Le Petit Prince 小王子商标维权案

Le Petit Prince 小王子 案件号:25-cv-05917 立案时间:2025年5月28日 原告:SOCIETE POUR LOEUVRE ET LA MEMOIRE DANTOINE DE SAINT EXUPERY - SUCCESSION DE SAINT EXUPERY-DAGAY 代理律所:HSP 原告介绍 《小王子》&#x…

vue3 ElMessage提示语换行渲染

在 ElMessage.error 中使用换行符 \n 并不会实现换行&#xff0c;因为 ElMessage 默认会将字符串中的换行符忽略。要实现换行显示&#xff0c;可以使用 HTML 标签 <br> 并结合 ElMessage 的 dangerouslyUseHTMLString 选项。以下是实现换行提示的代码示例&#xff1a; i…

Java 微服务架构设计:服务拆分与服务发现的策略

Java 微服务架构设计&#xff1a;服务拆分与服务发现的策略 微服务架构作为一种热门的软件架构风格&#xff0c;在 Java 领域有着广泛的应用。它通过将系统拆分为一组小型服务来实现更灵活、可扩展的系统设计。在微服务架构中&#xff0c;服务拆分和服务发现是两个关键环节。本…