专业做外贸英文公司网站,台州网站设计公司,权威发布图片,工程信息网站谁做文章目录 代码代码解读 代码
from tensorflow.keras.preprocessing.text import Tokenizer # 标记器(每一个词#xff0c;以我们的数值做映射#xff0c;)words [LaoWang has a Wechat account., He is not a nice person., Be careful.] # 把这句话中每一个单词#xf… 文章目录 代码代码解读 代码
from tensorflow.keras.preprocessing.text import Tokenizer # 标记器(每一个词以我们的数值做映射)words [LaoWang has a Wechat account., He is not a nice person., Be careful.] # 把这句话中每一个单词映射成我们的数值
tokenizer Tokenizer(num_words15) # 上面三句话中词的总数不超过 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, modebinary)
# 向量化是构建神经网络的第一步
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_words15)创建一个Tokenizer对象并设置参数num_words15意味着最大考虑15个单词。这不代表只有15个单词会被编码而是在后续转换为矩阵时只会考虑频率最高的前15个单词。
tokenizer.fit_on_texts(words)调用fit_on_texts方法让tokenizer在words列表上进行学习从而创建一个词到整数值的映射。
word_index tokenizer.word_index获取tokenizer的word_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, modebinary)调用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类将文本转化为整数序列最后将文本转化为二进制矩阵。这是将文本数据预处理为可以输入到神经网络的形式的常见步骤。