颍上网站建设,经典网站源码,兴宁房产网,网站建设 中企动力洛阳分公司目录
一.分词
1.分词工具
2.分词的方法
3.N-gram表示方法
二.向量化
1.one-hot编码
2.word embedding
3.word embedding API
4.数据形状改变 既然是自然语言#xff0c;那么就有字#xff0c;词#xff0c;句了
一.分词
1.分词工具
tokenization#xff0c;jie…目录
一.分词
1.分词工具
2.分词的方法
3.N-gram表示方法
二.向量化
1.one-hot编码
2.word embedding
3.word embedding API
4.数据形状改变 既然是自然语言那么就有字词句了
一.分词
1.分词工具
tokenizationjieba清华大学的分词工具THULAC等等
2.分词的方法
对于中文我们可用把句子分为词语或者字比如我爱那个姑娘可以分为[我爱那个姑娘]或者[我爱那个姑娘]
对于英文来说直接按照空格分就可以了
3.N-gram表示方法
前面我们说句子可以分为单个字或者词但是有些时候我们要用到三个字四个字五个字等等这些词语来表示而N-gram就是用来将句子分为一组一组的词语N表示能够被一起使用的字或者词的数量
import jieba
s很多深度学习算法中都会包含神经网络这个词比如卷积神经网络、循环神经网络
cutedjieba.lcut(s)
# 这里就是N-grad方法这里的N2两个词的意思
[cuted[i:i2] for i in range(len(cuted)-1)]
print(cuted)
运行后打印出[[很多, 深度], [深度, 学习], [学习, 算法], [算法, 中], [中, 都], [都, 会], [会, 包含], [包含, ], [, 神经网络], [神经网络, ], [, 这个], [这个, 词], [词, ], [, 比如], [比如, ], [, 卷积], [卷积, 神经网络], [神经网络, 、], [、, 循环], [循环, 神经网络]]
二.向量化
因为计算机不能识别文字所以要把文字向量化转化成数字形式
1.one-hot编码
在one-hot编码中每一个字词使用一个长度为N的向量表示N表示token的数量。比如我们要对“深度学习”进行分词one-hot处理 2.word embedding
这个方法是深度学习中常用的方法word embadding使用了浮点型的稠密矩阵来表示token。根据需要分词的文本我们的向量通常采用不同的维度比如100256300等等。其中向量中的每一个值都是参数其初始值是随机生成的之后会在训练的过程中不断的学习改进获得
比如一个文本中有10000个字词如果使用one-hot编码那么生成的矩阵就是10000*10000的大小而且每个字词的代表向量基本是用0组成的。而用word embedding来表示的画只需要10000*200或者10000*300大小的矩阵。 我们把所有文本转化为向量把句子用向量来表示。但是在着中间我们先把token使用数字来表示在把数字用向量来表示因为文字计算机识别不了。token-----num-----vector
3.word embedding API
在torch中导入torch.nn.Embedding(num_embeddings, embedding_dim)。其中num_embedding表示词典的大小embedding_dim表示embedding的维度也就是上面说的100256300等等。
4.数据形状改变
比如每一个batch中的每个句子有十个词语经过形状为[204]的word emebedding之后原来的句子会变成[batch_size,10,4]的形状。相当于增加了一个维度比如二维数据变成三维
关注我持续更新