近来的机器人作诗系统应该都脱胎于Chinese Poetry Generation with Recurrent Neural Networks这篇论文。就公开的系统来说,前有“微软律诗绝句”,后有题主分享的编诗姬。
算法而言,机器作诗无非是基于字符级RNN的各种变形,加之格律的约束。答主之前也稍微有玩过,贴两首自己训练的模型做出的七言诗:
用的算法只是两层的字符级RNN,看起来就可以像模像样的作诗了。
然而机器人作诗的问题,仍然是有“诗感”而无“诗意”。从题主贴出的这首诗来看,只能说乍一看像一首诗,但是诗歌想要表达什么?句与句之间有怎样的演进?终究不禁细想。RNN虽然能通过学习一些长程的字词搭配,保持一首诗风格上,或者“诗意”上的统一,但是仍然不能说学习到了真正的语义。
说到底,计算机能够像模像样地写诗,还是利用了诗歌本身的模糊性和普通人对诗的不熟悉。当计算机开始写作文、写故事的时候,这种语义上的缺点暴露无疑。
从去年的工作来看,最好的通用故事生成器应该是Skip-Thought Vectors,通过训练两组RNN,去encode小说中的句子,再decode出上句和下句。在论文最后,他们给出一个模型生成的故事是这样的: