登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

中文对联自动生成方法研究毕业论文

 2021-03-29 22:27:51  

摘 要

对联是中国独特的文化艺术遗产。给定一个上联,生成一个在句式、内容、平仄方面都相匹配的下联。电脑自动对联产生被认为是一个难题,尚未得到充分的探索。

在本文中,我们提出了一种基于神经网络结构的NCM模型,采用encoder-decoder框架,使用神经网络结构作为自然语言生成问题模型。我们基于大量文本集,研究了单个字符的模型表示,以及它们在上下联中的组合包括词语间的联系和约束,实现了一个自动对联生成系统。对于任意给定的上联,系统可以通过使用编码和解码的连续语言建模生成下联。为了满足对联的特殊对仗性,我们将注意机制和抛光模式引入生成模型中,并取得了较好的效果。

关键词:深度学习;自然语言处理;对联生成;神经网络

Abstract

Chinese couplet is a unique cultural and artistic heritage of china.Given an antecedent clause,people reply with another subsequent clause which match in length,context,rhythm.Automatic couplet generation by computer is viewed as a difficult problem and has not been fully explored.

In this paper,we propose a NCM model based on neural network structure. We use encoder-decoder framework and neural network structure as a natural language generate model. Given a large collection of texts,we learn representations of individual characters, and their combinations within clauses as well as how they mutually reinforce and constrain each other.Given any specified antecedent clause, the system could generate a subsequent clause via sequential language modeling using encoding and decoding. To satisfy special characteristics of couplets, we incorporate the attention mechanism and polishing schema into the generation process,achieved better results.

Key Words:deep learning;neural net;couplet generation;natural language processing

目录

摘 要 I

Abstract II

第1章 绪论 1

1.1 研究背景 1

1.2 目的及意义 1

1.3 国内外研究现状 1

第2章 背景知识 3

2.1 RNN循环神经网络 3

2.1.2循环神经网络应用 4

2.2 Seq2Seq 5

2.3 词向量 6

2.4卷积神经网络 6

2.5中文分词 7

第3章中文对联自动生成研究 9

3.1连续语言模型对联生成 9

3.2基于注意力机制对联生成 10

3.3抛光模式 11

第4章 实验结果分析与评价 13

4.1数据集 13

4.2评价标准 13

4.3实验过程 14

4.3.1实验安排 14

4.3.2结巴分词(部分) 14

4.3.3 词向量化 15

4.3.4创建encoder-decoder模型 17

4.3.5训练 18

4.3.6生成对联举例 20

4.3.7 评分 20

4.4分析与讨论 20

第1章 绪论

1.1 研究背景

中文对联是中国独特的传统古典文学形式。自五代起,对对子被看做一种高雅的文化活动,文人墨客以对对子能力大小评判才学高低,普通人也爱在春节求幅对联贴在门上求个喜庆,然而对联的对仗要求十分严格,给对联的创作造成了障碍。深度学习在自然语言处理方面效果显著,成果众多。

1.2 目的及意义

对联讲究上下联字数、句式、内容、韵律对偶工整。虽然诗歌的自动生成和对联的自动生成有许多相似之处,但对联存在更多的规则限制,并不是所有的诗句都满足对联的格式要求。创作诗歌和对联都被看做较高层次的艺术活动,对于人工智能能否创造艺术,人们依然持怀疑态度,毕竟现有的人工智能创作作品不少,但质量不精,无法媲美传统的艺术创造。弄清楚创造性的原理,研究如何将其教给智能机器是现在人工智能的重要研究方向。在对联的自动生成模型中,Neural Couplet Machine (NCM)模型,以及 Attention Mechanism(注意力机制)和 Polishing Schema对生成的对联质量有较大提高。本文对对联生成过程进行研究,选取最优模型实现上联到下联生成工作。

1.3 国内外研究现状

对联讲究上下联字数、句式、内容、韵律对偶工整。虽然诗歌的自动生成和对联的自动生成有许多相似之处,但对联存在更多的规则限制,并不是所有的诗句都满足对联的格式要求目前,对联自动生成做出来效果最好的是微软亚洲研究院自然语言计算机组做的自动对联系统,这套系统采用统计机器翻译用于对联生成。首先用户给定上联,然后系统自动提供若干下联供用户选择,用户可以通过交互手段优选字词来生成满意的下联;当确定一副对联后还可以生成若干四字横批供用户参考。该系还统支持复字联,拆字联和同音异字联。比如,“烟掩檐上燕”。但目前该系统只支持十字以下对联,除了对联,他们还推出了类似的绝句生成系统。中科院自动化研究所费越采用神经网络的方法研究形象思维层次的"语义",并用春联常用的的词语进行实验,提出了汉语处理的并行模型,该模型将分词、理解和生成这几个过程通过统一的语义表示结合起来.最后,在语义表示和并行模型的基础上,构造了计算机春联艺术系统,取得了比较满意的结果。清华大学智能技术与系统国家重点实验室的张开旭,最先采用基于最大匹配对上联进行分词,然后通过引入训练语料中上下联间能否对仗这一维参数对模型进行优化,最后利用最大熵马尔可夫模型生成对联,受到广泛用户青睐[1]

目前关于对联生成研究中,生成的下联和上联词性对应效果很好,但在内容对应和韵律方面还是不及人为生成的巧妙灵动,特别对于较长的关系内容较复杂的对联尚未有较好的处理方法,这些都是未来研究的重点。

第2章 背景知识

2.1 RNN循环神经网络

2.1.1循环神经网络介绍

循环神经网络是一种节点定向连接成环的人工神经网络。这种网络的内部状态可以展示动态时序行为。RNN不同于传统神经网络的感知机的最大特征就是跟时间挂上钩,即包含了一个循环的网络,就是下一时间的结果不仅受下一时间的输入的影响,也受上一时间输出的影响,进一步地说就是信息具有持久的影响力。人们在看到新的信息的时候产生的看法或者判断,不仅仅是对当前信息的反应,先前的经验、思想的也是参与进去这次信息的推断的。在传统的神经网络模型中,输入层到隐含层再到输出层,层与层之间是全连接的,但在层内部的节点之间并无联系。这种神经网络就具有一定的局限性,比如我们对购物平台上用户评价区分褒贬,传统神经网络很难做到这一点,但是RNN因为具备一定的记忆功能,可以较好的处理这个问题[2].循环神经网络简单说就是当前的输出会和之前的输出有个联系,网络会记忆之前的输入信息,并在输出时参考之前的输出。隐藏层的节点不再独立而是彼此相关联,这样隐藏层的输入包括输入层的输出和隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关,下图2.1便是一个典型的RNN:

图2.1 典型RNN

图2.2循环神经网络展开图示

RNN包含输入单元(Input units),输入集标记为{x0,x1,...,xt,xt 1,...},而输出单元(Output units)的输出集则被标记为{y0,y1,...,yt,yt 1.,..}。RNNs还包含隐藏单元(Hidden units),我们将其输出集标记为{s0,s1,...,st,st 1,...},这些隐藏单元完成了最为主要的工作。在图2.1右侧图中:有一条单向流动的信息流是从输入单元到达隐藏单元的,与此同时另一条单向流动的信息流从隐藏单元到达输出单元。在某些情况下,RNNs会打破后者的限制,引导信息从输出单元返回隐藏单元,这些被称为“Back Projections”,并且隐藏层的输入还包括上一隐藏层的状态,即隐藏层内的节点可以自连也可以互连。 

上图2.2将循环神经网络进行展开形成一个全神经网络。对于该网络的计算过程如下:

(1)xt表示第t,t=1,2,3...步(step)的输入。比如,x1为第二个词的one-hot向量(根据上图2.2,x0为第一个词);

(2) st为隐藏层的第t步的状态,它是网络的记忆单元。 st根据当前输入层的输出与上一步隐藏层的状态进行计算。,其中f一般是非线性的激活函数,如tanh或ReLU,在计算S0时,即第一个单词的隐藏层状态,需要用到s−1,但是其并不存在,在实现中一般置为0向量。

ot是第t步的输出,如下个单词的向量表示,ot=softmax(Vst)。

2.1.2循环神经网络应用

实践证明RNN对自然语言处理是非常有效成功的。比如seq2seq机器翻译,对话机器人,社区问答系统,文本生成等,Andrew Karpathy基于RNNs的字符级别的语言模型实现了莎士比亚的文章进行训练,能够产生一个新的类似莎士比亚的文本。除此之外RNN在图像描述和语音识别方面也取得很好的效果[3]

2.2 Seq2Seq

Seq2Seq技术,全称Sequence to Sequence,是一种广泛使用的序列到序列的深度学习算法,在机器翻译、机器阅读、语音识别、智能对话和文档摘要生成等,都有广泛的应用。Seq2Seq由encoder和decoder两个部分来构成,假设模型的训练样本为(X,Y),encoder负责把输入X映射到隐向量Z,再由decoder把Z映射到输出Y。Seq2Seq解决问题的主要思路是通过深度神经网络模型(例如循环神经网络)将一个作为输入的序列映射为一个输出的序列,过程是先将输入进行编码,构建中间语义编码,再通过解码得到输出序列[4]。比如说我们现在有序列“x1,x2,x3,x4,EOS” 作为输入(EOS是句子结束符),那么我们的目的就是将“x1”,“x2”,“x3”,“x4”,“EOS”依次输入模型后,把其映射为序列“y1,y2,y3, EOS”作为输出。

图2.3encoder-decoder框架表示

对于句子对lt;X,Ygt;,我们的目标是给定输入句子X,期待通过encoder-decoder框架来生成目标句子Y。X和Y可以是同一种语言,也可以是两种不同的语言。而X和Y分别有各自的单词序列构成。

X=lt;x1,x2,.....xmgt; (2.1)

Y=lt;y1,y2....yngt;

(1)编码 比如使用RNN对输入句子X转化为语义向量:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图