keras Tokenizer将单词向量化 用法详解 亲手实践详细讲解

本文深入探讨了Keras库中用于文本预处理的各种方法,包括文本序列化、单词计数、文档频率统计等,通过实例展示了如何使用Tokenizer类进行文本的序列化转换和one-hot编码,适合于对NLP和深度学习感兴趣的读者。
摘要由CSDN通过智能技术生成

 

 

 

https://blog.csdn.net/qq_16234613/article/details/79436941

from keras.preprocessing import text
from keras.preprocessing.text import Tokenizer

text1='some thing to eat'
text2='some some thing to drink'
text3='thing to eat food'
texts=[text1, text2, text3]

# keras.preprocessing.text.text_to_word_sequence(text,
#         filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~\t\n',
#         lower=True,
#         split=" ")
print(text.text_to_word_sequence(text3))

# 将一行文本使用hash原理转成one-hot形式,不是按照字典形式进行的映射
# keras.preprocessing.text.one_hot(text,
#       n,
#      filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~\t\n',
#      lower=True,
#      split=" ")
print(text.one_hot(text2,20))  #n表示编码值在1到n之间
print(text.one_hot(text2,5))

#result

Using TensorFlow backend.
['thing', 'to', 'eat', 'food']
[6, 6, 1, 2, 18]
[3, 3, 2, 4, 4]

tokenizer = Tokenizer(num_words=4) #num_words:None或整数,个人理解就是对统计单词出现数量后选择次数多的前n个单词,后面的单词都不做处理。
tokenizer.fit_on_texts(texts)
print("1=", tokenizer.texts_to_sequences(texts)) # 使用字典将对应词转成index。shape为 (文档数,每条文档的长度)
print( "2=",tokenizer.texts_to_matrix(texts)) # 转成one-hot,与前面的不同。shape为[len(texts),num_words]
print( "3=",tokenizer.word_counts) #单词在所有文档中的总数量,如果num_words=4,应该选择some thing to
print( "4=",tokenizer.word_docs) #单词出现在文档中的数量
print("5=", tokenizer.word_index) #单词对应的index

print( "6=",tokenizer.index_docs) #index对应单词出现在文档中的数量

 

#result

1= [[1, 2, 3], [1, 1, 2, 3], [2, 3]]
2= [[0. 1. 1. 1.]
 [0. 1. 1. 1.]
 [0. 0. 1. 1.]]
3= OrderedDict([('some', 3), ('thing', 3), ('to', 3), ('eat', 2), ('drink', 1), ('food', 1)])
4= defaultdict(<class 'int'>, {'eat': 2
, 'thing': 3, 'some': 2, 'to': 3, 'drink': 1, 'food': 1})
5= {'some': 1, 'thing': 2, 'to': 3, 'eat': 4, 'drink': 5, 'food': 6}
6= defaultdict(<class 'int'>, {4: 2, 2: 3, 1: 2, 3: 3, 5: 1, 6: 1})

三、属性详解

word_counts :字典,将单词(字符串)映射为它们在训练期间出现的次数。仅在调用fit_on_texts之后设置。

word_docs :字典,将单词(字符串)映射为它们在训练期间所出现的文档或文本的数量。仅在调用fit_on_texts之后设置。

word_index :字典,将单词(字符串)映射为它们的排名或者索引。仅在调用fit_on_texts之后设置。

document_count :整数。分词器被训练的文档(文本或者序列)数量。仅在调用fit_on_texts或fit_on_sequences之后设置。

https://zhuanlan.zhihu.com/p/138054335

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值