首页 > 其他分享 >循环神经网络和自然语言处理一

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

时间:2024-08-08 19:54:50浏览次数:14  
标签:word 神经网络 循环 embedding 10000 自然语言 分词 向量

目录

一.分词

1.分词工具

2.分词的方法

3.N-gram表示方法

二.向量化

1.one-hot编码

2.word embedding

3.word embedding API

4.数据形状改变


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

一.分词

1.分词工具

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

2.分词的方法

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

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

3.N-gram表示方法

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

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]的形状。相当于增加了一个维度,比如二维数据变成三维

关注我持续更新!!!

标签:word,神经网络,循环,embedding,10000,自然语言,分词,向量
From: https://blog.csdn.net/m0_73426548/article/details/141001230

相关文章

  • 【人工智能】【机器学习】-好书推荐之《Python神经网络编程》
    目录内容概览编程环境面向对象学习目标如果你是想要自学机器学习相关知识的读者,我相信看完这篇文章的介绍后,你会对机器学习有更清晰的认识。帮助你走进机器学习的殿堂。《Python神经网络编程》(原书名:MakeYourOwnNeuralNetwork)是一本深度学习领域的入门级书籍,由Tar......
  • 卷积神经网络--卷积层(斯坦福李飞飞学习笔记)
    卷积核对于图像分类任务,常见的卷积核(kernel)大小可以是3x3、5x5个像素点注意一下词汇的辨析:kernel是二维的,也就是每一层的卷积核大小;filter表示的是三维的,所以可以看到ppt里面的filter展示的是5*5*3,因为kernel的大小是5*5,同时放入的图像是RGB类型,总共3个像素层,所以三维的filt......
  • Kotlin 循环与函数详解:高效编程指南
    Kotlin循环当您处理数组时,经常需要遍历所有元素。要遍历数组元素,请使用for循环和in操作符:示例输出cars数组中的所有元素:valcars=arrayOf("Volvo","BMW","Ford","Mazda")for(xincars){println(x)}您可以遍历各种类型的数组。在上面的示例中,我们使用了......
  • 【Canvas与艺术】黑色三角循环标志
    【关键点】复数与三角函数【成图】【代码】<!DOCTYPEhtml><htmllang="utf-8"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><head><title>黑色三角循环标志</title><styletype=&......
  • 循环字符串
    循环字符串题目描述给定长度为$n$的字符串,有$m$次操作,每次操作都是以下三种之一:一:$0,l,r,c$;把$[l,r]$的每个位置的字符都替换为字母$c$,保证字符串和$c$都是小写字母。二:$1,l,r$;询问子串$s_l​s_{l+1}​\ldotss_{r−1}s_r$​的最小循环节长度。三:$2,l,r$;询......
  • 人工神经网络是什么
    深度学习(DeepLearning)这一概念是由 GeoffreyHinton(深度学习之父)于2006年提出,但它的起源时间要早得多,可追溯至20世纪四五十年代,也就是人类刚刚发明出电子计算机时就已经提出来了,但当时并非叫做深度学习,而是人工神经网络(artificialneuralnetwork,ANN),简称神经网络(NN),它是......
  • 神经网络之卷积篇:详解更多边缘检测内容(More edge detection)
    详解更多边缘检测内容已经见识到用卷积运算实现垂直边缘检测,在本博客中,将看到如何区分正边和负边,这实际就是由亮到暗与由暗到亮的区别,也就是边缘的过渡。还能了解到其他类型的边缘检测以及如何去实现这些算法,而不要总想着去自己编写一个边缘检测程序。这张6×6的图片,左边较亮,而......
  • 几种常见分类神经网络
    时间:2024年8月4日AlexNet(2012)背景AlexNet问世之前1.浅层网络结构主要使用较浅的神经网络,深层网络尚未广泛应用,限制了模型的表现力和复杂任务处理能力。2.依赖手工设计特征图像识别任务依赖手工设计的特征提取方法(如SIFT和HOG),需要大量领域知识进行特征工程。3.计算资......
  • 掌握循环控制:while 循环和循环控制语句
    1.引言    计算机的发明,就是去做一些我们人类不愿意去做的重复性工作,而这也是计算机真正厉害和好用的地方,循环(loop)本质上就是一种重复2.while函数    让我们看一下下面这段简单的代码例子n=5whilen>0:print(n)n=n-1print('over')......
  • for 循环入门:迭代与应用
    1.引言    在之前我们讨论了while循环,while循环会在每次循环前进行检验,符合标准才会进行循环,这种循环是不定循环,有不定循环就会有定循环,现在让我们来讨论一下定循环2.for键    for键是定循环的关键字(keyword)让我们来看一下下面的代码foriin[5,4,3,2,1]......