使用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=10000

onehot_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 Sequential

import numpy as np

sent_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=10

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

model.summary()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实现JNDI

实现JNDI 问题陈述 Smart Software Developer Ltd.想要开发一款Web应用程序,它使用servlt基于雇员ID显示雇员信息,雇员ID由用户通过HTML用户界面传递。雇员详细信息存储在Employee_Master表中。另外,Web应用程序应显示网站被访问的次数。 解决方案 要解决上述问题,需要执…

2024.2.6 模拟实现 RabbitMQ —— 数据库操作

目录 引言 选择数据库 环境配置 设计数据库表 实现流程 封装数据库操作 针对 DataBaseManager 单元测试 引言 硬盘保存分为两个部分 数据库:交换机(Exchange)、队列(Queue)、绑定(Binding&#xff0…

腾讯云4核8G服务器够用吗?能支持多少人?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

webpack面试解析

参考: 上一篇webpack相关的系列:webpack深入学习,搭建和优化react项目 爪哇教育字节面试官解析webpack-路白 1、Webpack中的module是什么? 通常来讲,一个 module 模块就是指一个文件中导出的内容,webpack…

全国计算机等级考试二级,MySQL数据库考试大纲(2023年版)

基本要求: 1.掌握数据库的基本概念和方法。 2.熟练掌握MySQL的安装与配置。 3.熟练掌握MySQL平台下使用SQL语言实现数据库的交互操作。 4.熟练掌握 MySQL的数据库编程。 5.熟悉 PHP 应用开发语言,初步具备利用该语言进…

Vue-自定义属性和插槽(五)

目录 自定义指令 基本语法 (全局&局部注册) 指令的值 练习:v-loading 指令封装 总结: 插槽(slot) 默认插槽 插槽 - 后备内容(默认值) 具名插槽 具名插槽基本语法: 具名插槽简化语法: 作…

RocksDB:高性能键值存储引擎初探

在现代的分布式系统和大数据应用中,一个高效、可靠的存储引擎是不可或缺的。RocksDB,由Facebook于2012年开发并随后开源,正是为了满足这类需求而诞生的。它是一个持久化的键值存储系统,特别适合在闪存(Flash&#xff0…

AtCoder Beginner Contest 340 C - Divide and Divide【打表推公式】

原题链接:https://atcoder.jp/contests/abc340/tasks/abc340_c Time Limit: 2 sec / Memory Limit: 1024 MB Score: 300 points 问题陈述 黑板上写着一个整数 N。 高桥将重复下面的一系列操作,直到所有不小于2的整数都从黑板上移除: 选择…

SCI论文作图规范

SCI论文作图规范包括以下几个方面: 一、图片格式 SCI论文通常接受的图片格式包括TIFF、EPS和PDF等。其中,TIFF格式是一种高质量的图像格式,适用于需要高分辨率和颜色准确性的图片;EPS格式是一种矢量图形格式,适用于需…

Leetcode 1035 不相交的线

题意理解: 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] nums2[j]且绘制的直线不与任何其他连线&#xff…

Spring 事务

Spring 事务传播(Propagation)特性 REQUIRED 支持一个当前的事务,如果不存在创建一个新的。SUPPORTS 支持一个当前事务,如果不存在以非事务执行。MANDATORY 支持一个当前事务,如果不存在任何抛出异常。REQUIRES_NEW 创…

百面嵌入式专栏(面试题)驱动开发面试题汇总 2.0

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。 1、Linux系统的组成部分? Linux内核、Linux文件系统、Linux shell、Linux应用程序。 2、Linux内核的组成部分? (1)第一种分类方式:内存管理子系统、进程管理子系统、文件管理子系…

react【六】 React-Router

文章目录 1、Router1.1 路由1.2 认识React-Router1.3 Link和NavLink1.4 Navigate1.5 Not Found页面配置1.6 路由的嵌套1.7 手动路由的跳转1.7.1 在函数式组件中使用hook1.7.2 在类组件中封装高阶组件 1.8 动态路由传递参数1.9 路由的配置文件以及懒加载 1、Router 1.1 路由 1.…

VC++ 绘制折线学习

win32 有三个绘制折线的函数; Polyline,根据给定点数组绘制折线; PolylineTo,除了绘制也更新当前位置; PolyPolyline,绘制多条折线,第一个参数是点数组,第二个参数是一个数组、指…

论文阅读-One for All : 动态多租户边缘云平台的统一工作负载预测

论文名称:One for All: Unified Workload Prediction for Dynamic Multi-tenant Edge Cloud Platforms 摘要 多租户边缘云平台中的工作负载预测对于高效的应用部署和资源供给至关重要。然而,在多租户边缘云平台中,异构的应用模式、可变的基…

HTTP的基本格式

HTTP的基本格式 .HTTPhttp的协议格式HTTPhttp的协议格式 . HTTP 应用层,一方面是需要自定义协议,一方面也会用到一些现成的协议. HTTP协议,就是最常用到的应用层协议. 使用浏览器,打开网站,使用手机app,加载数据,这些过程大概率都是HTTP来支持的 HTTP是一个超文本传输协议, 文…

家政小程序系统源码开发:引领智能生活新篇章

随着科技的飞速发展,小程序作为一种便捷的应用形态,已经深入到我们生活的方方面面。尤其在家庭服务领域,家政小程序的出现为人们带来了前所未有的便利。它不仅简化了家政服务的流程,提升了服务质量,还为家政服务行业注…

最新wordpress外贸主题

日用百货wordpress外贸主题 蓝色大气的wordpress外贸主题,适合做日用百货的外贸公司搭建跨境电商网站使用。 https://www.jianzhanpress.com/?p5248 添加剂wordpress外贸建站主题 橙色wordpress外贸建站主题,适合做食品添加剂或化工添加剂的外贸公司…

pm2启动的node项目访问不了,npm start却可以访问

netstat -ntlp输入该命令,查看启动的服务端口是否有被监听到,如3001,4000之类的,是node项目启动时候自己配的那个, 若没有,则执行 pm2 delete [app-id/app-name] 先删除启动的这个项目 例如pm2 delete my…

【电路笔记】-并联电感

并联电感 文章目录 并联电感1、概述2、并联电感示例13、互耦并联电感器4、并联电感示例25、并联电感示例36、总结当电感器的两个端子分别连接到另一个或多个电感器的每个端子时,电感器被称为并联连接在一起。 1、概述 所有并联电感器上的压降将是相同的。 然后,并联的电感器…