本文介绍: 因为文本不能够直接被模型计算,所以需要将其转化为向量。
因为文本不能够直接被模型计算,所以需要将其转化为向量
把文本转化为向量有两种方式:
一、one-hot 编码
在one-hot编码中,每一个token使用一个长度为N的向量表示,N表示词典的数量。
即:把待处理的文档进行分词或者是N-gram处理,然后进行去重得到词典。
弊端:我们有1万个词的时候,编码很长,而且只有一个位置的1有效。使用稀疏向量表示文本,占用空间比较大。
二、word embedding编码
word embedding是深度学习中表示文本常用的一种方法。和one-hot编码不同,word embedding使用了浮点型的稠密矩阵来表示token。根据词典的大小,我们的向量通常使用不同的维度,例如100,256,300等。其中向量中的每一个值是一个超参数,其初始值是随机生成的,之后会在训练的过程中进行学习中获得。Word embedding 的目标是捕捉词语之间的语义关系,使得相似含义的词在向量空间中的表示更为接近。
如果我们文本中有20000个词语,如果使用one-hot编码,那么我们会有20000*20000的矩阵,其中大多数的位置都为0,但是如果我们使用word embedding来表示的话,只需要20000*维度,比如20000*300的形象表示就是:
我们会把所有的文本转化为向量,把句子用向量来表示
在这之间,我们会先把token使用数字来表示再把数字用向量来表示
即:token —> num —> vector。
比如,dog是1,cat是2,lion是3,然后再将1、2、3转化为向量。
2.1 word embedding数据形状转化
2.2 word embedding API
2.3数据形状的变化
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。