词袋模型和词向量模型

article/2025/9/21 17:15:51

在自然语言处理和文本分析的问题中,词袋(Bag of Words, BOW)和词向量(Word Embedding)是两种最常用的模型。更准确地说,词向量只能表征单个词,如果要表示文本,需要做一些额外的处理。下面就简单聊一下两种模型的应用。

所谓BOW,就是将文本/Query看作是一系列词的集合。由于词很多,所以咱们就用袋子把它们装起来,简称词袋。至于为什么用袋子而不用筐(basket)或者桶(bucket),这咱就不知道了。举个例子:

                   文本1:苏宁易购/是/国内/著名/的/B2C/电商/之一

这是一个短文本。“/”作为词与词之间的分割。从中我们可以看到这个文本包含“苏宁易购”,“B2C”,“电商”等词。换句话说,该文本的的词袋由“苏宁易购”,“电商”等词构成。就像这样:

但计算机不认识字,只认识数字,那在计算机中怎么表示词袋模型呢?其实很简单,给每个词一个位置/索引就可以了。例如,我们令“苏宁易购”的索引为0,“电商”的索引为1,其他以此类推。则该文本的词袋就变成了:

是的,词袋变成了一串数字的(索引)的集合。这样计算机就能读懂了。如果用程序来描述的话,就会像:Set<int>(0,1,2…)。当然,刚才的例子中像“苏宁易购”等词只出现了一次,如果出现多次,可能就需要支持重复元素的容器了,如Java/C++中的MultiSet。

可是,在实际的应用中(如:文本的相似度计算),用刚才说的容器是非常不方便的(如果要用,需要额外用Map容器来存储一本字典来表征词和索引的映射关系)。因此我们考虑用更简单的数据结构来组织词袋模型。既然刚才说词是用数字(索引)来表示的,那自然我们会想到数组。例如:

         Intwords[10000] = {1,20,500,0,……}

                                     索引:{0,1,2,3,……}

                                     词:   {苏宁易购,是,国内,B2C,……}

数组的下标表示不同的词,数组中的元素表示词的权重(如:TF,TF-IDF)。更为一般的,词的索引可以用词的HashCode来计算,即:Index(苏宁易购) = HashCode(苏宁易购)。将词散列到数组的某个位置,并且是固定的(理论上会有冲突,需要考虑冲突的问题)。因此,HashCode这个函数起到了字典的作用。转化成了数组,接下来计算余弦相似度啥的就好办多了。这就是词袋模型。

下面讲讲词向量模型。实际上,单个词的词向量不足以表示整个文本,能表示的仅仅是这个词本身。往往,这个词向量是个高维的向量(几万甚至几十万)。先不说它是如何得到的,单说它的应用应该是很广泛的。再举文本相似度的例子,既然词可以用一串数字表示,那么自然可以用余弦相似度或欧式距离计算与之相近的词。这样,词的聚类什么的都可以做了。那长文本怎么办呢?一个简单的办法是把这个文本中包含的词的词向量相加。这样长文本也就表示成了一串数字。可是这种处理方法总让我们觉得怪怪的。看到过有同学做的测试,当文本只有十几个字的时候,这种处理方法还算凑合,字多了,结果就很难看了。至于词向量是怎么获得,咱下回再说。目前word2vec有多种版本可供大家使用。至于像doc2vec,sentence2vec的效果还有待评估。


http://chatgpt.dhexx.cn/article/p5yVO9v6.shtml

相关文章

中文词向量的训练

最近在做毕设&#xff0c;需要对中文进行向量化表示&#xff0c;现有的最全中文词向量预训练向量有&#xff1a;最全中文词向量 part 1:以上链接中的词向量介绍&#xff1a; 格式 预先训练好的向量文件是文本格式。每行包含一个单词和它的向量。每个值由空格分隔。第一行记录…

如何训练一个词向量

现在在NLP领域&#xff0c;词向量是一切自然语言处理的基础&#xff0c;有了词向量我们就可以进行数据分析&#xff0c;文本聚类分类的一系列操作了。接下来我们就开始学习如何训练词向量&#xff0c;之前我们有介绍关于 word2vec 的博文 word2vec算法理解和数学推导&#xff0…

词向量训练

词向量训练 一、 实验目的 掌握课堂所讲词向量的基本概念和训练方法。加强对pytorch、tensorflow等深度学习框架的使用能力。 二、 实验要求 任选课上讲的一种词向量模型进行实现即可&#xff0c;如是其他模型则请写明模型结构&#xff0c;作业压缩文件中也提供给大家相关的…

语言模型+词向量

文章目录 统计语言模型神经语言模型词向量&#xff08;浅层&#xff09; 统计语言模型 语言模型基本概念 弗莱德里克贾里尼克提出用数学的方法描述语言规律&#xff08;语言模型&#xff09; 语言模型基本思想&#xff1a; 用句子 S w 1 , w 2 , . . . , w n Sw_{1},w_{2},..…

学习笔记:深度学习(5)——词向量的相关概念

学习时间&#xff1a;2022.04.21 自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机…

深度学习之词向量

一、词向量 自上世纪90年代开始&#xff0c;特征空间模型就应用于分布式语言理解中&#xff0c;在当时许多模型用连续性的表征来表示词语&#xff0c;包括潜在语义分析LSA、隐含狄利克雷分布LDA主题模型。Bengio et al.在2003年首先提出了词向量的概念&#xff0c;当时是将其与…

自然语言处理——使用词向量(腾讯词向量)

向量化是使用一套统一的标准打分&#xff0c;比如填写表格&#xff1a;年龄、性别、性格、学历、经验、资产列表&#xff0c;并逐项打分&#xff0c;分数范围[-1,1]&#xff0c;用一套分值代表一个人&#xff0c;就叫作向量化&#xff0c;虽然不能代表全部&#xff0c;但至少是…

词向量Word2Vec(深度细致分析)

本文以博客园刘建平Pinard对于word2vec的解释为基础&#xff0c;同时参考了其他相关博客的分析并加入了自己的理解&#xff0c;希望站在巨人的肩膀上进行一定的学习输出。至于本片文章的属性&#xff0c;个人认为是伪原创吧&#xff0c;有需要的同学可以自行转到相应的链接。 w…

一、词向量模型

因为计算机不能理解词语&#xff0c;所以我们需要用词向量表示一个词。 词向量有一个发展历程&#xff1a;从one-hot到word embedding。 1 one-hot 设词典的大小为n&#xff08;词典中有n个词&#xff09;&#xff0c;假如某个词在词典中的位置为k&#xff0c;则设立一个n维向…

词向量算法

https://www.cnblogs.com/the-wolf-sky/articles/10192363.html https://blog.csdn.net/weixin_37947156/article/details/83146141 基于神经网络的表示一般称为词向量、词嵌入(word embdding)或分布式表示。 神经网络的词向量和其他分布式类似&#xff0c;都基于分布式表达…

词向量(Word Embedding)

一、词的表示 在自然语言处理任务中&#xff0c;首先需要考虑词如何在计算机中表示。通常&#xff0c;有两种表示方式&#xff1a;one-hot representation和distribution representation。简而言之&#xff0c;词向量技术是将词转化成为稠密向量&#xff0c;并且对于相似的词&…

二、词向量

目录 一、什么是词向量 二、词向量的离散表示 1、one-hot编码 2、 Bag of Words表示 3、TF-IDF表示 4、 Bi-gram和N-gram 5、离散表示的问题&#xff1a; 三、词的分布式表示&#xff08;Distributed representation&#xff09; 1、Skip-Gram模型 2、代码 一、什么是…

【NLP】词向量

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

第四章(1):词向量定义与意义

第四章(1):词向量定义与意义 目录 第四章(1):词向量定义与意义前言1. 词的表示1.1 离散表示1.1.1 One-Hot独热编码1.1.2 ngram特征表示1.2 分布式表示2. 意义前言 在自然语言处理的领域中,每个单词都可以被表示为一个向量,这些向量叫做“词向量”。换句话说,每个单词…

什么是词向量?(NPL入门)

什么是词向量&#xff1f; 我们组实训选择的主题是与自然语言识别相关的&#xff0c;那么就不得不学习和了解一下自然语言识别中非常重要和基础的。于是我对于自己对词向量的学习进行了以下的总结。 简而言之&#xff0c;词向量技术是将词转化成为稠密向量&#xff0c;并且对…

词向量表示

目录 1、语言表示 1.1、分布假说 1.2、语言模型 2、词向量表示 2.1、词向量表示之one-hot 2.2、词带模型之 &#xff08;Bag of Words&#xff09; 2.3、词的分布式表示 2.3.1 基于矩阵的分布式表示 2.3.2 基于聚类的分布式表示 2.4基于神经网络的分布式表示 2.4.1、…

词向量简介

最近深度学习技术有了突飞猛进的发展&#xff0c;为语音识别、图像识别、自然语言处理&#xff08;NLP&#xff09;提供了强大的工具&#xff0c;为这些领域今后的快速发展提供了新的契机。 深度学习为自然语言处理带来的最令人兴奋的突破是词向量&#xff08;word embedding&…

词向量

词向量是自然语言处理中重要的基础&#xff0c;有利于我们对文本、情感、词义等等方向进行分析&#xff0c;主要是将词转化为稠密向量&#xff0c;从而使得相似的词&#xff0c;其词向量也相近。 一、词向量的表示 词向量的表示通常有两种方式&#xff0c;一种是离散的&#x…

【深度学习】NLP基础--词向量(从One-hot到Word2Vec)

1.什么是词向量 在自然语言处理中&#xff0c;面临的首要问题是如何让模型认识我们的文本信息&#xff0c;比如向模型中输入‘我爱北京天安门’&#xff0c;那模型是如何认识文本的&#xff1f;词&#xff0c;是自然语言处理中基本单位&#xff0c;将数据输入到模型中&#xff…

关键词提取代码

我又来水博客了&#xff0c;今天我做了关键词提取算法。 代码我会上传到我的github中去&#xff0c;这个算法需要stopword和corpus两个txt格式&#xff0c;导入的时候&#xff0c;会出现下面的错误 gbk codec cant decode byte 0x80 in position 26: illegal multibyte seque…