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

目录

一.分词

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

关注我持续更新!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/394064.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】二叉搜索树(Java + 链表实现)

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构、LeetCode专栏 📚本系…

【DOCKER】显示带UI的软件

1. Linux 1.1 宿主机开放X server权限 xhost 1.2 启动容器 docker run -it --rm --privilegedtrue --useru20 --workdir/home/u20 \ -e DISPLAYhost.docker.internal:0 u20:dev1.3 测试 # 安装测试软件 sudo apt-get -y install x11-apps# 显示测试程序 xclock2. Windows …

LearnOpenGL-光照章节学习笔记

LearnOpenGL-光照章节学习笔记 颜色创建一个光照场景 基础光照一、环境光照二、漫反射光照三、镜面反射 材质光照贴图一、漫反射贴图二、镜面光贴图三、放射光贴图 投光物一、平行光二、点光源衰减实现 三、聚光灯平滑边缘 多光源一、平行光(定向光)二、…

免费代理池是什么,如何使用代理IP进行网络爬虫?

互联网是一个庞大的数据集合体,网络信息资源丰富且繁杂,想要从中找到自己需要的信息要花费较多的时间。为了解决这个问题,网络爬虫技术应运而生,它的主要作用就是在海量的互联网信息中进行爬取,抓取有效信息并存储。然…

广州城市信息模型(CIM)白皮书学习

CIM平台定义 以建筑信息模型(BIM)、地理信息系统(GIS)、物联网(IoT)等技术为基础,整合城市地上地下、室内室外、历史现状未来多维多尺度信息模型数据和城市感知数据,构建起三维数字空间的城市信息有机综合体。 广州CIM平台建设历程 2019 年 6 月住房和…

动手学深度学习V2每日笔记(深度卷积神经网络AlexNet)

本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1h54y1L7oe/spm_id_from333.788.recommend_more_video.0&vd_sourcec7bfc6ce0ea0cbe43aa288ba2713e56d 文档教程 https://zh-v2.d2l.ai/ 本文的主要内容对沐神提供的代码中个人不太理解的内容进行笔记记录&…

13021.Nvidia AGX orin 平台学习记录

文章目录 1 Jetson AGX 开发板编译环境搭建1.1 官方资料包下载1.2 开发者手册1.2.1 安装jetpack 2 更新Image文件2.1 自编译的Image内核文件更新到系统 3 编译文档3.1 编译内核步骤3.1.1 下载kernel_src 源码包3.1.2 编译内核 3.2 编译内核工具链下载3.2 orin 介绍 4 csi_trace…

Shell定时上传日志到HDFS

Shell定时上传日志到HDFS 一、任务需求二、实现思路三、具体实现流程3.1 规划文件上传目录3.2 开发 shell 脚本3.3 授予 shell 可执行权限3.4 手动执行查看3.4 定时执行 shell 脚本 一、任务需求 公司在线服务器每天都会产生网站运行日志,为了避免志文件过大&#…

QT Word文档控件QAxWidget C++退出

我们知道每次加载word控件&#xff0c;都会导致后台启动一个WINWORD.EXE 如何安全退出呢 1、一个最简单的例子 QT core gui axcontainer MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QAxWidget> #include…

【强化学习的数学原理】课程笔记--6(Actor-Critic方法)

目录 Actor-Critic 方法QAC 算法Advantage Actor-Critic 算法Baseline invariance Off-policy Actor-Critic重要性采样 Deterministic Policy Gradient (DPG) 系列笔记&#xff1a; 【强化学习的数学原理】课程笔记–1&#xff08;基本概念&#xff0c;贝尔曼公式&#xff09; …

Java哈希算法

哈希算法 哈希算法1.概述2.哈希碰撞3.常用的哈希算法4.哈希算法的用途4.1校验下载文件4.2存储用户密码MD5加密5.SHA-1加密小结&#xff1a; 哈希算法 1.概述 哈希算法&#xff08;Hash&#xff09;又称摘要算法&#xff08;Digest&#xff09;&#xff0c;它的作用是&#xf…

[软件测试·研究向] MuJava 工具遇到的问题汇总和体会

MuJava 是初学者&#xff08;研究向&#xff09;常常会去使用的一个工具&#xff0c;也是 Java 软件测试的一个老牌工具。用于为 Java 代码生成变异体和运行单元测试。但是此工具已经有十年没有更新了&#xff0c;这款软件可以说现在已经不能够支持对主流软件框架运行测试。但是…

软考-软件设计师 (计算机组成和体系结构习题)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

优秀的行为验证码的应用场景与行业案例

应用场景 登录注册 &#xff1a; 验证码适用于App、Web及小程序等用户注册场景&#xff0c;可以抵御自动机恶意注册&#xff0c;垃圾注册、抵御撞库登录、暴力破解、验证账号敏感信息的修改&#xff0c;同时可以有效阻止撞库攻击&#xff0c;从源头进行防护&#xff0c;保障正…

ip地址冲突会影响整个网络吗

在数字化时代&#xff0c;网络已成为连接世界的桥梁&#xff0c;而IP地址则是这座桥梁上不可或缺的“门牌号”。然而&#xff0c;当这个独特的身份标识出现冲突时&#xff0c;整个网络的稳定运行将面临严峻挑战。IP地址冲突&#xff0c;这一看似微小的技术问题&#xff0c;实则…

【电路笔记】-无源衰减器

无源衰减器 文章目录 无源衰减器1、概述2、简单衰减器3、无源衰减器示例14、无源衰减器设计5、切换式衰减器6、总结无源衰减器是一种特殊类型的电气或电子双向电路,由完全电阻元件组成。 1、概述 无源衰减器基本上是两个端口电阻网络,旨在将电源提供的功率削弱或“衰减”(因…

递归深度问题和尾调用的关系

当我们在编写计算阶乘的函数&#xff0c;一般我们都会会选择使用迭代或递归的方法来实现。下面就让我们看看&#xff0c;同一个函数的两种实现方法。首先&#xff0c;是使用迭代方式实现的函数&#xff0c;我们使用循环的方式来计算阶乘&#xff1a; // 阶乘函数&#xff0c;计…

java之多线程篇

一、基本概念 1.什么是线程&#xff1f; 线程就是&#xff0c;操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。简单理解就是&#xff1a;应用软件中互相独立&#xff0c;可以同时运行的功能 2.什么是多线程&#xff1f; 有了多线…

无人机之飞行控制系统篇

一、飞行控制系统组成 包括惯性测量单位、GPS接收机、气压高度计、空速计等传感器&#xff0c;以及飞控计算机、伺服作动器等设备。 二、飞行控制原理 通过传感器实时感知无人机的飞行状态&#xff0c;将数据传输给飞控计算机进行处理&#xff0c;计算机再根据预设的飞行计划和…

13-按键的元件模型创建

1.画线的时候&#xff0c;栅格切为10mil 2.放置管脚的时候&#xff0c;栅格切为100mil