2016-11-11 2 views
2

Я пытаюсь сделать chatbot, который использует последовательность для модели последовательности, чтобы ответить на ввод пользователя. Проблема в том, что входная последовательность, заданная модели, почти никогда не будет прежней. Входная последовательность представляет собой список слов. Я создал словарь, который отображает каждое слово в этой последовательности на свой собственный уникальный идентификатор, однако вход по-прежнему является переменным и не фиксирован, поэтому я не могу просто использовать последовательность для модели последовательности. Я понимаю, что можно использовать кодировщик для сопоставления последовательности слов с фиксированным векторным представлением, а затем иметь карту декодера, которая возвращает вектор в последовательность.Последовательность моделирования последовательности в python

Вопрос, который у меня есть, заключается в том, как бы я мог кодировать последовательность слов фиксированному вектору? Существует ли какая-либо техника, которая может быть использована для этой цели?

+0

Я ничего не пробовал, так как я понятия не имею, как выполнить эту задачу –

ответ

1

Сопоставление последовательности слов с векторным представлением может быть выполнено с помощью повторяющейся нейронной сети. Вы посмотрите на это представление может: http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Существует учебник в комплекте tensorflow инструментов, которые касаются этой последовательности для отображения последовательности архитектуры с примером кода: https://www.tensorflow.org/versions/r0.11/tutorials/index.html

Перед началом работы с RNN, однако, я рекомендовал бы через основы для нейронных сетей: http://deeplearning.net/software/theano/tutorial/#basics

Углубленная учебная книга Bengio: http://www.deeplearningbook.org/ покрывает много материалов о RNN, однако в нем содержится довольно много математики.

+0

Дозировать этот учебник по методу тензорного потока отображает только слова в векторы? Таким образом, длина последовательности будет по-прежнему переменной. Мне нужно что-то, что отображает последовательность в целом на фиксированный вектор. –

+0

Привет, в простой последовательности, описанной в учебнике, есть кодировщик RNN и декодер RNN. Кодер RNN отображает входную последовательность в вектор фиксированной длины. Декодер отображает этот вектор фиксированной длины в новую последовательность. То, что вы ищете, это компонент кодировщика. Тем не менее, в seq до seq проблем, эти два компонента тренируются вместе, мы их не разделяем. –

Смежные вопросы