Я хотів почати експериментувати з нейронною мережею і, як проблема з іграшками, я хотів навчити одного спілкуватися, тобто реалізувати бота-чату, як розумний робот. Не такий розумний все одно.
Я оглянув деяку документацію і знайшов багато підручника з загальних завдань, але мало на цю конкретну тему. Той, кого я знайшов, щойно викрив результати, не даючи уявлення про реалізацію. Ті, хто це зробив, зробили це досить дрібно (на тензорній сторінці документації на seq2seq не вистачає imho).
Тепер я відчуваю, що, можливо, я зрозумів більш-менш принцип, але я не впевнений і навіть не знаю, як почати. Таким чином, я поясню, як би я вирішував цю проблему, і я хотів би отримати зворотний зв'язок щодо цього рішення, розповівши, де я помиляюся і, можливо, маю будь-яке посилання на детальні пояснення та практичні знання щодо процесу.
Набір даних, який я використовуватиму для завдання, - це дамп всієї моєї історії фейсбуку та Whatsapp. Я не знаю, наскільки вона буде великою, але, можливо, все ще недостатньо великою. Цільова мова не англійська, тому я не знаю, де швидко зібрати змістовні зразки розмов.
Я буду генерувати векторну думку з кожного речення. Досі не знаю, як насправді; Я знайшов хороший приклад для word2vec на веб-сайті deepplearning4j, але жоден для пропозицій. Я зрозумів, як будуються слова вектори і чому, але не зміг знайти вичерпного пояснення для векторів речень.
Використовуючи мисляні вектори як вхід і вихід, я збираюся тренувати нейронну мережу. Я не знаю, скільки шарів він повинен мати, а які повинні бути шарами lstm.
Тоді повинна бути ще одна нейронна мережа, яка здатна перетворити вектор думки в послідовність символів, що складають речення. Я читав, що мені слід використовувати padding для компенсації різної довжини речення, але пропускаю, як кодувати символи (чи достатньо кодових точок?).