nlp之词向量转换

# 分词器,仅保留数据中前10000个最常见的单词作为特征,低频单词将被舍弃
tokenizer = text.Tokenizer(num_words=max_features)
tokenizer.fit_on_texts(list(X_train) + list(X_test))

# 将评论数据的单词转换成速数形式,如:[1,0,3,,2,0]
X_train = tokenizer.texts_to_sequences(X_train)
X_test = tokenizer.texts_to_sequences(X_test)

# 统一长度,长度为200
X_train = sequence.pad_sequences(X_train, maxlen=maxlen)
X_test = sequence.pad_sequences(X_test, maxlen=maxlen)

# word_index是一个将单词映射为整数索引的字典(word,int)
word_index = tokenizer.word_index

# 之前我们是要保留数据中前10000个最常见的单词作为特征,但也有可能存在数据中所有的单词总量都不到10000个,所以之前我们要判断特征数是多少
num_words = min(max_features, len(word_index))

# 创建一个零矩阵,矩阵大小为(单词数,300),300是因为所用到的预训练词向量的张量就是300
embedding_matrix = np.zeros((num_words, embed_size))

# 从预训练词向量中获取单词对应的词向量,并保存在上面创建的零矩阵中
for word, i in word_index.items():
    # 当num_words = max_features时,说明len(word_index) > max_features,即len(word_index) > num_words,此时的i会超出len(embedding_matrix),所以需要continue
    if i >= max_features:continue
    
    embedding_vector = embeddings_index.get(word) # 获取单词的词向量
    
    if embedding_vector is not None: # 判断预训练的词向量中是否存在该单词的词向量
        embedding_matrix[i] = embedding_vector# 以矩阵的索引作为单词的索引,并保存词向量
        
# X_train,X_test,embedding_matrix就是训练集和测试集的词袋以及总数据的词向量。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值