我已经成功实现了word2vec模型来生成单词嵌入或单词向量,现在我需要从生成的单词向量生成句子向量,以便可以为神经网络提供数据以总结文本语料库。从单词向量生成句子向量的常用方法有哪些?
答案 0 :(得分:1)
您可以尝试在实际的神经网络之前添加一个LSTM/RNN
编码器,并使用编码器的隐藏状态(将其作为文档表示形式)来填充神经网络。
这样做的好处是您的文档嵌入将针对您的文本摘要任务进行培训。
我不知道您使用的是什么框架,否则会通过一些代码帮助您入门。
编辑1:添加代码段
word_in = Input(shape=("<MAX SEQ LEN>",))
emb_word = Embedding(input_dim="<vocab size>", output_dim="<embd_dim>",input_length="<MAX SEQ LEN>", mask_zero=True)(word_in)
lstm = LSTM(units="<size>", return_sequences=False,
recurrent_dropout=0.5, name="lstm_1")(emb_word)
添加以矢量为输入的任何类型的密集层。
LSTM
接受形状为batch_size * sequence_length * word_vector_dimension
的输入,并产生形状为batch_size * rnn_size
的输出;您可以将其用作文档嵌入。
答案 1 :(得分:0)
句子表示可以简单地是句子中所有单词向量的按列平均。还有诸如doc2vec https://radimrehurek.com/gensim/models/doc2vec.html之类的实现方式,其中文档只是单词的集合,例如句子或段落。