如何使用word2vec和keras对句子进行分类?

如何使用word2vec和keras对句子进行分类?,keras,recurrent-neural-network,gensim,word2vec,keras-layer,Keras,Recurrent Neural Network,Gensim,Word2vec,Keras Layer,我有两个句子列表。第一个列表包含不同的问题,第二个列表包含不同的陈述 小例子: 1st list: [ "What are cultures that are associated with core values?", "How do bumblebees fly?", "It is possible that avocado seed can be a tea?", ... ] 2nd list: [ "The population was 388

我有两个句子列表。第一个列表包含不同的问题,第二个列表包含不同的陈述

小例子:

1st list:
[
    "What are cultures that are associated with core values?",
    "How do bumblebees fly?",
    "It is possible that avocado seed can be a tea?",
    ...
]

2nd list:
[
    "The population was 388 at the 2010 census.",
    "Grevillea helmsiae is a tree which is endemic to Queensland in Australia.",
    "He played youth football for Tynecastle Boys Club.",
    ...
]
我想写一个程序,将能够分类这两种类型的句子。为此,我可以创建神经网络并在我的2个列表中对其进行训练。我猜,这一定是递归神经网络

我已将每个句子转换为word2vec向量数组。现在我想用LSTM层建立keras递归神经网络。但我不知道如何正确地做到这一点。你能为这个问题编写keras模型吗

更新

以上句子经过word2vec转换后的形式如下:

[
    [vector_of_floats_for_word_"what", vector_of_floats_for_word_"are", vector_of_floats_for_word_"cultures", vector_of_floats_for_word_"that", ...],
    [vector_of_floats_for_word_"how", vector_of_floats_for_word_"do", vector_of_floats_for_word_"bumblebees", ...]
]
等等。每个向量有300维

这是我的模型:

X = []
Y = []

for i in range(1000):
    X.append(questions_vectors[i])
    Y.append([1, 0])
    X.append(statements_vectors[i])
    Y.append([0, 1])

model = Sequential()
model.add(LSTM(128, input_shape=(2000, None, 300)))
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer=RMSprop(lr=0.01))
在那里你可以看到神奇的数字2000和300。2000是1000个问题+1000个陈述,300字向量长度

但我确信我的模型是错误的。我还得到了一个错误:

ValueError: Input 0 is incompatible with layer lstm_1: expected ndim=3, found ndim=4

你真的需要一个神经网络来对陈述中的问题进行分类吗?查看数据集,仅最后一个字符就足以进行分类。无论如何,为了帮助您理解模型部分,我们需要查看您在开头使用的代码,以及您如何转换这些句子。当然,我删除了语句中的最后几个字符。@NassimBen我添加了更多描述。