Keras分词器Tokenizer的办法介绍

Tokenizer是一个用于向量化文本,或将文本转换为序列(即单词在字典中的下标形成的列表,从1算起)的类。Tokenizer实际上只是生成了一个字典,并且统计了词频等信息,并没有把文本转成须要的向量示意。tok = keras.preprocessing.text.Tokenizer()

生成词典tok.fit_on_texts

somestr = ['ha ha gua angry','howa ha gua excited']

tok.fit_on_texts(somestr)

查看单词索引tok.word_index

将句子序列转换成token矩阵tok.texts_to_matrix

tok.texts_to_matrix(somestr)#binary的向量,如果dictionary的下标为i 的那个词在这个string中呈现了,那么就给一个1,否则给0。
tok.texts_to_matrix(somestr,mode='count')#float32的向量,1换成了该词在以后句子呈现的次数

tok.texts_to_matrix(somestr,mode='freq')#loat32的向量,1换成了该词在以后句子呈现的概率的词频

句子转换成单词索引序列tok.texts_to_sequences

tok.texts_to_sequences(somestr)

tok.document_count 分词器被训练的文档(文本或者序列)数量
tok.word_counts 依照数量由大到小Order排列的token及其数量。

迷信应用Tokenizer的办法是,首先用Tokenizer的 fit_on_texts 办法学习出文本的字典,而后word_index 就是对应的单词和数字的映射关系dict,通过这个dict能够将每个string的每个词转成数字,能够用texts_to_sequences,这是咱们须要的,而后通过padding的办法补成同样长度,在用keras中自带的embedding层进行一个向量化,并输出到LSTM中。