深度学习:补充内容:自然语言处理(Tokenizer和pad_sequences)

在上篇文章中我们写到了用Tokenizer和pad_sequences)这两个模块对文本类型的数据进行处理后再进行Embedding层的输入,

除了可以自己训练Embedding层外,还可以导入外部训练好的词向量,进行一个查找就行了,

emdding = np.zeros((len(tk.word_index) +1, 100)) # 0+所有词的id
for k,v in tk.index_word.items(): # 根据token分词器的结果,把词-id隐射为对应词向量
    if v in word_dict.keys(): # 判断词是否在w2v词典中
        emdding[k] = word_dict[v] # 获取某个词在w2v中的词向量
    else:
        emdding[k] = np.zeros(100) # 词不在2v词向量中,给全0的向量
input = tf.keras.Input(shape = (500,))
a1 = tf.keras.layers.Embedding(input_dim = len(tk.index_word) + 1, 
                          output_dim = 100,   # 每个词向量的长度(输出的每个词的长度)
                          input_length = (500),
                          trainable=False, # 是否训练词向量
                          weights=[emdding], # 预训练的词向量
                          )(input)

你可能感兴趣的:(深度学习,自然语言处理)