5分钟搞懂词向量生成技术:Word2Vec

news2024/11/17 19:40:59

大家好啊,我是董董灿。

今天我们来简单聊一个在自然语言处理(NLP)中非常有用的技术——Word2Vec。

之前曾经写过一些关于文本处理的基础知识,包括判断两个文本是否相似,可以使用余弦相似度,但在此之前,在计算两个文本相似度的时候,需要把文本表示为词向量。

那么问题来了,一般情况下是如何将文本映射为词向量的呢?

今天就简单介绍一种方法,它的作用就是可以把文本映射成向量,从而使计算机具有理解人类语言的能力。

1、什么是Word2Vec?

简单来说,Word2Vec 并不是一个具体的神经网络模型,而是一个由很多生成词向量的模型(算法)组成的词向量生成框架,或者词向量生成工具。

通过它,可以将文字或者词组映射成一个多维空间中的向量。

这些向量的精妙之处在于,他们包含了单词之间的语义关系,比如两个文本如果非常相似,那么对应的两个向量的余弦相似度就非常接近于1。

比如有四个单词:“猫”、“狗”、“鱼”、“跑”,通过Word2Vec 生成的词向量可能为:

- 猫:[0.2, 0.7]

- 狗:[0.3, 0.9]

- 鱼:[-0.5, 0.2]

- 跑:[0.8, -0.1]

将上述四个向量画在坐标图上如下图。

图片

我们通过观察可以很轻松的看出来,“猫”和“狗”的两个向量很相近,“鱼”和“跑”代表的两个向量则相差很远。

这是因为猫和狗都是动物,而鱼和跑则没有什么关联性。

实际中生成的向量并非上面表示的仅仅两个维度,大部分都是512维或者1024维,这里用两维仅仅是为了展示。

可能你会问,为什么我们需要将单词转换成向量?

这是因为,在计算机看来,所有的输入和处理的文字都是数字,文本也是一样。

如果不将文本转换成计算机能理解的形式,那么计算机就像一个文盲一样处理不了它。

传统的方法如 one-hot 编码,虽然简单并且也可以将文字进行编码,但它将每个单词都孤立了,无法捕捉单词之间的关系。

例如,'王'和'后'在棋盘游戏中有紧密的联系,但在one-hot编码中,它们就是两个完全无关的向量。

关于one-hot 可以查看:5分钟搞懂 one-hot 编码。

2、Word2Vec 的工作原理

Word2Vec 通过训练语料库(可能由互联网上大量的文章组成)中的单词来生成模型,它主要有两种架构:CBOW(连续词袋模型)和 Skip-gram模型。

两者的区别在于,训练时连续词袋模型基于文本的上下文来预测单词,而Skip-gram 模型则反其道而行之,它用一个单词来预测其周围的上下文。

相同的是,这两种方法都是让模型来学习大量的文本,以及文本中单词的使用环境来生成高质量的词向量。

举个例子,如果在训练时,模型看到了句子“猫喜欢吃鱼”,在Skip-gram模型中,如果选择“喜欢”作为输入单词,模型便会试图预测它周围的“猫”和“吃鱼”。

通过这种方式,模型就学到了“喜欢”与“猫”、“吃鱼”之间在一定的语言环境下是存在关系的。

从而在生成“喜欢”这个单词的向量时,会将其与“猫”以及“吃鱼”之间的关系表示到向量中。

3、Word2Vec有什么用?

使用Word2Vec的好处非常明显。

首先,它可以捕捉到单词的多种语义关系,比如同义词、反义词,这在许多NLP任务中都非常有用,如情感分析、机器翻译和文本分类。

例如,在情感分析中,词向量可以帮助模型正确地理解某些文字是否具有正面情绪,还是具有负面情绪。

更关键的是,Word2Vec 就像是为计算机打开了一道大门,使得计算机可以真正“读懂”人类的文字(无论是汉字还是英文)。

不仅可以读懂,而且还可以“理解”文字背后的深层含义,这对于提升语言模型的理解能力来说是一个巨大的进步。

因此,可以认为,经过 Word2Vec 之后生成的词向量,是计算机的语言。

就像是如果希望从中文翻译成英文的话,我们可以先从中文翻译成俄语, 再从俄语翻译成英文。

一样的意思,可以先讲中文翻译成词向量,在将词向量翻译为英文,这就完成了中译英的任务。

好了,今天关于Word2Vec的介绍就到这里。


欢迎关注我的公众号:董董灿是个攻城狮,第一时间获取最新的文章资讯。

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

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

相关文章

C++多态(个人笔记)

C多态 1.多态的定义以及实现1.1多态的构成条件1.2虚函数1.3虚函数的重写1.4override和final1.5函数重载,覆盖(重写),隐藏(重定义)区别 2.抽象类2.1接口继承和实现继承的区别 3.多态原理3.1虚函数表3.2多态的…

PHP定期给自己网站目录做个特征镜像供快速对比

效果图 上代码&#xff1a; <style> h1{font-size:24px;line-height:180%;font-weight:600;margin:1px 2px;color:#0180cf;} h2{font-size:20px;line-height:140%;font-weight:600;margin:2px 4px;color:green;} h3{font-size:16px;line-height:140%;font-weight:600;m…

冯喜运:4.24-4.25黄金原油双双跳水、今日走势分析

【黄金消息面解析】&#xff1a;随着全球经济不确定性继续影响市场&#xff0c;黄金价格面临关键时刻。在最近的下跌之后&#xff0c;黄金价格正在测试关键支撑水平&#xff0c;投资者密切关注美国经济数据&#xff0c;以了解美联储的利率政策路径。让我们深入探讨推动黄金价格…

密码错误冻结时间,强制修改密码时间,密码强度,首次登录是否修改密码

新建单表&#xff0c;各种字段&#xff0c;项目启动时加载到redis缓存中。问题&#xff1a;修改数据后&#xff0c;缓存中数据未修改&#xff1f;是否设置超时时间&#xff0c;每次登录的时候判断缓存中有没有&#xff0c;没有新增一次&#xff0c;有了就用缓存中数据&#xff…

牛客NC179 长度为 K 的重复字符子串【simple 哈希,滑动窗口 C++、Java、Go、PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/eced9a8a4b6c42b79c95ae5625e1d5fd 思路 哈希统计每个字符出现的次数。没在窗口内的字符要删除参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c…

‍ 太空网络攻击

&#x1f9d1;‍&#x1f680; 尤里-加加林成为征服外太空的第一人。他在 1961 年 4 月 12 日的飞行有力地推动了全世界的科技发展。 有趣的事实是&#xff1a;苏联所有首次太空发射&#xff08;包括加加林的飞行&#xff09;的弹道计算都是在苏联第一个计算机中心的电子计算机…

Redis(六) Set集合类型

文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 命令小结 内部编码使用场景 前言 集合类型也是保存多个字符串类型的元素的&#xff0c;和列表类型不同的是&#xff0c;set集合类型中的元素是无序的且…

Flink 实时数仓(一)【实时数仓离线数仓对比】

前言 昨天技术面的时候&#xff0c;面试官说人家公司现在用的都是最新的技术&#xff0c;比如 Doris 等一些最新的工具&#xff0c;确实这些课是学校永远不会开设的&#xff0c;好在他说去了会带着我做一做。可是 ...... 学院舍不得让走啊 ...... 没办法&#xff0c;情况就是这…

DelphiWebMVC对VUE导出包的支持

MVC框架除了本身对html文件的渲染输出&#xff0c;先开始对Hbuilder或VSCode 开发的VUE项目的导出包&#xff0c;开始支持导出包的部署。 这是一个Hbuilder 的vue 项目&#xff0c;导出包为&#xff1a; 这是一个DelphiWeb项目&#xff0c; 这是DelphiWeb项目的运行目录&#x…

企业有必要上人事档案信息管理系统吗

人事档案是企业的重要资产&#xff0c;其中包含着员工的基本信息、合同、培训记录、绩效评估、离职手续等重要内容。通过建立人事档案信息管理系统&#xff0c;企业可以实现以下几点好处&#xff1a; 1. 提高工作效率&#xff1a;人事档案管理系统可以实现信息的集中存储和快速…

C语言操作符和关键字

文章目录 操作符单目操作符sizeof&#xff08;类型&#xff09;强制类型转换 关系操作符、逻辑操作符、条件操作符逗号表达式 常见关键字typedefstaticstatic修饰局部变量static修饰全局变量static修饰函数 register寄存器关键词define定义常量和宏 操作符 单目操作符 C语言中…

Echarts异步数据与动画加载

目录 简介 头部代码 这段代码是使用 Echarts 绘制图表的关键部分。首先&#xff0c;初始化了一个 Echarts 实例。然后&#xff0c;通过 Ajax 请求获取数据&#xff0c;并基于此设置图表选项。其中包括颜色、背景色、标题、提示框、图例以及饼图的具体配置。 具体解释如下&a…

python ERA5 画水汽通量散度图地图:风速风向矢量图、叠加等高线、色彩分级、添加shp文件、添加位置点及备注

动机 有个同事吧&#xff0c;写论文&#xff0c;让我帮忙出个图&#xff0c;就写了个代码&#xff0c;然后我的博客好久没更新了&#xff0c;就顺便贴上来了&#xff01; 很多人感兴趣风速的箭头怎样画&#xff0c;可能这种图使用 NCL 非常容易&#xff0c;很多没用过代码的小…

「 网络安全常用术语解读 」软件物料清单SBOM详解

1. 概览 软件物料清单&#xff08;Software Bill of Materials&#xff0c;SBOM&#xff09;是软件成分信息的集合&#xff0c;SBOM文件中记录了软件产品或服务所使用组件、库、框架的清单&#xff0c;用于描述软件构建过程中使用的所有组件及其关系&#xff0c;以实现软件供应…

fatal: unable to access ‘https://github.com/alibaba/flutter_boost.git/

Git error. Command: git fetch stdout: stderr: fatal: unable to access ‘https://github.com/alibaba/flutter_boost.git/’: Failed to connect to github.com port 443 after 75005 ms: Couldn’t connect to server exit code: 128 GitHub (国际型)代码 分发平台/托管平…

人工智能中两个较为常见的评估模型性能指标(EVS、MAE)

1、解释方差(EVS) 官方社区链接&#xff1a;sklearn.metrics.explained_variance_score-scikit-learn中文社区 explained_variance_score是一个用于评估回归模型性能的指标&#xff0c;它衡量的是模型预测值与实际值之间关系的密切程度。具体来说&#xff0c;解释方差分数表示…

【Canvas与艺术】绘制铜质钢底24周年纪念章

【关键点】 底图的查找和多次尝试、文字描边。 【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>使用HTML5/Canvas绘…

图像处理的基本操作

一、PyCharm中安装OpenCV模块 二、读取图像 1、基本语法 OpenCV提供了用于读取图像的imread()方法&#xff0c;其语法如下&#xff1a; image cv2.imread&#xff08;filename&#xff0c;flags&#xff09; &#xff08;1&#xff09;image&#xff1a;是imread方法的返回…

OpenCompass 大模型评测实战——笔记

OpenCompass 大模型评测实战——笔记 一、评测1.1、为什么要做评测1.2、如何通过能力评测促进模型发展1.2.1、面向未来拓展能力维度1.2.2、扎根通用能力1.2.3、高质量1.2.4、性能评测 1.3、评测的挑战1.3.1、全面性1.3.2、评测成本1.3.3、数据污染1.3.4、鲁棒性 二、OpenCompas…

MSE实现全链路灰度实践

技术架构包括以下基础设施和云服务&#xff1a; 1个地域&#xff1a;ACK集群、微服务应用、MSE实例均部署在同一地域下。 1个专有网络VPC&#xff1a;形成云上私有网络&#xff0c;确保核心云资源的网络环境&#xff0c;如容器服务ACK、微服务引擎MSE。 ACK集群&#xff1a;简单…