我做这个是为了好玩(或者像4chan上说的“为了乐呵乐呵”),如果在这个过程中我能学到些什么那就更好了。我大约两年前上过一门人工智能课程,我真的很喜欢它,但我设法忘记了一切,所以这是一种复习的方式。
无论如何,我希望能够根据一组输入生成文本。基本上,这将读取论坛输入(或者可能是Twitter推文),然后根据学习内容生成评论。
现在最简单的方法是使用马尔可夫链文本生成器,但我想要比这更复杂的东西,因为MKC基本上只通过单词顺序学习(给定输入文本,单词x之后最可能出现哪个单词)。我正在尝试看看我是否可以做些什么让它更智能一点。
例如,我希望它能做到以下几点:
- 从消息板中的大量帖子中学习,但不要赋予过高的权重
- 对于每个帖子:
- 从该帖子中的其他评论中学习,并赋予这些输入更高的权重
- 生成评论并发布
- 看看其他用户对你的帖子的反应如何。如果反应良好,则积极赋予其权重,以便你发布更多与该帖子相似的帖子,反之亦然。
我不太确定如何实现权重分配和从错误中学习的部分。我考虑过人工神经网络(主要是因为我记得我很喜欢那一章),但据我所知,它主要用于对事物进行分类(即,给定一组有限的选择[x1…xn],这个给定的输入是哪个x),而不是真正生成任何东西。
我甚至不确定这是否可行,如果可行,我应该如何学习/弄清楚。哪种算法最适合这个?
对于那些担心我会用它作为机器人来发送垃圾邮件或为SO提供糟糕答案的人,我保证我不会用它来提供(糟糕的)建议或为了利润而发送垃圾邮件。我绝对不会在SO上发布它那些毫无意义的想法。我计划把它用于我自己的娱乐。
谢谢!
回答:
我也在考虑类似的事情。我认为结合语法分析器和马尔可夫链生成器可能会带来显著的改进。然后,MC可以在文本短语(动词“开车”通常与宾语“汽车”一起使用)上进行训练,并生成语法上正确的句子。