一种基于深度学习的古诗文自动识别方法技术

技术编号:22001267 阅读:48 留言:0更新日期:2019-08-31 05:40
本发明专利技术公开了一种基于深度学习的古诗文自动识别方法,其特征在于,包括收集训练语料、数据预处理、特征向量嵌入、神经网络训练和古诗文自动识别的步骤。本发明专利技术构建文本分类形式的深度神经网络模型,自动识别文本句子是否为古诗文类型,同时能有效避免错别字降低识别准确率。能满足作诗质量检测、文学作品分类管理、自动采集古诗文等应用场景对古诗文自动识别技术的需求。

An Automatic Recognition Method of Ancient Poetry Based on Deep Learning

【技术实现步骤摘要】
一种基于深度学习的古诗文自动识别方法
本专利技术涉及自然语言处理领域,特别是涉及一种基于深度学习的古诗文自动识别方法。
技术介绍
近年来自然语言处理技术与语言学、文学的结合日趋紧密,文本分类已有效应用于人类语言的情感、意图的自动识别,但鲜有应用于古诗文自动识别上。诸多应用场景都有着对古诗文自动识别技术的需求,如作诗质量检测:对人工作诗、程序作诗的古诗文作品质量进行检测;文学作品分类管理:对古诗文作品和现代文学作品进行自动分类;程序自动采集海量网络古诗文作品等。由于传统文本分类方法极大依赖于人工进行特征工程,而深度学习自动获取特征表达的能力既避免了繁杂的人工特征工程,也能有效解决大规模文本分类问题。基于深度学习的文本分类任务通常按照下列步骤实施:(1)收集语料,构建语料库(2)标注语料类别,构建训练集、验证集和测试集(3)构建神经网络模型,用数据集训练模型(4)用训练好的模型预测未知文本的类别。然而应用于中文文本分类的深度学习模型存在以下缺陷:(1)文本中错别字会降低分类准确率。在古诗文自动识别这一任务上尤为明显,古诗文用词出现错别字容易被误识别为现代汉语;(2)文本长度特征容易误导文本分类器给出错误结果,如古诗文识别任务中古诗文长度通常在五至十字左右,文本分类器容易误将该长度的语句通通判别为古诗文类型;(3)通常文本分类模型需要学习词向量的特征分布,而分词器准确度、分词粒度限制了文本分类模型的表现,况且古诗文不适合分词;(4)在小数据集上非常容易过拟合导致准确率的降低;(5)难以训练一个有效的深度神经网络模型,训练过程中容易出现梯度爆炸、梯度消失问题,导致模型无法收敛。因此如何发挥深度学习的优势,实现对古诗文的自动识别是当前兹待解决的技术问题。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的不足,提供一种基于深度学习的古诗文自动识别方法。为解决上述技术问题,本专利技术提供一种基于深度学习的古诗文自动识别方法,其特征在于,包括收集训练语料、数据预处理、特征向量嵌入、神经网络训练、古诗文自动识别的步骤,具体为:步骤1,收集训练语料:利用爬虫程序爬取互联网网站提供的古诗文作为正样本集;收集现代汉语句子语料作为负样本集;统计正样本集中古诗文句子长度,根据正样本集中句子长度的集中分布范围,选择95%以上句子的句长分布值,以此数值修改负样本集中的句子长度的分布;统计正样本集与负样本集中句子数量,如数量不等,则以数量较少的一方样本数量为准,保持正负样本数量比例为1:1;步骤2,数据预处理:使用拼音生成工具标注正、负样本集中每个句子的拼音,以标签“0”和“1”标注句子类别,其中标签“0”代表现代汉语,标签“1”代表古诗文;将句子与相应的拼音、类别标签合并为训练样本,即Samplei(S,P,T)由句子(S)、拼音(P)、类别标签(T)组成,随机打散样本集合中的样本顺序,并按8:1:1的比例划分成训练集、验证集、测试集;步骤3,特征向量嵌入:统计样本集中古诗文短句的字数,选择最长句包含的字数作为样本集中句子和拼音长度值,记为L,将数据集中每个样本的句子与拼音分别固定为该长度L,然后将二者拼接,转化成固定长度为2L的特征向量,向量中每一维度代表单个汉字或单个拼音;步骤4,神经网络训练:构建神经网络结构,网络结构依次包含Embedding层、CNN卷积层、BactchNormalization层、激活层、CNN最大池化层和全连接层;所述embedding层用于将古诗文的文本编码成数值向量;所述CNN卷积层用于提取古诗文诗句的文本特征;所述BatchNormalization层用于提升模型训练效率,加速模型拟合;所述激活层用于加入非线性因素提高模型表达能力;所述CNN最大池化层用于提取古诗文诗句文本中最重要的特征;所述全连接层用于将文本特征转换成类别预测的概率;初始化神经网络中的权重和超参数,输入训练数据集,迭代训练神经网络至损失函数收敛;步骤5,古诗文自动识别:加载步骤4中训练得到的用于古诗文识别的深度学习模型,输入待识别语句,运行模型预测语句是否为古诗文类型。所述步骤1中,负样本集中包含数量在50%以上的长度小于10字的句子。所述步骤1中,统计负样本集中每个句子句长,增加负样本的方法包括:(1)对于负样本集中的句子,判断句子成分中是否存在动词名词短语或者名词动词短语,若存在,则将句中的动词名词组合提取成单独的短句子并加入负样本集中;(2)针对负样本集中每一个句子长度大于10的句子,随机从[5,10]的区间内取一个整数值,从原始句子截取该数值长度的子句并加入负样本集中。所述步骤2中,检测句子中的多音字,如果有,则保留多音字的每种读音。所述步骤3中,特征向量嵌入过程具体包括:步骤301:判断S和P的长度是否大于L,“是”则分别将S和P中超出L的后续部分截断,“否”则用‘<PAD>’字符分别填充S和P直至长度等于L;步骤302:拼接S和P,每个样本变为Samplei(S+P,T),其中S+P是长度固定为2L的输入;步骤303:统计Sample集合中所有汉字与拼音的类型数量为dict_size,为每个汉字与拼音赋予[0,dict_size-1]整数空间内的唯一整数值作为其位置;构造字典Dict,将所有汉字和拼音映射至字典空间Dict,该字典空间Dict的键值对分别为{keyi:Positioni},其中,keyi是一个汉字或拼音,Positioni是keyi在字典空间中的位置序号,根据字典空间中的键值对映射关系,将Samplei中的“S+P”映射成一个由Positioni组成的特征向量,维度为(1,2L)。所述步骤4神经网络训练过程具体包括:步骤401:Embedding层随机初始化一个以dict_size×embed_size为维度且满足均匀分布的随机权重向量W,其中dict_size是字典空间中的汉字和拼音的总数;embed_size为128;该权重向量W的作用是将字典空间Dict中的每个汉字或拼音随机初始化成一个长度为embed_size的一维均匀分布向量,根据特征向量各维度代表单个汉字或拼音的位置Positioni,匹配W中对应位置的以embed_size为长度的向量;最终,以batch_size×2L为维度的原始输入,经过Embedding层后被转换为成三维向量输出,维度为:batch_size×2L×embed_size;其中batch_size为每次数据的样本数;步骤402:将Embedding层的输出向量送入一维卷积层,设置卷积层超参数,包括卷积核个数H、卷积核尺寸及种类数M、卷积步长;其中,卷积核个数H为256;卷积核尺寸根据词语通常包含的字数及经统计的诗句中的字数集中分布值进行确定,以捕捉一句话中连续N个字的N元语法特征和语序特征;卷积步长设为1,卷积层最终输出M个特征图,其中M是设置的卷积核尺寸的种类数,每个特征图的维度为(batch_size,2L-M+1,1,H);对卷积后的输出进行dropout优化,让输出神经元在达到指定概率值时停止工作,所述指定概率值(dropout_prob)为0.5,即随机选择一半神经元不进行学习,剩余神经元在被激活之前,经过BatchNormalizat本文档来自技高网
...

【技术保护点】
1.一种基于深度学习的古诗文自动识别方法,其特征在于,包括收集训练语料、数据预处理、特征向量嵌入、神经网络训练、古诗文自动识别的步骤,具体为:步骤1,收集训练语料:利用爬虫程序爬取互联网网站提供的古诗文作为正样本集;收集现代汉语句子语料作为负样本集;统计正样本集中古诗文句子长度,根据正样本集中句子长度的集中分布范围,选择95%以上句子的句长分布值,以此数值修改负样本集中的句子长度的分布;统计正样本集与负样本集中句子数量,如数量不等,则以数量较少的一方样本数量为准,保持正负样本数量比例为1:1;步骤2,数据预处理:使用拼音生成工具标注正、负样本集中每个句子的拼音,以标签“0”和“1”标注句子类别,其中标签“0”代表现代汉语,标签“1”代表古诗文;将句子与相应的拼音、类别标签合并为训练样本,即Samplei(S,P,T)由句子(S)、拼音(P)、类别标签(T)组成,随机打散样本集合中的样本顺序,并按8:1:1的比例划分成训练集、验证集、测试集;步骤3,特征向量嵌入:统计样本集中古诗文短句的字数,选择最长句包含的字数作为样本集中句子和拼音长度值,记为L,将数据集中每个样本的句子与拼音分别固定为该长度L,然后将二者拼接,转化成固定长度为2L的特征向量,向量中每一维度代表单个汉字或单个拼音;步骤4,神经网络训练:构建神经网络结构,网络结构依次包含Embedding层、CNN卷积层、Bactch Normalization层、激活层、CNN最大池化层和全连接层;所述embedding层用于将古诗文的文本编码成数值向量;所述CNN卷积层用于提取古诗文诗句的文本特征;所述Batch Normalization层用于提升模型训练效率,加速模型拟合;所述激活层用于加入非线性因素提高模型表达能力;所述CNN最大池化层用于提取古诗文诗句文本中最重要的特征;所述全连接层用于将文本特征转换成类别预测的概率;初始化神经网络中的权重和超参数,输入训练数据集,迭代训练神经网络至损失函数收敛;步骤5,古诗文自动识别:加载步骤4中训练得到的用于古诗文识别的深度学习模型,输入待识别语句,运行模型预测语句是否为古诗文类型。...

【技术特征摘要】
1.一种基于深度学习的古诗文自动识别方法,其特征在于,包括收集训练语料、数据预处理、特征向量嵌入、神经网络训练、古诗文自动识别的步骤,具体为:步骤1,收集训练语料:利用爬虫程序爬取互联网网站提供的古诗文作为正样本集;收集现代汉语句子语料作为负样本集;统计正样本集中古诗文句子长度,根据正样本集中句子长度的集中分布范围,选择95%以上句子的句长分布值,以此数值修改负样本集中的句子长度的分布;统计正样本集与负样本集中句子数量,如数量不等,则以数量较少的一方样本数量为准,保持正负样本数量比例为1:1;步骤2,数据预处理:使用拼音生成工具标注正、负样本集中每个句子的拼音,以标签“0”和“1”标注句子类别,其中标签“0”代表现代汉语,标签“1”代表古诗文;将句子与相应的拼音、类别标签合并为训练样本,即Samplei(S,P,T)由句子(S)、拼音(P)、类别标签(T)组成,随机打散样本集合中的样本顺序,并按8:1:1的比例划分成训练集、验证集、测试集;步骤3,特征向量嵌入:统计样本集中古诗文短句的字数,选择最长句包含的字数作为样本集中句子和拼音长度值,记为L,将数据集中每个样本的句子与拼音分别固定为该长度L,然后将二者拼接,转化成固定长度为2L的特征向量,向量中每一维度代表单个汉字或单个拼音;步骤4,神经网络训练:构建神经网络结构,网络结构依次包含Embedding层、CNN卷积层、BactchNormalization层、激活层、CNN最大池化层和全连接层;所述embedding层用于将古诗文的文本编码成数值向量;所述CNN卷积层用于提取古诗文诗句的文本特征;所述BatchNormalization层用于提升模型训练效率,加速模型拟合;所述激活层用于加入非线性因素提高模型表达能力;所述CNN最大池化层用于提取古诗文诗句文本中最重要的特征;所述全连接层用于将文本特征转换成类别预测的概率;初始化神经网络中的权重和超参数,输入训练数据集,迭代训练神经网络至损失函数收敛;步骤5,古诗文自动识别:加载步骤4中训练得到的用于古诗文识别的深度学习模型,输入待识别语句,运行模型预测语句是否为古诗文类型。2.如权利要求1所述的一种基于深度学习的古诗文自动识别方法,其特征在于:所述步骤1中,负样本集中包含数量在50%以上的长度小于10字的句子。3.如权利要求2所述的一种基于深度学习的古诗文自动识别方法,其特征在于:所述所述步骤1中,统计负样本集中每个句子句长,增加负样本的方法包括:(1)对于负样本集中的句子,判断句子成分中是否存在动词名词短语或者名词动词短语,若存在,则将句中的动词名词组合提取成单独的短句子并加入负样本集中;(2)针对负样本集中每一个句子长度大于10的句子,随机从[5,10]的区间内取一个整数值,从原始句子截取该数值长度的子句并加入负样本集中。4.如权利要求3所述的一种基于深度学习的古诗文自动识别方法,其特征在于:所述所述步骤2中,检测句子中的多音字,如果有,则保留多音字的每种读音。5.如权利要求4所述的一种基于深度学习的古诗文自动识别方法,其特征在于:所述步骤3中,特征向量嵌入过程具体包括:步骤301:判断S和P的长度是否大于L,“是”则分别将S和P中超出L的后续部分截断,“否”则用‘<PAD>’字符分别填充S和P直至长度等于L;步骤302:拼接S和P,每个样本变为Samplei(S+P,T),其中S+P是长度固定为2L的输入;步骤303:统计Sample集合中所有汉字与拼音的类型数量为dict_size,为每个汉字与拼音赋予[0,dict_size-1]整数空间内的唯一整数值作为其位置;构造字典Dict,将所有汉字和拼音映射至字典空间Dict,该字典空间Dict的键值对分别为{keyi:Positioni},其中,keyi是一个汉字或拼音,Positioni是keyi在字典空间中的位置序号,根据字典空间中的键值对映射关系,将Samplei中的“S+P”映射成一个由Positioni组成的特征向量,维度为(1,2L)。6.如权利要求5所述的一种基于深度学习的古诗文自动识别方法,其...

【专利技术属性】
技术研发人员:张灿殷亚云
申请(专利权)人:焦点科技股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1