keras - 如何使用 get_keras_embedding 填充值
问题描述
我尝试将 gensim 集成到 Kerasget_keras_embedding
模型中。
首先我做文本预处理
text_to_word_sequence
将文本转换为标记序列w2v.vocab[tok].index
将单词转换为 gensim 的单词索引pad_sequences(sequences, maxlen=MAX_SEQUENCE_LENGTH, value=999999)
填充一些值
然后我建立一个模型
embedding_layer = w2v.get_keras_embedding(train_embeddings=False)
...
sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedded_sequences = embedding_layer(sequence_input)
...
x = Conv1D(100, kernel_size, activation='relu', padding='same', strides=1)(embedded_sequences)
显然问题出在填充值上。默认值为 0,即 gensim word2vec 中的“the”,如果我使用不存在的值,则会失败并显示以下错误消息。使用 gensim word2vec 填充的正确方法是什么?
InvalidArgumentError (see above for traceback): indices[48,0] = 999999 is not in [0, 400000)
[[Node: embedding_1/embedding_lookup = Gather[Tindices=DT_INT32, Tparams=DT_FLOAT, _class=["loc:@embedding_1/embeddings"], validate_indices=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](embedding_1/embeddings/read, _arg_input_1_0_3)]]
我将不胜感激任何帮助。
解决方案
推荐阅读
- python - 属性 Nonetype 没有方法 .count()
- performance - Is there a more efficient function for finding []byte similarities?
- javascript - 使用电子无法正常工作的网页
- c++ - OpenGL 中的多线程功能
- angular - 如果 1 秒内没有响应,如何添加到数组中?
- php - 如何查找并将两行合并为一
- maven - 使用 Maven 进行基于 Trunk 的开发
- python-3.x - 加入命令的回调缺少“ctx”参数
- go - 结构类型中的条件/可选字段
- javascript - JS - 向一个变量添加键会将其添加到在链式赋值中创建的所有变量中