文本处理——Word2Vec(二)

2024-05-14 09:08
文章标签 word2vec 文本处理

本文主要是介绍文本处理——Word2Vec(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:http://www.sohu.com/a/128794834_211120


自从 Google 的 Tomas Mikolov 在《Efficient Estimation of Word Representation in Vector Space》提出 Word2Vec,就成为了深度学习在自然语言处理中的基础部件。Word2Vec 的基本思想是把自然语言中的每一个词,表示成一个统一意义统一维度的短向量。至于向量中的每个维度具体是什么意义,没人知道,也无需知道,也许对应于世界上的一些最基本的概念。但是,读论文去理解 Word2Vec 的模型生成,依然有些云里雾里,于是只好求助于读代码,然后就茅塞顿开,与大家分享。

任何一门语言,都是由一堆的词组成,所有的词,构成了一个词汇表。词汇表,可以用一个长长的向量来表示。词的个数,就是词汇表向量的维度。那么,任何一个词,都可以表示成一个向量,词在词汇表中出现的位置设为1,其它的位置设为0。但是这种词向量的表示,词和词之间没有交集,用处不大。

Word2Vec 的训练模型,看穿了,是具有一个隐含层的神经元网络(如下图)。它的输入是词汇表向量,当看到一个训练样本时,对于样本中的每一个词,就把相应的在词汇表中出现的位置的值置为1,否则置为0。它的输出也是词汇表向量,对于训练样本的标签中的每一个词,就把相应的在词汇表中出现的位置的值置为1,否则置为0。那么,对所有的样本,训练这个神经元网络。收敛之后,将从输入层到隐含层的那些权重,作为每一个词汇表中的词的向量。比如,第一个词的向量是(w1,1 w1,2 w1,3 ... w1,m),m是表示向量的维度。所有虚框中的权重就是所有词的向量的值。有了每个词的有限维度的向量,就可以用到其它的应用中,因为它们就像图像,有了有限维度的统一意义的输入。


训练 Word2Vec 的思想,是利用一个词和它在文本中的上下文的词,这样就省去了人工去标注。论文中给出了 Word2Vec 的两种训练模型,CBOW (Continuous Bag-of-Words Model) 和 Skip-gram (Continuous Skip-gram Model)。

首先看CBOW,它的做法是,将一个词所在的上下文中的词作为输入,而那个词本身作为输出,也就是说,看到一个上下文,希望大概能猜出这个词和它的意思。通过在一个大的语料库训练,得到一个从输入层到隐含层的权重模型。如下图所示,第l个词的上下文词是i,j,k,那么i,j,k作为输入,它们所在的词汇表中的位置的值置为1。然后,输出是l,把它所在的词汇表中的位置的值置为1。训练完成后,就得到了每个词到隐含层的每个维度的权重,就是每个词的向量。


Word2Vec 代码库中关于CBOW训练的代码,其实就是神经元网路的标准反向传播算法。


接着,看看Skip-gram,它的做法是,将一个词所在的上下文中的词作为输出,而那个词本身作为输入,也就是说,给出一个词,希望预测可能出现的上下文的词。通过在一个大的语料库训练,得到一个从输入层到隐含层的权重模型。如下图所示,第l个词的上下文词是i,j,k,那么i,j,k作为输出,它们所在的词汇表中的位置的值置为1。然后,输入是l,把它所在的词汇表中的位置的值置为1。训练完成后,就得到了每个词到隐含层的每个维度的权重,就是每个词的向量。


Word2Vec 代码库中关于Skip-gram训练的代码,其实就是神经元网路的标准反向传播算法。


一个人读书时,如果遇到了生僻的词,一般能根据上下文大概猜出生僻词的意思,而 Word2Vec 正是很好的捕捉了这种人类的行为,利用神经元网络模型,发现了自然语言处理的一颗原子弹。


这篇关于文本处理——Word2Vec(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988347

相关文章

面试:关于word2vec的相关知识点Hierarchical Softmax和NegativeSampling

1、为什么需要Hierarchical Softmax和Negative Sampling 从输入层到隐含层需要一个维度为N×K的权重矩阵,从隐含层到输出层又需要一个维度为K×N的权重矩阵,学习权重可以用反向传播算法实现,每次迭代时将权重沿梯度更优的方向进行一小步更新。但是由于Softmax激活函数中存在归一化项的缘故,推导出来的迭代公式需要对词汇表中的所有单词进行遍历,使得每次迭代过程非常缓慢

SparkML中三种文本特征提取算法(TF-IDF/Word2Vec/CountVectorizer)

在SparkML中关于特征的算法可分为Extractors(特征提取)、Transformers(特征转换)、Selectors(特征选择)三部分: Feature Extractors TF-IDFWord2VecCountVectorizer Feature Transformers TokenizerStopWordsRemover n n-gramBinarizerP

高效文本编辑器:轻松掌握内容,批量删除每隔一行带有分隔符的内容,助力文本处理更高效!

在信息爆炸的时代,文本处理已成为我们日常生活和工作中不可或缺的一部分。然而,面对海量的文本内容,如何高效地进行编辑和整理,成为了许多人面临的难题。今天,我要向大家推荐一款高效文本编辑器——首助编辑高手,它将助您轻松驾驭文本海洋,让内容处理更高效 首助编辑高手以其出色的文本批量操作功能,赢得了广大用户的青睐。在主页面,您可以清晰地看到各个板块栏,其中文本批量操作板块更是为您的编辑工作提供了强大

Word2Vec揭秘: 这是深度学习中的一小步,却是NLP中的巨大跨越

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者:Suvro Banerjee 编译:ronghuaiyang 前戏 做NLP现在离不开词向量,词向量给了我们一个非常好的单词的向量表示,用一个有限长度的向量,可以表示出所有的词,还可以表示出词与词之间的上下文相互关系,是不是很神奇?那么,这么神奇的东西到底是怎么来的呢?今天的这篇文章会一点一点给大家说清楚。虽然有一点公式,但是总

词嵌入以及word2vec的介绍

作者:Dhruvil Karani 编译:ronghuaiyang 前戏 给大家介绍一些词嵌入和word2vec的一些基础内容,非常的浅显,都可以看得懂。 词嵌入是文档词汇表最常用的表示形式之一。它能够捕捉文档中某个单词的上下文、语义和句法相似性、与其他单词的关系等。 词嵌入到底是什么?粗略地说,它们是特定单词的向量表示。说了这么多,接下来是我们如何生成它们?更重要的是,它们如何捕获上下文

1.3自然语言的分布式表示-word2vec

文章目录 0基于计数的方法的问题1什么是基于推理的方法2神经网络中单词的表示2.1 MatMul 层的实现 3简单word2vec的实现3.1 CBOW模型的结构3.1.1神经元视角3.1.2层的视角3.1.3多层共享权重时存在的问题 3.2 CBOW模型的学习3.3单词的分布式表示 代码都位于:nlp;其他相关内容详见专栏:深度学习自然语言处理基础_骑着蜗牛环游深度学习世界的

1.4自然语言的分布式表示-word2vec实操

文章目录 0写在前面1数据准备2CBOW模型结构的实现3交叉熵损失函数的前向计算3.1关于cross_entropy_error的计算3.2关于softmax 0写在前面 代码都位于:nlp;其他相关内容详见专栏:深度学习自然语言处理基础_骑着蜗牛环游深度学习世界的博客-CSDN博客; 1数据准备 输入是上下文,目标是中间的单词 因此对于下图所示的小的语料库来说,可以构

Word2Vec基本实践

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、使用SkipGram 模型1. 构建实验语料库2. 生成Skip-Gram训练数据3. 对Skip-Gram数据进行One-Hot编码4. 定义

TapTap玩家评论——从爬虫到情感分析:APP爬虫、数据清洗、Pyecharts可视化、Word2Vec建模、LSTM建模

TAPTAP评论的文本挖掘 背景   玩家评论可以为游戏的版本迭代提供重要参考,假如可以快速定位玩家的负面评价,则能够节约收集意见的时间成本。本项目通过文本挖掘方法,展示从数据采集到情感模型评价的全过程。   本项目的完整代码:Github地址   本项目可视化的动态展示:和鲸地址 一、爬虫   TAPTAP评论数据通过JSON返回,使用python中的Requests库非常容易就可以提取

gensim.models.word2vec 参数说明

使用gensim训练词向量的实例,Initialize and train a Word2Vec model. >>> from gensim.models import Word2Vec>>> sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]]>>> model = Word2Vec(sentences, min_cou