使用Word Embedding+Keras进行自然语言处理NLP

目录

 介绍:

one-hot: 

 pad_sequences:

 建模:

 介绍:

Word Embedding是一种将单词表示为低维稠密向量的技术。它通过学习单词在文本中的上下文关系,将其映射到一个连续的向量空间中。在这个向量空间中,相似的单词在空间中的距离也比较接近,具有相似含义的单词在空间中的方向也比较一致。

Word Embedding可以通过各种方法来实现,包括基于统计的方法(如Word2Vec和GloVe)和基于神经网络的方法(如Skip-gram和CBOW模型)。这些方法通常使用大量的文本语料库来学习单词的向量表示。

Word Embedding在自然语言处理任务中广泛应用,如文本分类、情感分析、机器翻译等。由于Word Embedding能够捕捉到单词之间的语义关系,使得计算机能够更好地理解和处理自然语言。

one-hot: 

from tensorflow.keras.preprocessing.text import one_hot中的one_hot函数用于将文本数据进行one-hot编码。

在自然语言处理任务中,文本通常需要进行预处理和编码才能用于训练模型。其中,one-hot编码是一种常用的文本编码方式,它将每个单词映射到一个唯一的整数索引,并将索引表示为一个独热向量。独热向量是一个稀疏向量,只有一个元素为1,其余元素为0,该元素的位置对应着单词的索引。

通过使用one_hot函数,可以将文本数据中的单词转换为对应的整数索引,方便后续处理和模型训练。该函数接受两个参数:文本数据和词汇表大小。它会根据词汇表的大小,将文本数据中的每个单词映射到一个唯一的整数索引,并返回一个编码后的整数列表。这些整数可以用作模型的输入或特征表示。

 

### sentences
sentences=[  'the glass of milk','the glass of juice','the cup of tea','I am a good boy','I am a good developer','understand the meaning of words','your videos are good',]### Vocabulary size
voc_size=10000onehot_repr=[one_hot(words,voc_size) for words in sentences] 
print(onehot_repr)'''结果:
[[1607, 1898, 6281, 9401], [1607, 1898, 6281, 3401], [1607, 6359, 6281, 2217], [7508, 378, 2733, 8693, 7438], [7508, 378, 2733, 8693, 5363], [8292, 1607, 4448, 6281, 8555], [1825, 3648, 3717, 8693]]'''

 pad_sequences:

pad_sequences函数是用于将序列数据进行填充(Padding)或截断(Truncation)的方法。在自然语言处理任务中,文本通常是以序列的形式表示的,例如句子或文档中的单词序列。这些序列的长度可能不一致,为了在神经网络中进行处理,需要将它们转换为相同长度的序列。

pad_sequences函数可以根据指定的最大长度对序列进行填充或截断操作。如果序列长度小于最大长度,则会在序列的末尾添加特定的填充值(通常是0),使得序列长度与最大长度相同。如果序列长度大于最大长度,则会从序列的末尾进行截断,使得序列长度与最大长度相同。

填充或截断序列可以确保在输入神经网络之前,所有的序列具有相同的长度。这对于训练机器学习模型非常重要,因为神经网络需要一个固定长度的输入。此外,在进行批量训练时,将数据转换为相同长度的序列可以提高计算效率。

from tensorflow.keras.layers import Embedding
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequentialimport numpy as npsent_length=8
embedded_docs=pad_sequences(onehot_repr,padding='pre',maxlen=sent_length)
print(embedded_docs)'''结果:
[[   0    0    0    0 1607 1898 6281 9401][   0    0    0    0 1607 1898 6281 3401][   0    0    0    0 1607 6359 6281 2217][   0    0    0 7508  378 2733 8693 7438][   0    0    0 7508  378 2733 8693 5363][   0    0    0 8292 1607 4448 6281 8555][   0    0    0    0 1825 3648 3717 8693]]
'''

 建模:

dim=10model=Sequential()
model.add(Embedding(voc_size,dim,input_length=sent_length))
model.compile('adam','mse')model.summary()

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

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

相关文章

Java运算符和表达式

Java运算符和表达式 和C语言一样,java也有基础的运算符和表达式,用来完成一些基础的数学计算,以及逻辑运算,我们一起来学习一下吧。 算数运算符 首先,这个算数运算符与数学中即C语言的运算符的功能一样,利…

OpenCV基础:用Python生成一幅黑白图像

使用Python:生成一幅左黑右白的灰度图像,图像大小为1616像素。借助OpenCV库。输出数值,并显示图像。 # -*- coding: utf-8 -*- """ Created on Wed Feb 14 21:45:45 2024author: 李立宗公众号:计算机视觉之光知识…

Java基于微信小程序的医院挂号系统

文章目录 1 简介2 技术栈3 系统目标3.2 系统功能需求分析3.2.1 功能需求分析 4 系统模块设计4.1 数据库模块设计 5 系统的实现5.1 微信小程序个人中心5.2 科**室内容查看的实现**5.3 预约挂号的实现5.4 后台管理界面实现5.5 医生预约管理5.6 医生信息管理 参考文献7 推荐阅读8 …

随机过程及应用学习笔记(二)随机过程的基本概念

随机过程论就是研究随时间变化的动态系统中随机现象的统计规律的一门数学学科。 目录 前言 一、随机过程的定义及分类 1、定义 2、分类 二、随机过程的分布及其数字特征 1、分布函数 2、数字特征 均值函数和方差函数 协方差函数和相关函数 3、互协方差函数与互相关函…

每日五道java面试题之java基础篇(七)

第一题. HashMap和HashTable有什么区别?其底层实现是什么? 区别 : HashMap⽅法没有synchronized修饰,线程⾮安全,HashTable线程安全;HashMap允许key和value为null,⽽HashTable不允许 底层实现…

AI:125-基于深度学习的航拍图像中地物变化检测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Linux命令行全景指南:从入门到实践,掌握命令行的力量

目录 知识梳理思维导图: linux命令入门 为什么要学Linux命令 什么是终端 什么是命令 关于Linux命令的语法 tab键补全 关于命令提示符 特殊目录 常见重要目录 /opt /home /root /etc /var/log/ man命令 shutdown命令 history命令 which命令 bash…

C# OCR识别图片中的文字

1、从NuGet里面安装Spire.OCR 2、安装之后,找到安装路径下,默认生成的packages文件夹,复制该文件夹路径下的 6 个dll文件到程序的根目录 3、调用读取方法 OcrScanner scanner new OcrScanner(); string path "C:\1.png"; scann…

算法刷题:盛水最多的容器

盛水最多的容器 .习题链接题目题目解析算法原理我的答案 . 习题链接 盛水最多的容器 题目 题目解析 VH*W h为左右两边低的一边,w为左右两边之间的距离 算法原理 定义两个指针 left0,rightn-1; left从左往右对数组进行遍历,right从右往左进行遍历 遍历的过程中,每一次都需要…

2000-2021年县域指标统计数据库

2000-2021年县域统计数据库 1、时间:2000-2021年 2、来源:县域统计年鉴 3、范围:2500县 5、指标: 地区名称、年份、行政区域代码、所属城市、所属省份、行政区域土地面积平方公里、乡及镇个数个、乡个数个、镇个数个、街道办…

锁(二)队列同步器AQS

一、队列同步器AQS 1、定义 用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。是实现锁的关键。 2、实现 同步器的设计是基于模板方法模式的,也就是说&#…

【刷题记录】——时间复杂度

本系列博客为个人刷题思路分享,有需要借鉴即可。 1.目录大纲: 2.题目链接: T1:消失的数字:LINK T2:旋转数组:LINK 3.详解思路: T1: 思路1:先排序&#xf…

Android:国际化弹出框

3.13 风格与主题、国际化 1、应用国际化 应用国际化&#xff0c;通过修改系统语言&#xff0c;应用显示语言跟着改变。 选择Locale,点击>>符号。 创建多个国家&#xff0c;地区strings.xml文件&#xff0c;有一个默认strings.xml文件&#xff0c;各个stirngs.xml中<…

MySQL数据库⑨_事务(四个属性+回滚提交+隔离级别+MVCC)

目录 1. 事务的概念和四个属性 2. 事务的支持版本 3. 事务的提交方式 4. 事务的相关演示 4.1 常规操作_回滚_提交 4.2 原子性_演示 4.3 持久性_演示 4.4 begin自动更改提交方式 4.5 单条SQL与事务的关系 5. 事务的隔离级别 5.1 四种隔离级别 5.2 查看与设置隔离级别…

mfc110.dll是什么?解决mfc110.dll丢失windows系统常见问题

今天我在打开电脑软件时候&#xff0c;突然报错出现找不到mfc110.dll丢失&#xff0c;无法打开软件&#xff0c;我不知道是什么原因&#xff0c;后面找了很久才找到解决方法&#xff0c;那么mfc110.dll是什么&#xff1f;为什么会丢失和mfc110.dll解决方法是什么&#xff0c;今…

【Web】Redis未授权访问漏洞学习笔记

目录 简介 靶机配置 Redis持久化 Redis动态修改配置 webshell 反弹shell Redis写入反弹shell任务 加固方案 简介 Redis&#xff08;Remote Dictionary Server 远程字典服务器&#xff09;是一个开源的内存数据库&#xff0c;也被称为数据结构服务器&#xff0c;它支持…

CSS介绍

本章目标&#xff1a; CSS概述 三种样式表 简单选择器 复合选择器 盒子模型 常用背景样式 浮动 常用文本样式 伪类样式 列表样式 表格样式 定位 一、CSS概述: CSS&#xff1a;cascading style sheets-层叠样式表 专门负责对网页的美化 二、有三种使用方式&…

《金融人工智能:用python实现ai量化交易》

融合了数学、python、深度学习以及金融知识&#xff0c;是本推荐的好书。请收藏本文&#xff0c;读后再给大学总结。

解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?

作者&#xff1a;饶子昊、杨龙 应用复杂度提升&#xff0c;根因定位困难重重 随着软件技术发展迭代&#xff0c;很多企业软件系统也逐步从单体应用向云原生微服务架构演进&#xff0c;一方面让应用实现高并发、易扩展、开发敏捷度高等效果&#xff0c;但另外一方面也让软件应…

剑指offer——二进制中1的个数

目录 1. 题目描述2. 可能引起死循环的想法3. 改进后的代码4. 给面试官惊喜的代码 1. 题目描述 请实现一个函数&#xff0c;输入一个整数&#xff0c;输出该数二进制表示中1的个数。例如把9表示成二进制位1001&#xff0c;有2位是1&#xff0c;因此如果输入9&#xff0c;该函数输…