为什么建立embedding_matrix时要再一开始多加一行?

why : nb_words = len(tokenizer.word_index) + 1 ?????

answer: 

 

1. word index start from 1, so the index of 0 would be 0 all the time

embedding_matrix = np.zeros((nb_words, embedding_dim))

for word, i in word_index.items():
        try:
            embedding_vector = word_vectors[word]
            if embedding_vector is not None:
                embedding_matrix[i] = embedding_vector
        except KeyError:
            print("vector not found for word - %s" % word)

 

2. while mapping the word to vector, the padding of 0 would be mapping to np.array(0,embedding_dim)

    train_sequences_1 = tokenizer.texts_to_sequences(sentence1) # texts_to_sequences -------- map the index of words to words
    train_padded_data_1 = pad_sequences(train_sequences_1,maxlen = max_sequence_length) # padding to the max length of sequence
 

3. the sentence encoding would be complete

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值