从对应的词向量中获取句子向量的常见方法有哪些?

时间:2019-06-24 07:54:22

标签: nlp word2vec

我已经成功实现了word2vec模型来生成单词嵌入或单词向量,现在我需要从生成的单词向量生成句子向量,以便可以为神经网络提供数据以总结文本语料库。从单词向量生成句子向量的常用方法有哪些?

2 个答案:

答案 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之类的实现方式,其中文档只是单词的集合,例如句子或段落。