1

Итак, я использую word2vec в Java и пытаюсь каким-то образом обучить его, чтобы он дал мне векторное представление для слов и предложений.Как использовать word2vec и RNN вместе?

Могу ли я использовать это для подачи ввода в нейронную сеть, чтобы получить ответ на основе данных word2vec? С этим я планирую сделать chatbot.

+0

Итак, вы хотите получить векторное представление для слова, используя word2vec, а затем использовать этот вектор в качестве входа в RNN? Таким образом, слово2vec действует как функция вложения для RNN, но обучает его отдельно? Или совместно? – gcucurull

+0

Я думаю, что использование этого в качестве вклада в RNN было бы более полезным. Я хочу тренировать их совместно. Как вы думаете? Что было бы лучше? @galloguille Отлично, если вы могли бы помочь мне с этим. –

+0

Ну, я не знаю, что много о НЛП, но я думаю, вы могли бы использовать предварительно подготовленный word2vec для генерации вложений слов, а затем использовать эти вложения в качестве входных данных для RNN, поэтому вам не нужно будет самостоятельно обучать word2vec. – gcucurull

ответ

2

Добавляя комментарии к @ galloguille, вы можете использовать словарные векторы word2vec, предварительно подготовленные для инициализации вашего RNN. RNN может учиться из последовательности слов, чтобы предсказать следующее слово (слова). Хороший пример с кодом для этого, вы можете найти здесь - https://github.com/larspars/word-rnn.

Существует хорошая коллекция современного состояния искусства на chatbots здесь - https://stanfy.com/blog/the-rise-of-chat-bots-useful-links-articles-libraries-and-platforms/

Из моего понимания, наиболее эффективные chatbots не используют РНН непосредственно (в настоящее время), чтобы ответить на вопрос, но попытаться предсказать (от фиксированного набора намерений) вопроса на первом этапе. Основываясь на каждом своем намерении, они вычисляют некоторые действительные идеи и логичный ответ на вопрос.

+0

Какой был бы лучший способ сделать это тогда? Вместо RNN? –

+0

RNN - хороший подход, если вы хотите поиграть с генерацией текста с глубоким обучением. Но если вы хотите развернуть чатбот в приложении реального мира, глубокого обучения еще нет. Вы должны жестко кодировать возможные намерения пользователя (на основе прецедента) и сопоставлять каждый вопрос с намерением, а затем снова жестко кодировать фиксированный набор ответов для конкретного вопроса. – kampta