神经网络文本分类范文

时间:2023-08-02 09:27:49

引言:寻求写作上的突破?我们特意为您精选了4篇神经网络文本分类范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。

神经网络文本分类

篇1

中图分类号:TP18文献标识码:A文章编号:1009-3044(2011)13-3107-02

The Researching of Web Text Classification Based on RBF Neural Network

XU Chun-yu

(Information Engineering Department, Liaoning Provincial College of Communications, Shenyang 110122, China)

Abstract:Web text classification is the automatic classification for Web information and it makes the use of text classification technology. The technology makes user find resource that they want quickly. The data from the Web is divided into sample data set and test data set after feature extraction in the process of text classification. Sample data set is inputted to the RBF network and the RBF network is trained. Test data set is inputted the RBF to validate after training the network. Experimental results show that RBF network achieved better classification results.

Key words: web text classification; RBF network; gauss Function; gradient descent algorithm

近年来,web已经成为拥有数十亿个异构的、半结构化的、动态的分布式信息空间,这些web信息源中有80%以上的信息是以web文本的形式出现的,如何从这些海量的web信息资源中寻找并获取有价值的信息和知识模式,已经成为信息处理的一个关键问题,web文本分类有助于人们完成这个目标[1]。

1 web文本分类

文本分类就是先根据已有的样例文本找出能描述并区分文本类别的分类器,然后利用该分类器对新的未分类的文本进行分类。根据机器学习的观点,文本自动分类问题可以归结为一个机器学习任务:假定全体文本空间为D,预定义的文本类别集合为C{c1,c2,…,c3}。待学习分类法称为目标分类器,记作y,一般来说,y是从文本集到类别集的一个映射,即y:DC,通常情况下该映射存在,但没有解析表达式。文本分类中机器学习的目的就是找到映射y的一个近似表达式或估计:y:DC,使对于D中所有文本d有h(d)=y(d),或使得h(d)≠y(d)的概率最小。其中h为分类器[3]。

随着web上海量文本信息的增加,文本分类技术的处理对象从普通的文档扩展到了web文本,即形成了web文本分类技术,显然,文本分类技术是web文本分类技术的基础。

2 RBF神经网络

径向基函数(Radial Basis Function,简称RBF)神经元网络是在借鉴生物局部调节和交叠接受区域知识的基础上提出的一种采用局部接受域来执行函数影射的人工神经元网络。在人的大脑皮层区域中,局部调节及交叠的感受是人脑反映的特点。RBF网络同BP网络类似,也是一种三层前馈式神经网络,输入层节点传递输入信号到隐含层,隐含层节点由像高斯函数那样的辐射状作用函数构成,而输出层节点通常是简单的线性函数。网络模型如图1所示。

从RBF的网络模型图可以看出,RBF网络由两部分组成,第一部分为非线性变换层,它的输出公式如公式(1)所示:

(1)

其中X={x1,x2,…xn}为输入向量,Ci={Ci(1),Ci(2),…Ci(N)}为第i个非线性变换单元的中心向量,Ct(q)表示第t个中心的第q个分量,σi为第i个非线性变换单元的宽度,||・||表示的是范数,通常情况下取2范数,g(・)表示的是非线性函数关系,一般取Gauss函数,Gauss函数的函数关系如公式(2)所示:

(2)

第二部分:线性合并层,它的作用是将变换层的输出线性加权合并,公式如(3)所示,其中l为隐含层神经元的个数,m为输出层神经元的个数。

(3)

RBF网络通过径向基函数能够更确切的描述人类神经元的活动特性。在中心附近的区域内网络的输出最大,网络的输出随着中心距离的增大,逐渐减小,而这个过程的快慢则是由σ参数来决定的,σ越大则函数输出曲线越平缓,对输入的变化就越不敏感,因此,可以通过调节σ来进一步模拟人类的神经元。RBF网络最常用的算法是梯度下降法,常用的训练就是选定某种性能指标,然后采用梯度下降的方法来校正网络参数,使该网络性能指标取得最优值,因此RBF网络的学习实质上就是一个最优化问题。具体的训练算法为:对于一般的RBF网络结构,取性能指标如公式(4)所示。

(4)

其中,i为网络的输出,具体关系式如下面的(5)式、(6)式和(7)式所示:

(5)

(6)

(7)

由上面的三个公式可以看出, J是关于Cj,wjt和σj的函数。网络的训练过程就是调整以上三组参数,使J趋于最小。求取J对各网络参数wts,ct(q),σt的偏导数,其中1≤t≤P(P是隐含层单元的个数),1≤s≤M(M是输出层单元的个数),1≤q≤N(N是输出层单元的个数),得到参数的校正方法。具体的校正方法为:权值wts的校正方向如公式(8)所示:

(8)

中心ct(q)的校正方向如公式(9)所示:

(9)

宽度σt的校正方向如公式(10)所示:

(10)

由此,可以得到RBF网络的梯度下降法校正公式如(11)所示:

(11)

其中,1≤t≤P,1≤s≤M,1≤q≤N,P为隐含层单元个数,N为输入层单元个数,M为输出层单元个数,λ为步长,通常λ=0.05左右。

隐含层到输出层之间的变换是线性变换,所以采用的是比较成熟的RLS算法。给定样本输入,则在当前的网络隐含层单元中心Cj及宽度σj(1≤j≤P)参数下,隐含层单元输出向量为HT=[h1,h2,…,hP],P为隐含层单元个数。

Y=HTW (12)

其中,Y=[y1,y2,…,yM],W=[w1,w2,…,wM],wi=[w1i,…,wpi],这样,根据RLS算法有权值的修正递推公式如公式(13)所示:

(13)

这样,按照上面的公式对网络参数不断地进行循环校正,最终网络性能将达到所要求的性能指标[5]。

3 实验

实验过程中,首先设计网络拓扑结构,确定RBF网络输出层神经元个数,根据类别的个数来确定输出层神经元的个数,实验数据分别属于10个类别,因此网络输出层神经元个数为10。输入层神经元的个数为文档在进行特征提取之后向量的维数,实验中,经过降维以后的每篇文档特征向量的维数为30,所以将网络的输入层神经元的个数选取为30。由于输入样本空间是确定的,可以预先给定一个隐含层节点数,只要与输入样本的实际类别数相差不是很大时,就可以使用梯度下降法来不断修正网络的中心值,使网络的特性逼近于实际系统,这种方法比较简单,也是一种比较常用的方法,因此,实验中隐含层神经元的个数取值为9。

RBF网络结构设计完成之后就可以对网络进行训练了,实验数据来自中国期刊网上下载的600篇文档,涵盖了政治、经济、教育、娱乐等10个类别,每个类别包含60篇文档,选取其中的500篇文档作为样本训练集,每个类别选择50篇,另外100篇文档作为网络的测试集。首先需要对实验数据进行文本特征提取、降维等过程。其次采用的是Matlab软件进行编程以实现网络的训练,网络训练完成以后,输入测试集中的数据,测试网络能否正确地将相关的文档区分到各个类别中。表1是RBF网络的分类结果。

4 结论

从上面的训练结果分析,RBF网络能够将大部分的文本正确地划分到所属类别,对于体育、娱乐、外语方面的文档能够取得较高的识别率,对于政治、经济、军事等方面的文档的识别率较低,主要原因是这些类别的文档中互相包含着相关的特征信息,这种类型的文档在进行文本分类的时候,需要在文本特征提取的时候进行相应的处理,以使得在输入神经网络的时候能够得到正确的分类结果。从实验结果可以看出,RBF网络完全可以应用到文本分类中来,并且能够取得较好的分类效果。

参考文献:

[1] 蒲筱哥.Web自动文本分类技术研究综述[J].情报科学,2009:233.

[2] Crimmins F, Smeaton A, Dkaki T, et al.Information discovery on the internet[J].IEEE Intell.Syst.,1999(14):55-62.

[3] 王晓庆. 基于RBF网络的文本自动分类的研究[D].南昌:江西师范大学,2003:9.

[4] Abhijit S, Rober B. 神经网络模式识别及其实现[M].徐勇,荆涛,译.北京:电子工业出版社,1999:30-32,57-114.

[5] 柯慧燕. Web文本分类研究及应用[D].武汉:武汉理工大学,2006:14-15,16-17.

篇2

1 概述

随着现代社会的发展,互联网成为了人们获取文本信息的重要手段。然而网上的信息杂乱无章,使得人们很难快速而准确的获得所需要的文本信息。因此如何有效的对文本进行分类,帮助用户找到所需的信息成为当代信息技术领域的一个重要课题[1]。

本文提出利用深度学习中的稀疏自动编码器自动选取文本的特征,然后利用极限学习机作为基分类器进行文本的分类,最后结合Adaboost集成学习方法将极限学习机作为基分类器组合成一个效果更好的分类器。实验结果表明,该算法在文本分类方面,可以有效地提高文本分类的准确性。

2 相关理论基础

2.1 稀疏自动编码器

稀疏自动编码器(sparse auto encoder,SAE)是利用人工神经网络的特点构造而成的网络。稀疏自动编码器的训练过程分为两个步:第一步是预训练,即先利用无监督的方法将SAE的输入层和隐含层全部初始化,然后再利用逐层贪心训练算法确定网络的参数。第二步是微调,其思想是整个网络视为一个整体,用有监督学习的方法优化整个网络的参数,由于SAE训练过程的复杂性,具体过程可参考文献[2]。

2.2 极限学习机

针对传统神经网络训练过程时间漫长,优化困难等缺点,新加坡南洋理工大学的黄广斌教授提出了一种全新的单隐层前馈神经网络-极限学习机(Extreme Learning Machine,ELM)[3],该网络能够以极快的学习速度达到较好的泛化性能,从而解决了传统神经网络学习速度缓慢的限制。该网络主要由输入层,隐藏层和输出层组成,其中隐藏层的神经元通过激活函数把输入的数据进行变换,然后把变换后的数据输出到输出层,在网络中输入层和隐藏层的权值是随机设置的,只有隐藏层到输出层的权值需要求解,因此加快了网络的学习速度。

2.3 Adaboost分类器

由于单个分类器通常无法满足分类任务的要求,因此需要通过集成学习来构建并结合多个分类器来完成分类任务,这其中最著名的是在1995年由Freund等提出的Adaboost[4]算法。该算法的核心思想是先从初始训练集训练出一个基学习器,再根据基学习器的变现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续收到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直到基学习器数目达到指定的值,最终将这几个基学习器进行加权结合。Adaboost是一种迭代算法,具体训练过程可参考南京大学周志华教授编写的机器学习课本中关于Adaboost算法的章节。

3 SEA文本分类算法

在本文中,结合稀疏编码器,极限学习机与Adaboost这三种机器学习方法提出SEA文本分类算法,该算法的工作流程如图1所示。

该分类算法的第一步为输入,输入的是经过了向量化表示的文本,但没有经过任何的手工特征提取。第二步是利用SAE算法对数据的重建能力自动选择文本的特征,用SAE算法选择的文本特征可以有效地复原原始文本信息。第三步是利用ELM分类器作为该算法的基分类器,ELM作为第四步中的基分类器参与训练,最后一步是输出该文本属于哪一类。

4 实验结果与分析

4.1 实验数据集与评价指标

本文选用的分类文本数据来源于新闻数据集[5],该数据集复旦大学计算机信息与技术系李荣陆提供,数据集标注比较规范,规模适中,适合于进行文本分类的仿真实验。

在文本分类中常用的评价指标有准确率P(Precision)和召回率R(Recall),公式如下:

P=M/(M+N),R=M/(M+T)

其中,M为正确分类到该类的文本数,N为错分到该类中的文本数,T为属于该类确误分为别类的文本数。

4.2 实验结果

为验证本文提出的SEA文本分类模型,需要将文本数据集进行预处理,对于SEA模型来说,就是进行文本分词。本实验文本分词采用的是NLPIR汉语分词系统,其主要功能包括中文分词,词性标注,命名实体识别,用户字典功能等,是国内比较成熟,用户较多的中文文本分词系统。经过文本预处理后,按照本文提出的SEA文本分模型进行实验,并和几种经典的分类算法做对比。在本实验中Adaboost集成学习算法中基分类器的个数设置为10个,基分类器ELM中隐藏层的个数设置为输入层的0.75倍,稀疏自动编码器中隐藏层数设置为4,实验结果如表1和表2所示。

从表1和表2可以看出随着文本数量的增加,SEA模型的分类准确率和召回率逐渐提高,这是由于在训练数据集较小时,稀疏编码器对自动提取的文本特征变现地不是很理想,容易造成SEA分类模型产生过拟合现象,从而影响分类准确率和召回率。SVM算法在训练数据集比较小时,变现良好,这是由于在训练数据较少时,可以较容易地找到分类超平面,在数据量变大时,由于计算量的增大,使得计算量变大,导致计算得到的超平面效果不好,使得分类准确率和召回率不断下降。BP和ELM算法都随着训练数据的增大,其分类准确率和召回率在不断变大,这是由于随着训练数据的增大,BP和ELM可以更有效的提取输入数据的特征,但ELM算法相比BP算法变现得更好,这是由于BP算法可能无法收敛到最优值,导致分类算法的准确率下降。

综上所述,本文提出的SEA文本分类模型可以有效的提高文本分类的准确率和召回率,尤其是随着训练数据集的不断增大。

5 结束语

文本分类在文本处理中占据着重要的地位,其分类的好坏直接影响着后续的文本处理,如何有效地对文本分类是一个重要的研究课题。本文结合稀疏自动编码器,极限学习机与Adaboost集成学习方法提出SEA文本分类方法,实验结果表明该分类方法可以有效将文本分类过程中的特征提取和分类器结合在一起,从而提高了分类结果的准确性。

参考文献

[1]秦胜君,卢志平.稀疏自动编码器在文本分类中的应用研究[J].科学技术与工程,2013,13(31):9422-9426.

[2]Baldi P, Guyon G, Dror V, et al. Autoencoders, Unsupervised Learning, and Deep Architectures Editor: I[J].Journal of Machine Learning Research,2012.

[3]Huang G B, Zhu Q Y, Siew C K. Extreme learning machine: Theory and applications[J]. Neurocomputing, 2006,70(1-3):489-501.

篇3

一、引言

随着计算机和网络的迅速发展和普及,网络招聘正日益成为用人单位招聘人才的一种重要方式,招聘者们越来越

希望通过计算机技术协助人力资源管理来处理电子简历的评价及筛选,提升整个人力资源管理的效率。数据挖掘技术,是解决这一问题的较好方法。

本文将数据挖掘技术运用于网络电子简历的筛选,并比较了决策树与神经网络两种算法的优劣。

二、网络简历样本的获取与预处理

1.简历样本的获取

本文从某人才招聘网站数据库获得简历数据,选取十个热门的岗位(会计、销售工程师、卫生医疗、纺织服装设计、司机、建筑/结构工程师管理人员、美术/图形设计、市场经理、行政/人事人员),每个岗位中抽取50个招聘职位,每个职位抽取20份简历信息,每一份简历及其相应的招聘职位要求构成一个样本。其中10份为企业通过招聘网站发出面试通知的简历(简称A类样本),另外10份为没有被企业通知面试的简历(简称B类样本)。

2.简历样本的预处理

考虑到本研究的挖掘目的,本文选取了以下几个应聘者的属性与招聘公司的需求进行匹配,在对数据进行处理后,再应用到数据挖掘工作中。所选择的属性都需要将招聘企业的要求和应聘者的信息相匹配,再进行数据的处理。选择的输入属性是:性别、年龄、籍贯、学历、婚姻状况、工作年限、政治面貌、毕业院校、计算机水平、专业、工作经验,输出属性是:是否被接受面试。

由于原始数据库中的数据存在着各种各样现实中不可避免的缺陷,下面将根据所选择的属性分别详述对简历数据所进行的预处理。

(1)性别(R_Sex):不需要复杂的处理。

(2)年龄(R_Age):本文将应聘者划分为三个年龄段:a.小于或等于三十岁;b.三十到五十岁;c.五十岁以上,修改后的数据变为“=50”。

(3)婚姻状况(R_Married):婚姻状况仅仅分为已婚和单身,因此将数据修改前的FALSE改为单身,TRUE改为已婚。

(4)籍贯(R_Place):本文在预处理中,将籍贯与招聘单位所在省份一致的应聘者籍贯取1,其余的为0。

(5)工作年限(R_WorkYear):本文将应聘者按照工作年限的长短来划分,修改后数据分别变为“=10”。

(6)学历(R_Education):大致分为博士后、博士、硕士、本科、大专、高中/中专六类,通过观察发现这一属性中存在一些空缺值,因此对这一属性的处理仅仅是把空缺值清除。

(7)政治面貌(R_Political):本文将是党员的不做修改,将其他表述一概改为其他。

(8)毕业院校(R_School):本文将应聘者的学校分为五类,并收集了大学的排名和院校名称,211重点大学取为1,一般重点大学为2,一般本科院校为3,其他专科和民办院校为4,海外大学为0。

(9)专业(R_Specialty):本文将企业对专业的要求提取出来与应聘者简历中的信息做对比,若两者专业相符合则改为符合,否则改为不符合。

(10)计算机水平(R_ComputerGrade):本研究将初级程序员用等级1代替,中级用2,高级用3,其余的为0。

(11)工作经验(R_Experience):本文提取了招聘者要求中的一些关键字眼与应聘者简历中的描述来做对比,将应聘者的经验划分为三类:有相关经验、有实习经验、无相关经验。

(12)接受(Accept):接受与否属性是数据挖掘中唯一的输出属性,A类样本取作为接受,B类样本取为拒绝。

三、简历筛选的分类算法

本文主要选取了C5.0决策树算法和神经网络算法在数据挖掘软件Clementine中对预处理后的简历样本数据进行分类挖掘。

1. C5.0决策树算法

构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知记录的类别。本文分别抽取了几个岗位中的部分预处理后的数据作为数据挖掘的数据测试集,为决策树算法在招聘简历中的数据挖掘应用做进一步的验证和解释。

首先在Clementine中建立Excel来源节点,导入数据,对其进行读取和处理,使其符合Clementine中的挖掘要求,将数值类型改为读取,在方向定输入输出属性。

C5.0算法能产生决策树或规则集,并且在决策树的产生过程中它能自动根据最大信息增益进行样本拆分,一直到样本子集不能再拆分为止。因此本文选择C5.0算法来产生规则集,C5.0能支持基于准确性的规则和基于普遍性的规则,基于普遍性的规则会考虑尽可能大的样本量,而基于准确性的规则则更倾向于规则的准确率。如对财务管理职位进行挖掘,可得到如下分类规则:

(1) 基于准确性的十二个拒绝规则:

规则一:如果Sex=女;并且Education=本科;且School=3;且ComputerGrade

规则二:若Sex=男;且WorkYear2;且Experience=无相关经验;则拒绝。样本数:16,准确性:88.9%。

规则三:如果Education=高中/中专;并且CompurerGrade

规则四:如果Sex=男;且WorkYear2;并且ComputerGrade

规则五:如果Education=高中/中专;并且Specialty=不符合;则拒绝。样本数:27,准确性:86.2%。

规则六:如果School

规则七:如果Education=大专;并且Specialty=不符合;并且ComputerGrade>1;则拒绝。样本数:45,准确性:83%。

规则八:如果Education=高中/中专;并且Experience=无相关经验;则拒绝。样本数:63,准确性:80%。

规则九:若Sex=女;并且Age

规则十:如果Education=初中;则拒绝。样本数:12,准确性:75%。

规则十一:如果Education=大专;并且School>2;并且Experience=无相关经验;则拒绝。样本数:35,准确性:75.7%。样本数:212,准确性:70.6%。

规则十二:如果Place=符合;并且Education=大专;并且School>3;并且ComputerGrader>1;则拒绝。样本数:68,准确性:68.6%。

(2) 基于准确性的四个接受规则

规则一:如果Married=单身;并且WorkYear=5-10;并且Education=本科;则接受。样本数:8,准确性:90%。

规则二:如果School

规则三:如果Education=大专;并且School>3;并且Computergrade=1;并且Experience=有相关经验;则接受。样本数:56,准确性:72.4%。

规则四:如果Specialty=符合;则接受。样本数:566,准确性:50.2%。

(3) 基于普遍性的两个接受规则

规则一:如果R_School

规则二:如果Experience=有相关经验;则接受。样本数:270,准确性:62.5%。

(4) 基于普遍性的四个拒绝规则

规则一:如果R_School

规则二:如果Education=高中/中专;则拒绝。样本数:103,准确性:74.3%。

规则三:如果R_School>2;并且Experience=无相关经验;则拒绝。样本数:372,准确性:69.5%。

规则四:如果R_Political=其他;并且R_School>3;并且ComputerGrade>1;则拒绝。样本数:201,准确性:64.7%。

2. 神经网络算法

相对于决策树来说,神经网络算法需要更多的时间,而且对结果的解释也相对较困难,而且神经网络模型只包含一组权值,了解其中的关系和为什么有效也比较困难。

将数据导入Clementine中并与神经网络模型相连接,其方法与决策树算法中一样。考虑到时间和准确性的关系,本文选择了修剪方法。另外,为了预防训练过度,本文选择了样本的50%至60%进行训练。

本文希望数据训练的准确性尽量高一些,因此,在模型选择中选择使用最佳网络。节点训练结束后将会产生一个神经网络模型。神经网络算法挖掘的准确性在84%左右。

3. 两种分类算法的比较

分类算法的分类质量一般可以用查全率和查准率来评价。

决策树算法和神经网络算法分别对A、B类样本中部分数据集1、2的挖掘情况比较如下所示:

(1)决策树和神经网络算法对数据集1的挖掘结果比较:

决策树算法

测试样本数:356,训练样本数:713,查准率:79.8%,查全率:75.1%,F1测试值:0.77,用时:1秒。

神经网络算法

测试样本数:428,训练样本数:713,查准率:83.95%,查全率:80.59%,F1测试值:0.82,用时:5分9秒。

(2)决策树和神经网络算法对数据集2的挖掘结果比较:

决策树算法

测试样本数:500,训练样本数:1000,查准率:81.02%,查全率:79.2%,F1测试值:0.80,用时:1秒。

神经网络算法

测试样本数:600,训练样本数:1000,查准率:84.56%,查全率:82.34%,F1测试值:0.83,用时:1分33秒。

从上文中我们可以知道,决策树算法的原理相对容易为人力资源管理者所理解,也能够得到比神经网络算法更加直观易懂的分类规则。决策树算法计算速度较快,用时较少,神经网络算法花费时间较长。但神经网络算法比决策树算法有更高的整体查准率和查全率,同时F1测试值反映出来的分类质量的二者比较中可见,神经网络算法比决策树算法分类质量要高一些。

四、结束语

本文主要研究了数据挖掘技术在电子简历数据筛选中的应用,得到了一些有用的结论,但还存在一些不足。

(1)在挖掘过程中,由于时间精力有限,所以本文只选择了决策树和神经网络两种算法进行挖掘比对,没有考虑其他算法。

(2)本文在对原始数据进行预处理时,其中涉及到对文本数据的预处理,如工作经验以及专业,本文只是简单的进行替换处理。

参考文献:

[1]赵苏星:数据挖掘技术在人力资源管理中的应用[J].管理科学,2007,91.

篇4

班级:XX

学号:XX

姓名:XX

2020年10月25号

基于深度神经网络的标题分类研究

XX

摘要:新闻是人们对时事、最新行业相关消息了解的重要途径,本文将新闻标题作为新闻分类的切入点,由于新闻标题属于文本中的短文本类别,所以本文主要通过利用深度学习相关方法对新闻标题短文本进行分类,针对前期分类出现过的问题,结合深度学习网络并引入的SVM 模型,解决新闻分类以及短文本分类过程中的常见困难问题。

关键词:深度学习;SVM;标题分类

1 引言

随着大数据时代的来临,我们日常的信息规模呈现出爆炸式增长的趋势。数据挖掘和人工智能逐渐成为时代的主题。缩小信息规模的方法有很多种,而分类就是其中一种极其有效的方式,所以它当前仍是吸引国内外学者研究的重点问题和热点问题。文本分类是在自然语言处理领域广泛研究的问题,在工业领域内,现在已经有着较为成熟的应用,无论是朴素贝叶斯还是决策树又或是最大熵以及神经网络都在工业领域有着相关应用。而文本分类技术在新闻分类领域的应用仍然有限,当前的文本分类系统大多基于统计学原理再结合相关机器学习方法训练相关数据集,从而得到所需的分类器并使用其达成对无标签数据进行分类的目的。在2017 年自然语言处理及中文计算会(NLPCC)也曾对新闻分类相关问题设立相关课题,这也间接表现出了其可能为文本分类领域的发展研究做出较大的贡献。

由于中文新闻文本分类起步较晚,再加以复杂精深的汉语语法的影响,使得之前关于中文新闻文本分类的研究相比于英文显得稍微落后,但现在伴随各种中文新闻语料库的出现和完善,中文新闻文本分类渐渐走上正轨。以往对新闻进行分类时通常是解析新闻的正文,由于部分新闻的篇幅较长,往往导致了新闻分类时的效率低下。而通过中文新闻标题对中文新闻文本进行分类,相比与传统的新闻分类来说在分类效率上可以得到很大的优化。除此之外,新闻标题往往是对新闻主题的高度概括,以有限的字数对全文内容进行凝炼,所以这属于一个短文本分类领域的相关问题。通过对中文新闻标题分类的研究,对短文本分类领域的部分问题有着借鉴意义。

2 算法原理与系统设计

2.1 算法原理

支持向量机(Support Vector Machine ,SVM)的主要思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。对于一个多维的样本集,系统随机产生一个超平面并不断移动,对样本进行分类,直到训练样本中属于不同类别的样本点正好位于该超平面的两侧,满足该条件的超平面可能有很多个,SVM正式在保证分类精度的同时,寻找到这样一个超平面,使得超平面两侧的空白区域最大化,从而实现对线性可分样本的最优分类。支持向量机中的支持向量(Support Vector)是指训练样本集中的某些训练点,这些点最靠近分类决策面,是最难分类的数据点。SVM中最优分类标准就是这些点距离分类超平面的距离达到最大值;“机”(Machine)是机器学习领域对一些算法的统称,常把算法看做一个机器,或者学习函数。SVM是一种有监督的学习方法,主要针对小样本数据进行学习、分类和预测,类似的根据样本进行学习的方法还有决策树归纳算法等。

2.2 详细设计

简单的Python机器学习实现新闻标题自动分类,爬虫获取的新浪新闻的分类,先对新闻进行分词,手动分类一些分词后的标题,然后以它为输入做SVM模型训练,然后用训练好的SVM模型对其他标题做预测。

3 系统实现

#news_classify.py

import xlrd

import xlwt

import jieba

import numpy as np

from sklearn.feature_extraction.text import CountVectorizer

from sklearn.feature_extraction.text import TfidfTransformer

from sklearn.svm import SVC

def read_data(file, sheet_index=0):

"""读取文件内容"""

workbook = xlrd.open_workbook(file)

sheet = workbook.sheet_by_index(sheet_index)

data = []

for i in range(0, sheet.nrows):

data.append([x for x in sheet.row_values(i) if x.strip()])

return data

def get_classified_sample():

"""返回手动分类的新闻"""

data = read_data('test.xls')

return {

'经济': data[1] + data[14] + data[20],

'社会': data[2] + data[3] + data[4] + data[9] + data[17] + data[18],

'政法': data[5] + data[6] + data[7] + data[8] + data[11] + data[13] + data[15] + data[16] + data[19],

'军事': data[10],

'娱乐': data[12],

}

def classify():

"""进行分类"""

# 一共分成5类,并且类别的标识定为0,1,2,3,4

category_ids = range(0, 5)

category = {}

category[0] = '经济'

category[1] = '社会'

category[2] = '政法'

category[3] = '军事'

category[4] = '娱乐'

corpus = []# 语料库

classified_sample = get_classified_sample()

for k, v in classified_sample.items():

line = ' '.join(classified_sample[k])

corpus.append(line)

data = read_data('test.xls')

# 把未分类的文章追加到语料库末尾行

# 21开始是因为我手动分类了前20条

for lst in data[21:]:

line = ' '.join(lst)

corpus.append(line)

# 计算tf-idf

vectorizer = CountVectorizer()

csr_mat = vectorizer.fit_transform(corpus)

transformer = TfidfTransformer()

tfidf = transformer.fit_transform(csr_mat)

y = np.array(category_ids)

# 用前5行已标分类的数据做模型训练

model = SVC()

model.fit(tfidf[0:5], y)

# 对5行以后未标注分类的数据做分类预测

predicted = model.predict(tfidf[5:])

# 结果

# print(len(predicted))

for i in range(len(predicted) - 1):

print(corpus[i + 5], '============》', category[predicted[i]])

if __name__ == '__main__':

classify()

4 实验或测试结果

程序运行后出现如下界面(一部分):

中巴经济走廊“围堵”印度?新华社: 印度想太多了============》娱乐

央行报告:上海已经基本确立国内金融中心地位============》社会

国网北京电力: 北京地区煤改电今年累计破100 万户============》娱乐

湖南沅江原市长肖胜利犯三罪判5 年: 为升迁送13 万============》娱乐

颜宁为何从清华跳槽去普林斯顿?她终于说出原因============》娱乐

国家文物局公布346 万件全国馆藏文物信息供监督============》娱乐

里皮首次对续约中国男足表态:我说了我愿意( 图) ============》经济

5 结论

本项目实现的是以标题分类为核心的Python程序的一个简单尝试,本项目采用爬虫获取的新浪新闻的分类,利用机器学习,深度学习的方法完成了标题分类任务,但模型还有待改进。

参考文献

免责声明:以上文章内容均来源于本站老师原创或网友上传,不代表本站观点,与本站立场无关,仅供学习和参考。本站不是任何杂志的官方网站,直投稿件和出版请联系出版社。
友情链接
发表咨询 加急咨询 范文咨询 杂志订阅 返回首页