Каковы некоторые распространенные способы получения вектора предложений из соответствующих векторов слов? - PullRequest
1 голос
/ 24 июня 2019

Я успешно реализовал модель word2vec для генерации встраивания слов или векторов слов, теперь мне нужно генерировать векторы предложений из сгенерированных векторов слов, чтобы я мог использовать нейронную сеть для суммирования текстового корпуса.Каковы общие подходы для генерации векторов предложений из векторов слов?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Вы можете попробовать добавить кодировщик 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;который вы можете использовать как вложения документа.

0 голосов
/ 24 июня 2019

Представления предложений могут просто представлять собой среднее по столбцам все векторы слов в вашем предложении.Есть также реализация этого типа doc2vec https://radimrehurek.com/gensim/models/doc2vec.html, где документ - это просто набор слов, таких как предложение или абзац.

...