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

代码解读-自然语言处理

目录

  • demo3文本转为向量
    • 代码
    • 解读
    • 给出每一步的输出

demo3文本转为向量

代码

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)

解读

这段代码使用tensorflowkeras库中的Tokenizer类对文本数据进行预处理。让我们逐步解读这段代码:

  1. 导入必要的库
from tensorflow.keras.preprocessing.text import Tokenizer

这行代码导入了Tokenizer类,这是一个用于文本标记化的工具,可以将每个词映射到一个数值。

  1. 定义文本数据
words = ['LaoWang has a Wechat account.', 'He is not a nice person.', 'Be careful.']

这里定义了一个包含三个句子的列表。

  1. 初始化标记器
tokenizer = Tokenizer(num_words=15)

这里创建了一个Tokenizer对象,设置了最大的单词数为15。这意味着它只会考虑频率最高的15个单词。

  1. 适应数据
tokenizer.fit_on_texts(words)

这行代码会将定义的句子列表传给标记器,使其学习句子中的单词及其频率。

  1. 获取词到索引的映射
word_index = tokenizer.word_index
print(word_index, len(word_index))

这里获取了每个词及其对应的索引,并打印它们。len(word_index)将显示总共有多少个唯一单词。

  1. 将文本转化为序列编码
sequences = tokenizer.texts_to_sequences(words)
print(sequences)

此行代码将原始句子转化为整数序列,每个整数对应句子中的一个单词。例如,如果“LaoWang”对应的索引是1,则“LaoWang”在序列中将被替换为1。

  1. 文本转化为矩阵
one_hot_matrix = tokenizer.texts_to_matrix(words, mode='binary')

这行代码将句子转换为二进制矩阵。如果一个词在句子中,那么它的位置为1,否则为0。

  1. 显示单词和矩阵
print(tokenizer.word_index.keys())
print(one_hot_matrix, one_hot_matrix.shape)

这两行代码首先打印出所有的单词,然后打印出转化后的二进制矩阵以及它的形状。

综上所述,这段代码的主要目的是展示如何使用Tokenizer进行文本的预处理,从而为后续的神经网络模型做准备。

给出每一步的输出

在每行代码的末尾添加注释,以描述其执行后的结果。

from tensorflow.keras.preprocessing.text import Tokenizerwords = ['LaoWang has a Wechat account.', 'He is not a nice person.', 'Be careful.']  # words = ['LaoWang has a Wechat account.', 'He is not a nice person.', 'Be careful.']tokenizer = Tokenizer(num_words=15)  # 初始化了一个 Tokenizer 对象tokenizer.fit_on_texts(words)  # 这里没有直接的输出,它只是让 tokenizer 学习 words 的内容word_index = tokenizer.word_index  
print(word_index, len(word_index))  # 输出 word_index 的内容和它的长度, 例如: {'laowang': 1, 'has': 2,...} 12sequences = tokenizer.texts_to_sequences(words)
print(sequences)  # 输出 sequences, 例如: [[1, 2, 3, 4, 5], [6, 7, 8, 3, 9, 10], [11, 12]]one_hot_matrix = tokenizer.texts_to_matrix(words, mode='binary')
# 没有直接的输出,但 one_hot_matrix 会变成一个二进制矩阵print(tokenizer.word_index.keys())  # 输出 word_index 的所有键,例如: dict_keys(['laowang', 'has',...])
print(one_hot_matrix, one_hot_matrix.shape)  # 输出 one_hot_matrix 的内容和形状, 例如: [[0., 1., 1., ...], ...] (3, 15)

注意:以上的输出值示例(例如:'laowang': 1, 'has': 2,...)是基于输入数据而给出的假设。实际的输出可能会根据具体的输入数据和Tokenizer的实现方式而有所不同。

http://www.lryc.cn/news/207190.html

相关文章:

  • docker指令
  • 【MySql】9- 实践篇(七)
  • Maven compile时报错 系统资源不足,出现OOM:GC overhead limit exceeded
  • 启动内核ip转发和其他优化
  • 信息安全技术
  • SQL 选择数据库 USE语句
  • FL Studio21版无限破解版下载 软件内置破解补丁
  • 【代码随想录】算法训练计划02
  • hive针对带有特殊字符非法json数据解析
  • 【C++进阶之路】第三篇:二叉搜索树 kv模型
  • 【Oracle】Navicat Premium 连接 Oracle的两种方式
  • 在python里如何实现switch函数的功能
  • Python 继承和子类示例:从 Person 到 Student 的演示
  • DevOps持续集成-Jenkins(3)
  • TypeScript之索引签名
  • k8s-----24、亲和力Affinity
  • 860. 柠檬水找零
  • Flink将数据写入MySQL(JDBC)
  • react-typescript-demo
  • Alexon:在云原生环境中快速部署应用服务
  • 5G技术在职业教育领域的应用:产生巨变的技术
  • 【触想智能】工控一体机与5G物联网技术结合是未来发展趋势
  • LuatOS-SOC接口文档(air780E)--lvgl - LVGL图像库
  • LuatOS-SOC接口文档(air780E)--lora2 - lora2驱动模块(支持多挂)
  • WKWebView iOS17设置UserAgent
  • 持续集成部署-k8s-服务发现-Service
  • RocksDB基本架构与原理详解
  • ArcGIS笔记12_ArcGIS搜索工具没法用?ArcGIS运行很慢很卡?
  • 【VictoriaMetrics】单机版配置
  • 【C语言】strcpy()函数