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

本文探讨了在自然语言处理中,如何使用词嵌入表示词汇,并解释了为何词典大小加一作为词嵌入矩阵的维度。文章详细介绍了从词到向量的映射过程,包括处理未登录词和序列填充的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值