自《诗经》起,经汉乐府的发展和历代演化,诗词在唐宋达到顶峰,被后世广为传颂,明清直至近当代,人们对古典诗词的热爱耐久不衰。
加之近年来,随着国学的复兴和诗词大会的持续升温,古典诗词走进千家万户。聆听经典、唱诵古诗成为一大乐事。诗词之美,在格律、在意象、在赋比兴。
然而,精良的中文古典诗词作品,须要墨客的文学功底厚积而薄发,感世间百态、书千古美谈、作风流文章。
普通百姓对付诗词的热爱虽盛,却每每止步于欣赏和背诵名作名篇。读诗尚可、品诗亦得意其乐,谈及写诗、作诗则敬而远之。
打破性的便是,随着大数据、语料库和统计科学的发展,我们可以获取的诗词资源是海量的,能够有效挖掘中文古典诗词的宝库,从中学习古诗词的量化和统计规律,以及经典名篇中的行文和句法技巧,意象及铺陈规则,加上古诗词特有的平仄韵律,我们是否可以让诗词创作“飞入平凡百姓家”?
倘若古诗文中的上述特色提取,不是人工标注,不依赖于专家知识,在大数据、神经网络和图型处理单元(Graphics Processing Unit,GPU)广泛遍及的今时今日,由机器完成提取特色、自动迭代、推演填词、谱写校正的过程,打算机必将赞助人类墨客的创作,呈现出更多更好的诗词作品,来丰富我们日益增长的经典文化和国学艺术需求。
也因此自然而然的,对付“机器作诗”的研究也应运而生,成为研究打算机自动剖析、理解和利用人类措辞的一个主要切入点。
早期的诗词天生模型都是基于规则和模板。例如,ASPERA诗词天生系统和日文俳句天生系统。
而在此之后,统计”机器学习方法”也被陆续用到诗歌天生上。Levy和Manurung先后探索利用遗传算法来进行诗歌天生。
与此同时,一些研究者也开始利用其他类型的文本天生模型。比如,Yan等人提出利用自动文本择要的办法进行诗歌天生,将诗歌的天生过程看作是从全体古诗库进行择要的过程。
此外,在诗歌天生任务上提升显著的模型是统计机器翻译(Statistical Machine Translation,SMT)模型。Jiang和Zhou首先将SMT模型用于中文对联的天生,取得了良好的效果。随后,He进一步将此模型运用于中文绝句的天生。
然而,随着人工神经网络的发展,诗词自动天生迎来了一个全新的阶段——基于神经网络的诗词天生。
随着人工神经网络在机器翻译方面的打破性进展,研究者从统计模型和对联天生研究逐渐过渡到基于翻译机制的网络模型来进行打算机诗词创作取得了一定的造诣。
2014年,EMNLP (Conference on Empirical Methods in Natural Language Processing)会议上,Zhang和Lapata首次利用循环神经网络(Recurrent Neural Network,RNN)创作中文绝句。
方法为,利用了一个编码器(encoder)加上一个解码器(decoder)的构造,将天生的每句诗向量化,然后压缩到一个高下文向量中,用以捕捉诗歌的高下文信息。
图一
为了更好的理解该诗句天生模型,下面对RNN(循环神经网络)进行深入解析。
RNN的网络构造和韶光序列展开式,如图1所示,个中每个圆圈可以看作是一个单元,而且每个单元内部完成的任务都是一样的,因此可以折叠为左侧的循环构造。用一句话阐明RNN,便是单元构造的重复利用。
循环神经网络供应按韶光步长的联合处理有益于大多数序列标记任务,包括文本分类、情绪识别、措辞天生等详细运用常见的循环神经网络改进构造紧张包含是非时影象网络(Long Short-Term Memory,LSTM)和门限递归单元(Gated Recurrent Units,GRU)构造。
以产生梯度永劫光持续流动的路径是初始化LSTM模型的核心贡献。它由Hochreiter等1997岁首年月次提出,一个关键的扩展是采取“门”来掌握循环的权重,积累的韶光尺度也可以动态的改变。
图二
在这种情形下,纵然是具有固定参数的LSTM,积累的韶光尺度也可以由于输入序列而改变。如图2展示了一个标准的LSTM构造。
当输入序列信息过永劫,LSTM可以办理普通循环神经网络模型带来的梯度爆炸和弥散的问题。它将传统的神经元更换成有影象系统的神经元(被称作影象神经元),可以较好地办理RNN模型会丢弃乃至无法处理长序列信息的问题。
图3
双向是非时影象神经网络(BiLSTM)是在所述的LSTM根本上,通过构建两个并行的隐蔽层同时从正序和逆序两个方向处理序列信息,详细的网络构造如图3所示。
个中,两个并行神经元分别从前向层和反向层两个方向打算隐蔽层状态后合并到输出层。
详细而言,给出一个词和这个词的位置,须要从这个词开始向前向后个字天生几个字,末了合起来一共7个字,以是须要一个向前天生和一个向后天生的模板。
向后天生:例如“黄河远上白云间”,如果我们给出了“远上”这个词,那么就须要向后天生“白云间”这三个字。
以是对付这种向后天生的情形,我们给出一个向后的演习办法,便是给出x为"远上"那么对应的v为"白",接下来给出x“上白”,对应y为“云”,以此类推演习出一个模板,这样就可以向后天生。
向前天生:便是给出"远上"须要天生前面的,以是我们给出演习办法,x“上远”,对应y“河”,接着x“远河”,对应v"黄",这样就可以向前天生。
RNN模型大致如上,而个中还有一个观点“词向量”也极为关键。词向量是将文本分词后,以向量的形式表示每一个词语,这种转换办法称为词嵌入(Word Embedding)。
早期的词嵌入是通过One-hot Representation来表示词向量,例如:春眠不觉晓,处处闻啼鸟。分词结果如下:“春眠\不\觉\晓\,\处处\闻\啼鸟。”
分词后用向量表示每一个词语,去掉标点,词语的总数量即为词典维度,每一个词所在位置为1,其它为0,如:春眠=[1,0,0,0,0,0,0],不=[0,1,0,0,0,0,0],……,鸟=[0,0,0,0,0,0,1]。
这种表达词语的向量空间为系数矩阵,便于做打算,但是有两个缺陷:
一是在做一些深度学习的运算时造成维度灾害;
二是没有表示词语之间的关联性。为了能够在低维向量空间中表示词语,Mikolov提出了Word2vec来实现高效的低维词向量演习方法,它对序列局部数据有着很好的阐明。
Word2vec紧张包括了CBOW(Continuous bag-of-words for word2vec)和Skip-gram两个词嵌入模型如(图4)。
Word2vec在千万数量级的词典和上亿的数据集上面进行高效地演习,并且得出词嵌入的结果,可以很好地度量词与词之间的相似性。
有了大量的诗词语料根本,我们同样可以构建出适宜诗词文本的向量表示。在一首包含n个词或者汉字的诗词作品中,wi表示第i个字的向量,那么整首诗词作品可以表示为:P={W1,W2,…,Wn}。
我们可以用此进行文本分类、新闻推举、情绪剖析等事情。也为后期能将文本数据输入到CNN或者RNN以及各种繁芜模型做好了充足的准备。同时,该方法对措辞进行各种语义组合供应了很大的帮助。
然而在Word2vec模型中,同一个词是有相同的词向量的,但是在日常生活中,同一个词有着不同的语义,如果用同一组词向量表示具有不同语义的词,则会涌现很多不必要的缺点。
ELMo的涌现便旨在处理这种一词多义的征象(如图5所示)。
ELMo模型,是由两层LSTM组成个中左侧为正向LSTM,右侧为反向LSTM。
对付左侧下方的“川”字来说,它与对应神经元以及由前方传来的信息打算往后得到向量V3,而后V3作为输入通过LSTM预测下一个字,此时就可以将V3当作是“川”这个字的向量,同时,右侧反向也会得到一个相应的向量v3′,将v3和v3′组合起来就得到了这一层中这个字的向量。
同理,第二层也会得到一组与第一层表示同一个字的向量,于是设置参数a,b使得这个字的向量终极表示为:v=a∗v1+b∗v2。
事理剖析完毕,然而当时Zhang和Lapata最早运用的RNN模型较为大略,为了提升诗词的连贯性和畅通性,二人的模型还须要和两个额外的SMT特色以及一个基于n-gram的措辞模型相结合。
于是,Yan提出了polish模型,同样是利用RNN进行绝句的天生,但不同之处在于,Yan的模型会对一首诗进行多次天生。
每次天生时,会考虑上一次天生的诗词,以仿照人类在创作诗歌时,不断修正润色的过程,从而提升诗词的质量。
进一步,Yi等人第一次提出用结合了把稳力机制的Sequence-to-Sequence模型来进行诗词天生。他们针对绝句中不同的位置演习了不同的模型,以此来提升诗词的高下文关联性。
随后,在绝句天生任务上,Wang等人提出了Planning模型,该模型预先方案一首绝句里四个句子每一句对应的关键词,然后用对应的模型天生每一句。以往的模型天生的诗词大多缺少新颖性,故Zhang等人提出了利用影象网络来进行诗词天生。
为了提升天生诗词的新颖性,他们将数百首古人创作的诗词存入一个外部的Memory,以供应更丰富的外部知识来勾引模型天生。同时,通过掌握Memory中存储的诗词风格,他们的模型也能实现对天生的诗词风格的大略掌握。
上述提及过的Yi等人实在也同样提出过利用Memory模型。他们则利用三个不同的Memory来仿照人类进行诗词创作时的写作和影象习气。
同时,采取了一种文体向量,能够将诗词的格律和构造信息与诗词内容在一定程度上分离。从而,使一个演习好的模型能天生不同文体的诗词。
行文至此,神经网络的运用研究对付诗词天生的浸染已不言而喻。
“云山水落花前影,沽酒醉中一笑愁”,正如机器作品中所述,措辞与人工智能相结合的道路苦乐相随,安之若素、甘之如饴,以措辞学之根基,交融打算机技能,回归交叉学科的初心,便是让古典诗词走入平凡百姓生活,传承出国宝添异彩、岁月里源远又流长。