word2vec词向量原理

Word2Vec词向量技术详解:从原理到实战应用 词嵌入(Word Embedding)是自然语言处理的基础技术,通过将词语映射为低维稠密向量,解决了传统one-hot编码的维度灾难问题。其核心原理基于分布式假设,即语义相似的词在相似上下文中出现。Word2Vec作为经典实现,采用CBOW和Skip-gram两种架构,能够高效捕捉词语间的语义关系和语法规律。在工程实践中,词向量技术为文本分类、推荐系统等应用提供了有效的特征表示。通过Gensim等工具库,开发者可以快速实现词向量训练,并利用语义相似度计算、词语类比等能力构建智能NLP系统。本文重点解析Wor 阅读详情

一、词的表示

word2vec也叫word embeddings,中文名“词向量”,作用就是将自然语言中的字词转为计算机可以理解的稠密向量(Dense
Vector)。在word2vec出现之前,自然语言处理经常把字词转为离散的单独的符号,也就是One-Hot Encoder。

在自然语言处理任务中,首先需要考虑词如何在计算机中表示。通常,有两种表示方式:one-hot representation和distribution representation。

1.1离散表示(one-hot representation)

传统的基于规则或基于统计的自然语义处理方法将单词看作一个原子符号 被称作one-hot representation。
one-hot representation把每个词表示为一个长向量。这个向量的维度是词表大小,向量中只有一个维度的值为1,其余维度为0,这个维度就代表了当前的词。

例如: 苹果 [0,0,0,1,0,0,0,0,0,……]

one-hot representation相当于给每个词分配一个id,这就导致这种表示方式不能展示词与词之间的关系。另外,one-hot representation将会导致特征空间非常大,但也带来一个好处,就是在高维空间中,很多应用任务线性可分。

1.2分布式表示(distribution representation)

word embedding指的是将词转化成一种分布式表示,又称词向量。分布
式表示将词表示成一个定长的连续的稠密向量。

分布式表示优点:
(1)词之间存在相似关系:
是词之间存在“距离”概念,这对很多自然语言处理的任务非常有帮助。
(2)包含更多信息:
词向量能够包含更多信息,并且每一维都有特定的含义。在采用one-hot特征时,可以对特征向量进行删减,词向量则不能。

模型拆解
word2vec模型其实就是简单化的神经网络。

在这里插入图片描述
输入是One-Hot Vector,Hidden Layer没有激活函数,也就是线性的单元。Output Layer维度跟Input Layer的维度一样,用的是Softmax回归。我们要获取的dense vector其实就是Hidden Layer的输出单元。有的地方定为Input Layer和Hidden Layer之间的权重,其实说的是一回事。
在这里插入图片描述

CBOW与Skip-Gram模式
word2vec主要分为CBOW(Continuous Bag of Words)和Skip-Gram两种模式。CBOW是从原始语句推测目标字词;而Skip-Gram正好相反,是从目标字词推测出原始语句。CBOW对小型数据库比较合适,而Skip-Gram在大型语料中表现更好。
对同样一个句子:Hangzhou is a nice city。我们要构造一个语境与目标词汇的映射关系,其实就是input与label的关系。
这里假设滑窗尺寸为1(滑窗尺寸……这个……不懂自己google吧-_-|||)
CBOW可以制造的映射关系为:[Hangzhou,a]—>is,[is,nice]—>a,[a,city]—>nice
Skip-Gram可以制造的映射关系为(is,Hangzhou),(is,a),(a,is), (a,nice),(nice,a),(nice,city)

训练优化
额,到这里,你可能会注意到,这个训练过程的参数规模非常巨大。假设语料库中有30000个不同的单词,hidden
layer取128,word2vec两个权值矩阵维度都是[30000,128],在使用SGD对庞大的神经网络进行学习时,将是十分缓慢的。而且,你需要大量的训练数据来调整许多权重,避免过度拟合。数以百万计的重量数十亿倍的训练样本意味着训练这个模型将是一个野兽。
一般来说,有Hierarchical Softmax、Negative Sampling等方式来解决。

三、实战

"""
Created on 2019/4/10
@author: Michael
"""

"""
1 简介  :根据官方给的数据集中'的word_seg'内容,训练词向量,生成word_idx_dict和vectors_arr两个结果,并保存
2 注意  :1)需要16g内存的电脑,否则由于数据量大,会导致内存溢出。(解决方案:可通过迭代器的格式读入数据。
            见https://rare-technologies.com/word2vec-tutorial/#online_training__resuming)
"""

import pandas as pd
import gensim
import time
import pickle
import numpy as np
中文词向量的下载与使用探索 (tensorflow加载词向量) 文章目录1. 下载2. 使用2.1 尝试一,gensim方式2.1.1 安装gensim2.1.2 gensim的使用2.2 尝试二,tensorflow方式2.2.1 Windows下安装tensorflow,cpu版 1. 下载 下载链接:https://github.com/Embedding/Chinese-Word-Vectors 下载并解压 2. 使用 2.1 尝试一,gensim方... 阅读详情

相关推荐

word2vec词向量原理及公式

word2vec原理 概念 一句话中,连续的词之前是有相关联系的,那么可以借助这种关系来学习出每个词的向量表示。把一个词用一个向量表示后的好处有:变成机器能理解的语言,降维(以前的做法是用tf-idf构造文本向量)可以加快计算速度,可以更好的利用先验知识。 例子 content=我/是/自然语言/工程师,‘自然语言’与‘我’、‘的’、‘工程师’三个词强相关,所以可以通过 我/是/x/工程师 来预...

xuhuixuexiqt的博客 1239

词向量原理与工程落地:从Word2Vec到FAISS实战

词向量是自然语言处理中将离散词汇映射为连续语义空间的核心技术,其本质基于分布假说——语义相似的词在上下文中共现模式相近。通过静态嵌入(如Word2Vec、GloVe)可高效建模通用语义关系,支持类比推理、相似度计算与下游任务特征构建;相比BERT等动态向量,它在低延迟、高可解释性及小样本场景中不可替代。实际应用中,向量质量70%取决于语料清洗与领域适配,而非算法调参,需重点关注维度选择、窗口大小、负采样与子采样等关键参数。本文结合电商搜索、金融舆情、教育批改等真实项目,详解从语料预处理、模型训练、FAISS

weixin_33762130的博客 477

中文预训练词向量(知乎问答 word2vec +Ngram)-数据集

中文预训练词向量北京师范大学中文信息处理研究所与中国人民大学 DBIIR 实验室的研究者开源的"chinese-word-vectors"。github地址为:https://github.com/Embedding/Chinese-Word-Vectors 此中文预训练词向量为知乎Word + Ngram的词向量

WhatsApp注册流程逆向分析:从协议解析到风控对抗实战

移动应用安全分析的核心在于理解客户端与服务端的交互协议与验证机制。通过逆向工程,可以深入剖析应用的数据加密、传输与身份验证原理,这对于构建安全模型、进行自动化测试和风控策略研究具有重要技术价值。在即时通讯、金融支付等高安全要求场景中,掌握应用注册流程的底层实现是评估其安全性的关键。本文聚焦于使用动态分析工具如Frida进行Hook和流量抓包,结合设备指纹识别与模拟器检测技术,详细解析了大型应用的注册风控体系,为安全研究人员和开发者提供了从环境搭建到实战对抗的完整方法。

weixin_33935636的博客 317

AS7341光谱传感器实战:如何用STM32F103精准测量环境色温(附完整代码)

本文详细介绍了如何使用STM32F103驱动AS7341光谱传感器实现环境色温的精准测量。从硬件连接到驱动开发,再到色温计算算法的实现,提供了完整的代码示例和优化建议,帮助开发者在智能照明、农业监测等领域快速应用AS7341进行高精度色温检测。

weixin_30352645的博客 479

23.501中英对照(46):5QI到Qos特征的映射

注4:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为1毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注5:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为2毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注6:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为5毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注:建议为任何新的非GBR资源类型的标准化5QI分配小于64的值。

51学通信的博客 1300

cordic算法的FPGA实现

cordic 算法的MATLAB仿真及verilog实现

qq_38360574的博客 1678

PL端:HDMI 输出实验

开发板没有HDMI编码芯片,是将FPGA的3.3差分IO直接连接到HDMI连接器,FPGA 完成 24 位 RGB 编码输出TMDS 差分信号。1、学会使用第三点IP核,首先是添加,后面的使用和自带IP核操作一致。2、主要还是在梳理vivado使用流程。

qq_43441284的博客 4289

手把手教你搞定CAC会议投稿:从LaTeX模板到PDF eXpress避坑全流程

本文详细解析CAC会议投稿全流程,重点介绍LaTeX模板调整、Turnitin查重技巧及PDF eXpress校验避坑指南。通过实战案例和代码示例,帮助研究者高效完成IEEE格式论文投稿,避免常见技术性失误,提升投稿成功率。

weixin_29969209的博客 397

动手在 SAP BTP Cloud Foundry 开发和部署 SAP UI5 应用的前置条件 - 订阅 SAP Build Work Zone Standard Version

摘要:本文介绍了SAP BTP Cloud Foundry环境中HTML5应用的概念,区分了web应用、HTML5应用和SAP UI5应用的关系。重点说明了在Cloud Foundry环境部署HTML5应用的方法是通过订阅SAP Build Work Zone standard edition服务,并详细描述了订阅过程中可能遇到的"OIDC trust missing"错误。该错误是由于业务用户认证需要配置SAP Cloud Identity Services的OpenID Connec

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 314

华硕 NUC 对比 Mac mini:跑 OpenClaw 谁性价比更高?

在选择本地 AI 服务器硬件时,华硕 NUC 和 Mac mini 是两个热门选择。本文将从硬件规格、性能、成本、功耗、易用性等多个维度对比这两款设备,帮助您决定哪款更适合运行 OpenClaw。

博客 1025

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 爬虫实战-用beautifulsoup提取丁香园论坛的回复内容
下一篇: 用PyTorch类实现Logistic regression
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值