循环神经网络和自然语言处理一

目录

一.分词

1.分词工具

2.分词的方法

3.N-gram表示方法

二.向量化

1.one-hot编码

[2.word embedding](#2.word embedding)

[3.word embedding API](#3.word embedding API)

4.数据形状改变


既然是自然语言,那么就有字,词,句了

一.分词

1.分词工具

tokenization,jieba,清华大学的分词工具THULAC等等

2.分词的方法

对于中文我们可用把句子分为词语或者字,比如我爱那个姑娘,可以分为我,爱,那个,姑娘,或者我,爱,那,个,姑,娘

对于英文来说直接按照空格分就可以了

3.N-gram表示方法

前面我们说句子可以分为单个字或者词,但是有些时候我们要用到三个字,四个字,五个字等等这些词语来表示,而N-gram就是用来将句子分为一组一组的词语,N表示能够被一起使用的字或者词的数量

python 复制代码
import jieba
s='很多深度学习算法中都会包含"神经网络"这个词,比如:卷积神经网络、循环神经网络'
cuted=jieba.lcut(s)
# 这里就是N-grad方法,这里的N=2,两个词的意思
[cuted[i:i+2] 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。根据需要分词的文本,我们的向量通常采用不同的维度,比如100,256,300等等。其中向量中的每一个值都是参数,其初始值是随机生成的,之后会在训练的过程中不断的学习改进获得

比如一个文本中有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的维度也就是上面说的100,256,300等等。

4.数据形状改变

比如每一个batch中的每个句子有十个词语,经过形状为20,4的word emebedding之后,原来的句子会变成batch_size,10,4的形状。相当于增加了一个维度,比如二维数据变成三维

关注我持续更新!!!

相关推荐
混沌福王1 小时前
Electron三端统一架构:运行时Adapter、IPC能力边界与分层设计
人工智能·agent·ai编程
说了很好1 小时前
马尔可夫扩散链+损失函数推导,手把手实现原生Diffusion
人工智能
聂二AI落地内参1 小时前
合同抽取别停在 JSON:标准规则和交易日历才是硬仗
人工智能
冬哥聊AI2 小时前
滴滴Agent岗二面:RAG 系统的 LLM 幻觉怎么治?从两类根源讲到四道防线
人工智能
lyshlc2 小时前
# AI Agent的推迟判定协议:不确定性下的最优策略
人工智能
用户329901675052 小时前
用zod在运行时兜住AI返回的JSON
人工智能
George3752 小时前
第一章:本体论是什么(以及它不是什么)
人工智能
贵慜_Derek2 小时前
《从零实现 Agent 系统》连载 32|闭集 IE 与小模型:分类、意图与字段抽取
人工智能·架构·agent
IT_陈寒2 小时前
Java 并行流把我坑惨了,这6小时加班值了
前端·人工智能·后端
火山引擎开发者社区3 小时前
告别长期密码:火山引擎云数据库 MySQL IAM 鉴权全解析
人工智能