keras提供的预处理包keras.preproceing下的text与序列处理模块sequence模块
1. text模块提供的方法
- text_to_word_sequence(text,fileter) 可以简单理解此函数功能类str.split
- one_hot(text,vocab_size) 基于hash函数(桶大小为vocab_size),将一行文本转换向量表示(把单词数字化,vocab_size=5表示所有单词全都数字化在5以内)
import jieba
import keras.preprocessing.text as T
from keras.preprocessing.text import Tokenizer
text1='这里的风景真漂亮'
text2='这件衣服很好看,我很喜欢,你觉得呢?'
text1=' '.join(jieba.cut(text1))
text2=' '.join(jieba.cut(text2))
texts=[text1,text2]
T.text_to_word_sequence(text1)
T.text_to_word_sequence(text2)
T.one_hot(text1,20)#(20表示数字化向量为20以内的数字)
T.one_hot(text2,20)
输出结果:
text1
Out[1]: '这里 的 风景 真 漂亮'
text2
Out[2]: '这件 衣服 很 好看 , 我 很 喜欢 , 你 觉得 呢 ?'
texts
Out[3]: ['这里 的 风景 真 漂亮', '这件 衣服 很 好看 , 我 很 喜欢 , 你 觉得 呢 ?']
T.text_to_word_sequence(text1)
Out[4]: ['这里', '的', '风景', '真', '漂亮']
T.text_to_word_sequence(text2)
Out[5]: ['这件', '衣服', '很', '好看', ',', '我', '很', '喜欢', ',', '你', '觉得', '呢', '?']
T.one_hot(text1,20)
Out[6]: [8, 19, 4, 10, 8]
T.one_hot(text2,20)
Out[7]: [3, 4, 9, 9, 12, 4, 9, 19, 12, 13, 14, 5, 8]
2.text.Tokenizer类
keras.preprocessing.t