当前位置: 首页 > news >正文

nlp之文本转向量

文章目录

    • 代码
    • 代码解读

代码

from tensorflow.keras.preprocessing.text import Tokenizer  # 标记器(每一个词,以我们的数值做映射,)words = ['LaoWang has a Wechat account.', 'He is not a nice person.', 'Be careful.']  # 把这句话中每一个单词,映射成我们的数值
tokenizer = Tokenizer(num_words=15)  # 上面三句话中,词的总数不超过 15 个(估算的值), num_words 设置单词的数量
tokenizer.fit_on_texts(words)
word_index = tokenizer.word_index
print(word_index, len(word_index))
# 把文本转化为序列编码
sequences = tokenizer.texts_to_sequences(words)
print(sequences)
# 文本转化为矩阵
one_hot_matrix = tokenizer.texts_to_matrix(words, mode='binary')
# 向量化是构建神经网络的第一步
print(tokenizer.word_index.keys())
print(one_hot_matrix, one_hot_matrix.shape)

代码解读

逐行解读这段代码。

from tensorflow.keras.preprocessing.text import Tokenizer

tensorflow.keras.preprocessing.text模块导入Tokenizer类。Tokenizer用于文本标记,将每一个词映射为一个整数值。

words = ['LaoWang has a Wechat account.', 'He is not a nice person.', 'Be careful.']

定义了一个列表words,包含三个字符串。

tokenizer = Tokenizer(num_words=15)

创建一个Tokenizer对象,并设置参数num_words=15,意味着最大考虑15个单词。这不代表只有15个单词会被编码,而是在后续转换为矩阵时,只会考虑频率最高的前15个单词。

tokenizer.fit_on_texts(words)

调用fit_on_texts方法让tokenizerwords列表上进行学习,从而创建一个词到整数值的映射。

word_index = tokenizer.word_index

获取tokenizerword_index属性,它是一个字典,其中键是单词,值是单词对应的整数值。

print(word_index, len(word_index))

{‘a’: 1, ‘laowang’: 2, ‘has’: 3, ‘wechat’: 4, ‘account’: 5, ‘he’: 6, ‘is’: 7, ‘not’: 8, ‘nice’: 9, ‘person’: 10, ‘be’: 11, ‘careful’: 12} 12

打印word_index字典和它的长度。

sequences = tokenizer.texts_to_sequences(words)

调用texts_to_sequences方法将words列表中的文本转化为整数序列,保存到sequences中。

print(sequences)

[[2, 3, 1, 4, 5], [6, 7, 8, 1, 9, 10], [11, 12]]

打印sequences列表。

one_hot_matrix = tokenizer.texts_to_matrix(words, mode='binary')

调用texts_to_matrix方法将words列表中的文本转化为二进制矩阵,保存到one_hot_matrix中。二进制矩阵意味着,如果某个单词出现在文本中,它的位置会是1,否则是0。

print(tokenizer.word_index.keys())

dict_keys([‘a’, ‘laowang’, ‘has’, ‘wechat’, ‘account’, ‘he’, ‘is’, ‘not’, ‘nice’, ‘person’, ‘be’, ‘careful’])

打印word_index字典中所有的键(即所有的单词)。

print(one_hot_matrix, one_hot_matrix.shape)

[[0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 0. 0.]] (3, 15)

打印one_hot_matrix和它的形状。这个矩阵的每一行对应words列表中的一个文本,每一列对应一个单词。如果文本中有该单词,则该位置的值为1,否则为0。

总结:这段代码首先定义了一个文本列表,然后使用Tokenizer类将文本转化为整数序列,最后将文本转化为二进制矩阵。这是将文本数据预处理为可以输入到神经网络的形式的常见步骤。

相关文章:

nlp之文本转向量

文章目录 代码代码解读 代码 from tensorflow.keras.preprocessing.text import Tokenizer # 标记器(每一个词,以我们的数值做映射,)words [LaoWang has a Wechat account., He is not a nice person., Be careful.] # 把这句话中每一个单词&#xf…...

【luckfox】添加压力传感器hx711

文章目录 前言一、参考资料二、电路图三、驱动四、makefile——添加驱动五、dts——使能gpio5.1 参考5.2 改动1—— hx117节点5.3 改动2——引脚节点5.4 已经被定义的引脚5.5 gpio源码 六、改动总结——使能hx711七、验证驱动添加八、编写测试文件8.1 测试代码8.2 配置编译环境…...

C++11的lambda表达式

lambda来源于函数式编程的概念。C11这次终于把lambda加进来了。 lambda表达式有如下优点: 1、声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象。以更直接的方式去写程序,好的可读性和可维护…...

矩阵特征值与特征向量的理解

各位朋友大家好,我是小C哈哈哈,很高兴认识大家,在这里,我会将一些枯燥难懂的数学和算法知识以图片或动画的形式通俗易懂的展现给大家,希望大家喜欢。 线性代数中的矩阵特征值与特征向量这两个基本概念总是让很多人摸不…...

云原生安全:如何保护云上应用不受攻击

文章目录 云原生安全的概念1. 多层次的安全性2. 自动化安全3. 容器安全4. 持续监控5. 合规性 云原生安全的关键挑战1. 无边界的环境2. 动态性3. 多云环境4. 容器化应用程序5. API和微服务 如何保护云上应用不受攻击1. 身份验证和访问控制示例代码: 2. 数据加密示例代…...

如何在用pip配置文件设置HTTP爬虫IP

首先,定义问题:在 Pip 中设置HTTP爬虫IP服务器,以便在网络上进行访问和下载。 亲身经验:我曾经遇到过类似问题,通过设置HTTP爬虫IP服务器成功解决了网络访问问题。 数据和引证:根据 pip 官方文档&#xff…...

2023MathorCup高校数模挑战赛B题完整解题代码教程

赛道 B: 电商零售商家需求预测及库存优化问题 问题背景: 电商平台存在着上千个商家,他们会将商品货物放在电商配套的仓库, 电商平台会对这些货物进行统一管理。通过科学的管理手段和智能决策, 大数据智能驱动的供应链…...

《动手学深度学习 Pytorch版》 10.7 Transformer

自注意力同时具有并行计算和最短的最大路径长度这两个优势。Transformer 模型完全基于注意力机制,没有任何卷积层或循环神经网络层。尽管 Transformer 最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语…...

ORACLE-递归查询、树操作

1. 数据准备 -- 测试数据准备 DROP TABLE untifa_test;CREATE TABLE untifa_test(child_id NUMBER(10) NOT NULL, --子idtitle VARCHAR2(50), --标题relation_type VARCHAR(10) --关系,parent_id NUMBER(10) --父id );insert into untifa_test (CHILD_ID, TITLE, RELATION_TYP…...

MySQL篇---第四篇

系列文章目录 文章目录 系列文章目录一、并发事务带来哪些问题?二、事务隔离级别有哪些?MySQL的默认隔离级别是?三、大表如何优化?一、并发事务带来哪些问题? 在典型的应用程序中,多个事务并发运行,经常会操作相同的数据来完成各自的任务(多个用户对 同一数据进行操作…...

em/px/rem/vh/vw单位的区别

一、绝对长度单位 1.px 表示像素,显示器上每个像素点大小都是相同的 二、相对长度单位 2.em 相对于当前对象内文本的字体尺寸,如未设置对行内文本字体的尺寸,则相对于浏览器的默认字体(1em16px) em值不是固定的&…...

【C++】多态 ③ ( “ 多态 “ 实现需要满足的三个条件 | “ 多态 “ 的应用场景 | “ 多态 “ 的思想 | “ 多态 “ 代码示例 )

文章目录 一、" 多态 " 实现条件1、" 多态 " 实现需要满足的三个条件2、" 多态 " 的应用场景3、" 多态 " 的思想 二、" 多态 " 代码示例 一、" 多态 " 实现条件 1、" 多态 " 实现需要满足的三个条件 &q…...

创建一个Keil项目

1、创建项目 2、选择存放的文件夹,还有设置项目名 3、选择型号(因为没有STC,用下面这个替代,功能差不多) 4、选择不用启动文件 5、就会得到下面这个,可以在Source Group 1下面编写代码了 6、右键source Group 1,添加c语…...

Xray的简单使用

xray 简介 xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快。发包速度快; 漏洞检测算法效率高。支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均…...

Linux Ubunto Nginx安装

一 安装前 环境准备 gcc $ sudo apt-get install gcc zlib $ sudo apt-get install zlib1g-dev pcre $ sudo apt-get install libpcre3 libpcre3-dev openssl $ sudo apt-get install openssl libssl-dev‘ ubuntu 安装 libssl-dev失败的解决方案 1.安装aptitude sudo apt-g…...

深度学习中的epoch, batch 和 iteration

名词定义epoch使用训练集的全部数据进行一次完整的训练,称为“一代训练”batch使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这样的一部分样本称为:“一批数据”iteration使用一个batch的数据对模型进行一次参数更新的过…...

unity开发安卓视频文件适配手机和平板

using UnityEngine; using UnityEngine.UI;public class VideoResize : MonoBehaviour {private RawImage rawImage;private VideoPlayer videoPlayer;private void Start(){rawImage GetComponent<RawImage();videoPlayer GetComponent<VideoPlayer>();// 播放视频…...

NLP之RNN的原理讲解(python示例)

目录 代码示例代码解读知识点介绍 代码示例 import numpy as np import tensorflow as tf from tensorflow.keras.layers import SimpleRNNCell# 第t时刻要训练的数据 xt tf.Variable(np.random.randint(2, 3, size[1, 1]), dtypetf.float32) print(xt) # https://www.cnblog…...

yo!这里是进程间通信

目录 前言 进程间通信简介 目的 分类 匿名通道 介绍 举例&#xff08;进程池&#xff09; 命名管道 介绍 举例 共享内存 介绍 共享内存函数 1.shmget 2.shmat 3.shmdt 4.shmctl 举例 1.框架 2.通信逻辑 消息队列 信号量 同步与互斥 理解信号量 后记…...

使用docker安装MySQL,Redis,Nacos,Consul教程

文章目录 安装MySQL安装Redis安装Nacos安装Consul 如未安装docker&#xff0c;参考教程&#xff1a; https://blog.csdn.net/m0_63230155/article/details/134090090 安装MySQL #拉取镜像 sudo docker pull mysql:latestsudo docker run --name mysql \-p 3306:3306 \-e MYSQ…...

5分钟搞定USR-K5模块配置:串口转以太网通讯的保姆级教程

5分钟搞定USR-K5模块配置&#xff1a;串口转以太网通讯的保姆级教程 当你需要在嵌入式系统中快速实现串口设备与以太网的互联时&#xff0c;USR-K5模块是个不错的选择。这款小巧的串口转以太网模块&#xff0c;能够帮助开发者省去复杂的网络协议栈开发工作&#xff0c;特别适合…...

终极指南:5分钟掌握Awoo Installer,轻松搞定Switch游戏安装

终极指南&#xff1a;5分钟掌握Awoo Installer&#xff0c;轻松搞定Switch游戏安装 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游…...

非开发者终于拥有了自己的“后台 AI 代理”

一位财务总监每周一都要花 90 分钟手动清洗 150 行 Excel 数据&#xff1a;去重、统一日期格式、把文字评级转成数字。 他明明知道 AI 能帮忙&#xff0c;却只在 Perplexity 里敲一句“帮我分析这份数据”&#xff0c;得到一段总结后就关掉标签&#xff0c;继续手动操作。 开发…...

如何判断 SEO 排名推广的投资是否值得

SEO 排名推广的投资是否值得&#xff1a;深入分析与实用建议 在当今数字化时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;排名推广已成为许多企业获取在线流量和潜在客户的重要手段。面对高昂的SEO推广费用&#xff0c;企业往往会纠结于“这笔投资是否值得”这一问…...

终极指南:3步快速解锁《艾尔登法环》帧率限制与游戏优化

终极指南&#xff1a;3步快速解锁《艾尔登法环》帧率限制与游戏优化 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/E…...

STM32C8T6新手入门:用定时器中断和外部中断做一个99秒倒计时器(附完整代码)

STM32C8T6实战&#xff1a;构建高精度99秒倒计时器的5个关键步骤 第一次拿到STM32开发板时&#xff0c;我盯着那些密密麻麻的引脚发呆——这玩意儿真能做出实用的倒计时器&#xff1f;直到成功完成这个项目后才发现&#xff0c;原来从零开始构建一个稳定可靠的倒计时系统&#…...

华硕笔记本合盖模式终极指南:告别外接显示器休眠烦恼

华硕笔记本合盖模式终极指南&#xff1a;告别外接显示器休眠烦恼 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sca…...

基于YOLOv12的零售客流量分析:Vue.js可视化Dashboard开发

基于YOLOv12的零售客流量分析&#xff1a;Vue.js可视化Dashboard开发 你有没有想过&#xff0c;每天进出你店里的顾客&#xff0c;他们到底是怎么走的&#xff1f;哪些货架最受欢迎&#xff0c;顾客停留了多久&#xff0c;又有多少人只是匆匆路过&#xff1f;过去&#xff0c;…...

别再死记硬背DH参数表了!用Python从零推导PUMA560机器人正运动学(附完整代码)

用Python实战解析PUMA560机器人运动学&#xff1a;从DH参数到三维可视化 在机器人学领域&#xff0c;正运动学分析是理解机械臂运动原理的基础。许多初学者面对抽象的Denavit-Hartenberg&#xff08;DH&#xff09;参数和复杂的坐标系变换时&#xff0c;常常陷入死记硬背的困境…...

极简办公:OpenClaw+Qwen3.5-9B自动回复日常邮件模板

极简办公&#xff1a;OpenClawQwen3.5-9B自动回复日常邮件模板 1. 为什么需要邮件自动化助手 每天早晨打开邮箱&#xff0c;总能看到十几封格式雷同的咨询邮件——产品报价、技术支持、会议邀约……这些邮件80%的内容都可以用标准模板回复&#xff0c;但手动复制粘贴依然要耗…...