基于深度学习的文本写作风格的分类与识别毕业论文
2020-02-23 18:22:07
摘 要
Abstract II
1 绪论 1
1.1 研究背景 1
1.2 目的及意义 1
1.3 国内外研究现状 1
1.4 基本内容和技术方案 2
1.5 项目目标 3
1.6 实验流程图 3
1.7 实验配置 4
1.8 本文的组织 4
2 文本分类及处理 5
2.1 数据集的选取 5
2.2 文本预处理 5
2.2.1 分词 5
2.2.2 去除标点空格、停用词 6
2.3 特征提取 7
2.3.1 标点符号频率分布特征 7
2.3.2 虚词频率分布特征 8
2.3.3 词长频率分布特征 9
2.4特征向量 10
3 基于神经网络的分类模型 11
3.1 深度学习 11
3.2 神经网络模型 11
3.3 模型介绍 12
3.3.1 DNN 12
3.3.2 CNN 14
4 实验过程及结果分析 16
4.1 获取语料 16
4.2 特征提取 16
4.3 语料分词预处理 17
4.4 建模 17
4.5训练 17
4.6 结果分析 18
4.6.1 实验一——不同比例划分测试集 18
4.6.2 实验二——两位作者分类对比 19
4.6.3 实验三——两种神经网络模型 19
4.6.4 实验小结 20
5 结语 21
5.1 工作总结 21
5.2 工作展望 21
参考文献 22
致谢 23
摘 要
写作风格是一个抽象概念,没有确切定义的模式用于风格判定。传统的分类大都是人工考究,耗时耗力。为了能更快更有效地正确区分作者,辨别作者,本文提出了一个基于深度学习的文本写作风格的分类模型。本文的主要工作内容如下:
- 文章数据采集和处理
利用网络收集了三毛(160个文本)和江南(200个文本)两位作者的现有作品以及部分其他作者(100个文本)的文本总共460个文本作为本文的数据集,对它们进行基本的文本的预处理操作,利用jieba分词工具进行简单的分词操并去除停用词。
- 写作风格特征提取
借鉴相关研究,本文提取了三个写作风格特征,由22个标点使用频率、825个虚词词频以及4种词长的词频,构建为一个851维的特征向量。
- 写作风格分类模型设计
通过比较和学习自然语言处理中相关写作风格分类的研究,本文设计了两种基于神经网络并使用keras深度学习框架的分类模型,用于对向量化的特征进行分类和识别。一是较为简单的基于DNN(深度神经网络)的模型,二是基于CNN(卷积神经网络)的模型。
并做了三组对比实验,分别是:
- 以6:4和8:2的比例划分数据集进行实验
- 对三毛和江南两位不同作者的数据进行实验
- 对DNN和CNN两种不同模型进行实验
实验结果为,6;4划分数据集平均准确率为96.55%,8:2划分平均准确率略高一点为97.31%,说明在数据集大小固定的前提下更多训练数据能使模型具有更高的准确率;三毛的分类准确率平均为96.55%,而江南的为94.75%,说明对于不同作者分类效果存在一定差异,可能和作者写作风格是否鲜明有关,也可能和提取的风格特征有关;DNN模型准确率为96.08%,CNN模型准确率为95.13%,说明DNN更适合该模型。
综上数据表明,本文提取的写作风格特征在一定程度上能够描述和区分不同作者的写作风格,本文设计的深度学习分类模型能够与提取的特征相结合,能较好完成写作风格分类和识别任务。
关键词:写作风格;作者识别;深度学习;神经网络
Abstract
The writing style is an abstract concept and there is no well-defined pattern for style determination. The traditional classification is mostly manual and time consuming. In order to distinguish the authors from the authors quickly and effectively, and identify the authors, this paper proposes a text writing style classification model based on deep learning. The main works of this article are as follows:
(1) Article data collection and processing
Using the Internet, a total of 460 texts of the author's existing articles by Sanmao (160 texts) and Jiangnan (200 texts) as well as some other authors (100 texts) were collected as the dataset of this paper. The basic text preprocessing operation uses the jieba word segmentation tool to perform simple word segmentation operations and remove the stop words.
(2) Writing style feature extraction
Drawing on relevant research, this paper extracts three writing style features, which is constructed as a 851-dimensional feature vector with 22 punctuation frequency, 825 word frequency and 4 word length word frequency.
(3) Writing style classification model design
By comparing and studying the research of related writing style classification in natural language processing, this paper designs two classification models based on neural network and using keras deep learning framework to classify and recognize vectorized features. One is a simpler model based on DNN (deep neural network) and the other is a model based on CNN (convolutional neural network).
Three sets of comparative experiments were done, which are:
(1) Divide the dataset by 6:4 and 8:2 to experiment
(2) Experiment with the data of two different authors: Sanmao and Jiangnan
(3) Experiment on two different models of DNN and CNN
The experimental results show that the average accuracy of the 6:4 partition is 96.55%, and the average accuracy of the 8:2 partition is slightly higher than that of the 97.31%. This shows that more training data can make the model higher if the dataset size is fixed. The accuracy rate of Sanmao is 96.55% on average, and that of Jiangnan is 94.75%. This shows that there are certain differences in the classification effect of different authors, which may be related to the author's distinctive writing style, and may be related to the extracted style features; The accuracy of the DNN model is 96.08%, and the accuracy of the CNN model is 95.13%, indicating that the DNN is more suitable for this model.
In summary, the data show that the style of writing style extracted from this paper can describe and distinguish the writing styles of different authors to some extent. The deep learning classification model designed in this paper can be combined with the extracted features and can be used to better complete the writing style classification and recognition tasks.
Key Words:writing style; Author identification; deep learning; Neural network
1 绪论
1.1 研究背景
如今的社会是一个信息化的社会,随着互联网的快速发展和普及,网络上的信息充斥着人们的生活。面对浩瀚的信息海洋,如何从庞大的信息中提取出我们真正需要的有用的信息,越来越成为一件重要的事情。
风格是人们在日常的交谈、写作过程中所形成的个人语言特征,这种特征在数量上的表现,是人们各自的语言在统计指标上的差异[1]。对于不同的作者,会有自己不同的写作特点,这些特点体现在他文章的句子中,用到的词汇、句型、修辞手法等方面。虽然有些特点会不断地在变化,但有些特点则会在一段时间趋于稳定,进一步可以通过一篇文章的写作风格来推断作者。
1.2 目的及意义
网络是一个开放的世界,任何人都可以畅所欲言,比如,在论坛、贴吧、微博,可以尽情地抒发自己的观点和想法;通过社交软件,可以和想交流的人随时随地联系。但是凡事有利有弊,网络带来便利的同时,也存在一些问题。比如,很难去确定一篇文章、帖子的作者是谁,尽管有些网站采用了一些身份认证的方法[1],但如果用户不提供实名认证,或者想隐瞒自己的真实身份,那么也很难得知。这时通过分析作品的写作风格来识别作者,能有效地解决这个问题。
通过分析作品的写作风格来对进行分类和作者识别有很多方面的应用,比如在文学创作领域可以帮助人们鉴定某些存在争议的文学作品的作品、判断文章是否剽窃他人作品、识别作者不详的作品等[1]。它具有抄袭检测、法证语言学等相关方面的应用,例如识别威胁电子邮件或恶意代码的作者。法律和新闻等应用领域也可以从中受益,在这种领域中识别一段文本的真正作者可能有助于挽救生命或抓住罪犯。在考古研究领域,由于我国是四大文明古国之一,历史悠久,大量的文学作品因时间太久、版本太多使得作者得不到确认,或者说存在争议,而传统的通过人力考察文献的方法又耗时耗力,因此通过写作风格来对作者进行识别这一研究很有必要。
1.3 国内外研究现状
目前关于作者写作风格的研究主要还停留在学者自己观察,依靠语感等人工分析的阶段[2],也有学者利用计算机来统计词频的方法,而更深入地利用计算机进行语言结构的研究虽然还是比较困难的,研究者也进行了一定尝试。
国外这方面的研究开始的比较早,最早是从1800年开始的,最初只是从作者的角度而不是从个人风格角度去研究表达的方式[1]。伴随着统计学的发展,渐渐有一些学者利用统计学的方法进行写作风格学研究,统计文章中的字、词、句的使用频率,并分析其中存在的规律。字长[3]被用作作者风格的一个特征,句长[4]也被用来判断作者身份。有学者对具有各种特征的支持向量机分类器进行了实验[5],还有学者生成一个函数将词频和文本长度相关联[6]。有的学者试图用莎士比亚作品中的名词使用次数来解决莎士比亚有争议的作品的作者问题,学者尤尔研究文学词汇也是从数学统计学的角度[7]。随着统计学习和机器学习的发展,学者们开始将一些比较成熟的机器学习模型引入到作者识别中,并且取得了较好的识别效果[1]。O. deVel和A. Anderson[8]等人研究的是电子邮件的写作风格,数据集的选取从电影、食品、旅游这三个方面,并选择了三位作者的电子邮件进行实验,分类器为支持向量机,分类准确性用三个指标(召回率、准确率、宏平均F值)来表示。也有学者将隐马尔可夫模型引入到俄语文学作品的作者识别中,将文学作品中出现的字母序列作为特征,然后通过模型来分析,在语料库中取得了非常好的效果[1]。
国内这方面的研究比较少,目前研究得比较多得是《红楼梦》作者问题,陈炳藻通过对《红楼梦》120回中词汇的统计,得出120回都为曹雪芹所写的结论[1]。李贤平以47个虚字作为特征并且通过对120回进行聚类分析得出了多个聚类,从而得出《红楼梦》是由多个作者所写的结论[9]。现阶段的关于文本写作风格分类的研究主要有文学作品、电子邮件、新闻等类型。中国科学技术信息研究所的张运良,朱礼军[10]等人使用句类作为区分作者写作风格的特征,采用向量空间模型生成特征向量,使用KNN(k-Nearest Neighbor, KNN)分类算法构造作者写作风格分类器,以中国近现代小说为语料进行作者识别[11]。Michael R.Schmid[12]等人提出了一种定制的关联分类技术,模拟人的独特写作风格特征,测量这些特征的关联性并产生直观的电子邮件分类器。中国科学技术大学的王甜甜针对文本分类中已有特征选择和特征提取方法存在的问题,以及文本集中类别样本不均衡问题,以互联网新闻分类为应用背景,提出的基于方差的特征选择方法进一步提高了新闻分类效果[13]。
在作者识别这一研究中,特征提取是关键的一环,起着至关重要的作用。中文与英文存在着一定的差异,英文使用空格和标点间隔词与词,这样更加便于进行分割,而中文并没有,它是一串完整的连续的文字,因此很多能有效区分英文作品风格的特征并不适用于中文作品[14]。所以目前来说能有效地区分中文作者的风格特征还不是很多,在这一方面有待挖掘。
1.4 基本内容和技术方案
本文最终目的是根据文本的写作风格进行分类,该过程首先是要求提取文本的特征,转换成特征向量,其次进行文本的预处理,包括对内容文本进行分词,去除标点符号、空格,去除停用词等,构建文本的特征向量,建立分类模型,测试数据,得到模型分类准确率。总的来说研究的内容包含以下三个方面:
- 文章数据采集和处理:收集数据集并做简单的分词和预处理处理。
- 写作风格特征提取:提取标点使用频率、虚词词频以及不同长度词语的词频三个写作风格特征。
- 写作风格分类模型设计:设计了两种基于神经网络的分类模型,用于对向量化的特征进行分类和识别。
采用的技术方案及措施方法如下:
- 构建基于虚词频率特征、标点频率特征和词长频率特征的作者分类模型来识别作者风格进行分类。
- 使用开源工具jieba分词工具对文本进行分词。
- 将keras深度学习网络框架和DNN、CNN两种神经网络应用于文本写作风格分类的模型构建。
1.5 项目目标
该项目主要包括特征提取、文本预处理、特征向量化、构建模型几个部分,总的来说该项目有两点要求:
- 普适性
作者识别模型不对某一个作者的写作风格有特殊性,而是适用于任何一个作者的写作风格,并且能够区分他们。
- 准确性
不管是特征的提取,还是作者识别,都应该尽可能的准确。
1.6 实验流程图
开始
标点特征
虚词特征
文本预处理
词长特征
构建特征向量
作者识别模型型
测试与结果
结束
图1.1 项目流程图
1.7 实验配置
1. 操作系统 Microsoft Windows 7 旗舰版 (64位/Service Pack 1)
2. 处理器 (英特尔)Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz(2401 MHz)
3. 内存 8.00 GB ( 1600 MHz)
4. 所用软件 Python3.6.5 (64bit) JetBrains Pycharm
1.8 本文的组织
本文共分为五章,结构安排如下: