nlp之文本转向量

文章目录

代码

python 复制代码
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)

代码解读

逐行解读这段代码。

python 复制代码
from tensorflow.keras.preprocessing.text import Tokenizer

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

python 复制代码
words = ['LaoWang has a Wechat account.', 'He is not a nice person.', 'Be careful.']

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

python 复制代码
tokenizer = Tokenizer(num_words=15)

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

python 复制代码
tokenizer.fit_on_texts(words)

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

python 复制代码
word_index = tokenizer.word_index

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

python 复制代码
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字典和它的长度。

python 复制代码
sequences = tokenizer.texts_to_sequences(words)

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

python 复制代码
print(sequences)

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

打印sequences列表。

python 复制代码
one_hot_matrix = tokenizer.texts_to_matrix(words, mode='binary')

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

python 复制代码
print(tokenizer.word_index.keys())

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

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

python 复制代码
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类将文本转化为整数序列,最后将文本转化为二进制矩阵。这是将文本数据预处理为可以输入到神经网络的形式的常见步骤。

相关推荐
多看书少吃饭9 分钟前
基于 OpenCV 的眼球识别算法以及青光眼算法识别
人工智能·opencv·计算机视觉
一条数据库24 分钟前
南京方言数据集|300小时高质量自然对话音频|专业录音棚采集|方言语音识别模型训练|情感计算研究|方言保护文化遗产数字化|语音情感识别|方言对话系统开发
人工智能·音视频·语音识别
Yingjun Mo28 分钟前
1. 统计推断-基于神经网络与Langevin扩散的自适应潜变量建模与优化
人工智能·神经网络·算法·机器学习·概率论
DogDaoDao40 分钟前
Docker全解析:从核心概念到2025年AI集成新特性
人工智能·docker·eureka·程序员
深耕AI1 小时前
【PyTorch训练】准确率计算(代码片段拆解)
人工智能·pytorch·python
zskj_zhyl1 小时前
七彩喜智慧养老:用科技温暖晚年,让关爱永不掉线
人工智能·科技·机器人
益莱储中国1 小时前
是德科技 | 关于AI 数据中心时代的光通信的精选问答
人工智能·科技
AI小白的Python之路1 小时前
机器学习-集成学习
人工智能·机器学习·集成学习
小和尚同志1 小时前
10k star!各大 AI 应用系统提示词集合
人工智能·开源·aigc