从对应的词向量中得到句向量有哪些常用的方法?
What are some common ways to get sentence vector from corresponding word vectors?
我已经成功实现了 word2vec 模型来生成词嵌入或词向量,现在我需要从生成的词向量中生成句子向量,这样我就可以为神经网络提供数据来总结文本语料库。词向量生成句向量的常用方法有哪些?
句子表示可以简单地是句子中所有词向量的 column-wise 平均值。还有像 doc2vec https://radimrehurek.com/gensim/models/doc2vec.html 这样的实现,其中文档只是单词的集合,如句子或段落。
您可以尝试在您的实际神经网络之前添加一个 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
的输出;您可以将其用作文档嵌入。
我已经成功实现了 word2vec 模型来生成词嵌入或词向量,现在我需要从生成的词向量中生成句子向量,这样我就可以为神经网络提供数据来总结文本语料库。词向量生成句向量的常用方法有哪些?
句子表示可以简单地是句子中所有词向量的 column-wise 平均值。还有像 doc2vec https://radimrehurek.com/gensim/models/doc2vec.html 这样的实现,其中文档只是单词的集合,如句子或段落。
您可以尝试在您的实际神经网络之前添加一个 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
的输出;您可以将其用作文档嵌入。