Я хотел начать экспериментировать с нейронной сетью, и, как игрушечная проблема, я хотел научить ее общаться в чате, то есть внедрить чат-бота, такого как умный робот. Не так уж и умно.
Я искал документацию и нашел много учебников по общим задачам, но мало по этой конкретной теме. Тот, который я нашел, только показал результаты, не давая понимания о реализации. Те, которые сделали, сделали это довольно поверхностно (на странице документации tenorflow на seq2seq отсутствует imho).
Теперь я чувствую, что мог понять принцип более или менее, но я не уверен, и я даже не уверен, с чего начать. Таким образом, я объясню, как я буду решать проблему, и я хотел бы получить отзыв об этом решении, сообщив, где я ошибаюсь, и, возможно, иметь какую-либо ссылку на подробные объяснения и практические знания о процессе.
Набор данных, который я буду использовать для этой задачи, - это дамп всей моей истории чата на Facebook и WhatsApp. Я не знаю, насколько он будет большим, но, возможно, все еще недостаточно большим. Целевым языком не является английский, поэтому я не знаю, где можно быстро собрать содержательные образцы разговоров.
Я собираюсь генерировать вектор мысли из каждого предложения. Все еще не знаю, как на самом деле; Я нашел хороший пример для word2vec на сайте deeplearning4j, но ни одного для предложений. Я понял, как строятся векторы слов и почему, но не смог найти исчерпывающего объяснения для векторов предложений.
Используя векторы мысли в качестве входа и выхода, я собираюсь обучать нейронную сеть. Я не знаю, сколько слоев должно быть, и какие должны быть слоями lstm.
Тогда должна быть другая нейронная сеть, которая способна преобразовать вектор мысли в последовательность символов, составляющих предложение. Я прочитал, что должен использовать отступы, чтобы компенсировать различные длины предложений, но я скучаю по тому, как кодировать символы (достаточно ли кодовых точек?).
В соответствии с концепцией вашего проекта, для начала я бы попросил вас применить некоторые тестовые методы разработки. Сначала попробуйте создать базу данных меньшего размера, которую вы можете использовать для обработки небольшого количества наборов данных, что может дать желаемое улучшение.
Тем не менее, используйте эту базу данных для создания организованного дерева, встроенного в ваши данные, в виде узлов. Так что, если бот начинает генерировать некоторую обратную связь из базы данных, помеченную точками данных из указанного вами набора данных. И, таким образом, ответ или ответ - это путь к следующему узлу в дереве.
примечание : для начала, не используйте всю большую историю чата в целом, потому что это простая задача, т.е. слишком много входных данных == Переоснащение.
источник