我想开始尝试神经网络,作为一个玩具问题,我希望训练一个人聊天,即实现像cleverbot这样的聊天机器人。反正不是那么聪明。
我到处找了一些文档,发现有很多关于常规任务的教程,但是关于这个特定主题的教程很少。我发现的只是暴露了结果,而没有给出实现的见解。这样做的人做起来很浅(seq2seq上的tensorflow文档页面缺少imho)。
现在,我觉得我可能已经或多或少地了解了原理,但是我不确定,甚至不确定如何开始。因此,我将解释如何解决该问题,并希望对此解决方案提供反馈,告诉我我在哪里出错了,并且可能与该过程的详细解释和实践知识有任何联系。
我将用于该任务的数据集是我所有Facebook和whatsapp聊天记录的转储。我不知道它会多大,但可能还不够大。目标语言不是英语,因此我不知道在哪里可以快速收集有意义的对话样本。
我将从每个句子中产生一个思想载体。仍然不知道实际如何;我在deeplearning4j网站上找到了word2vec的一个很好的例子,但句子却没有。我了解单词向量的构建方式以及原因,但是我找不到句子向量的详尽解释。
使用思想向量作为输入和输出,我将训练神经网络。我不知道它应该有多少层,哪些必须是lstm层。
然后应该有另一个神经网络,它能够将思想向量转化为组成句子的字符序列。我读到我应该使用填充来弥补不同的句子长度,但是我想念如何编码字符(代码点足够吗?)。