时间:2023-08-02 09:27:49
引言:寻求写作上的突破?我们特意为您精选了12篇神经网络文本分类范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
中图分类号: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.
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.
一、引言
随着计算机和网络的迅速发展和普及,网络招聘正日益成为用人单位招聘人才的一种重要方式,招聘者们越来越
希望通过计算机技术协助人力资源管理来处理电子简历的评价及筛选,提升整个人力资源管理的效率。数据挖掘技术,是解决这一问题的较好方法。
本文将数据挖掘技术运用于网络电子简历的筛选,并比较了决策树与神经网络两种算法的优劣。
二、网络简历样本的获取与预处理
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.
班级: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程序的一个简单尝试,本项目采用爬虫获取的新浪新闻的分类,利用机器学习,深度学习的方法完成了标题分类任务,但模型还有待改进。
参考文献
基于Matlab的三相电压型PWM整流器的仿真研究
基于多传感器数据融合的火灾报警系统设计
模拟氢冷汽轮机转子节能改进
基于VB的大学物理实验数据处理系统的设计与实现
用激光光源测量凸透镜焦距实验探究
项目反应理论在计算机自适应题库建设中的应用
基于遗传算法的排课设计
AutoCAD的三维造型与工程图转换技术研究
论“云计算辅助教学”CCAI及教学资源组织
基于SOA的数字化校园应用模式的研究
模板法制备纳米复合光催化材料HPA/TiO_2
YK73400L数控成形磨齿机工艺设计
环保透水砖的制备与性能研究
混凝土在双向受压下力学性质的试验研究
自动锻压机凸模推出机构改进设计
树麻雀的体温调节
扎龙湿地面积动态变化趋势数学模型及因素分析
基于ARIMA的居民消费价格指数建模与预测
用矩阵实现模糊本体映射
激光跟踪仪在主轴箱体检测上的应用
一种BP神经网络改进算法的研究
传感式智能家用煤气表的研制
基于对象方向方位的连续方向查询算法
一种有效检索和更新移动对象的混合索引结构
较长销孔加工方案分析
移动对象流量查询方法研究
空间数据库R-tree连接方法研究
关联规则挖掘在临床诊断中的应用研究
基于距离和的数据挖掘技术在中考成绩处理中的应用
燃气炉供热改善大气环境的方法
三层C/S通用试题库系统的需求分析和总体设计
外凸轮轮廓曲线加工误差分析
基于单片机的步进电机控制系统的研制
基于组合核支持向量机的图像边缘检测
衣康酰化降解壳聚糖在亚麻织物无甲醛防皱整理中的应用
二氧化硅-氧化锌溶胶凝胶法制备固相微萃取涂层的研究
燃硫炉出口温度与三氧化硫气体浓度的关系
基于网格和XML的异构数据库集成模型
Excel表格计算工程预算的工程量方法
BP神经网络在蜜网系统中的应用
改进BP神经网络在个人信用评估系统的应用
GIS系统在城市燃气管网中的应用
基于USB接口的便携式温湿度记录仪的设计
基于OracleWebServer的管理信息系统开发
Liu-Liu-Liu-Liu系统的混沌同步
企业实施SPC核心工具——控制图方法研究
PL/SQL在求解最短路径问题中的应用
城市燃气用户软管的安装问题研究
基于广播模式的录井仪实时数据传输系统的设计与实现
垂直井筒两相流温度场的模拟计算
基于固定网络的移动对象轨迹查询
压缩天然气管道输送应用研究
CISC与RISC结构CPU间软件移植技术问题分析
中图分类号:TP18 文献标识码:A文章编号:1009-3044(2011)08-1875-03
Research on the System of Chinese Spam Filtering Based on Neural Net
YE Yan1, LI Pei-guo2
(1.Zengcheng College of South China Normal University, Guangzhou, 511363, China; 2.Department of mathematics, Jinan University, Guangzhou 510632, China)
Abstract: The flooding spams take up huge Internet resource and user time. Especially some virus-spams, they can disable some normal Internet service, or attack user’s computers. It introduces BP neural network as the filtering algorithm, optimized by the Genetic Algorithm. With Chinese word segmentation, it designs and implements a Chinese email filter. At last, it performs training and testing using sample emails, and analyses the testing result. The result indicates that the filtering algorithm has good recall and precision ratio.
Key words: Spam; Chinese word segmentation; BP Neural Networks; Genetic Algorithm
电子邮件是互联网最重要、最普及的应用,大大方便了人们的生活、工作和学习。然而,近些年来,垃圾邮件成泛滥的趋势。据中国互联网协会反垃圾邮件中心统计[1],截止2010年7月,中国互联网用户收到的垃圾邮件比例约为40%,这些垃圾邮件花费用户大量的时间和精力来处理,给正常的使用带来了诸多的麻烦;对于企业来说,垃圾邮件会造成巨大的经济损失,尤其是带有病毒的邮件,更是带来了巨大的危害。
当前的垃圾邮件过滤技术,主要包括以下几类:关键词过滤,黑/白名单[2],逆向域名验证,基于规则过滤[3],特征词统计,等等。以上方法,分别在各种特定的情况下,能够达到一定的过滤效果。但是,随着垃圾邮件制造者的技术提高,以上的各种方法都存在各自的缺陷,不能达到很好的过滤效果。
本文采用基于邮件内容的过滤算法,无论任何伪装的情况下,邮件的内容是无法改变的,否则就无法达到发送者的目的,因此,基于内容的过滤算法能够在各种情况下,达到过滤效果。同时,引入BP神经网络作为过滤算法,利用BP神经网的自组织、自学习和联想存储等特点,设计并实现垃圾邮件过滤系统。同时,针对BP神经网在训练过程中,容易陷入局部最优解的问题[4],引入遗传算法来对BP神经网络进行优化,利用遗传算法的全局搜索能力,进一步提高BP神经网络的学习能力[5]。针对中文自身的特点,在过滤系统中,加入针对中文的自动分词模块,实现针对中文垃圾邮件的过滤。
1 过滤系统的设计
过滤系统的主要思想:通过分析邮件的正文内容,提取其中的特征词汇,通过过滤模块进行垃圾邮件的识别;同时,加入了针对中文邮件的自动分词模块,达到对中文垃圾邮件的过滤;系统架构如图1所示。
1.1 系统的流程
系统的流程主要包括两个过程:过滤系统的训练过程和未知邮件的过滤过程,分别如下:
1.1.1 过滤系统训练
首先对邮件样本集进行预处理,得到待处理的样本邮件;然后通过中文自动分词,得到整个样本集的词汇统计表;根据词汇出现的频率,以及相应的代表性,选取出特征词汇;根据特征词汇表,将样本邮件转化为BP神经网络过滤模块的输入向量,从而对网络进行训练,生成最终具备识别能力的过滤模块。流程图如图2。
1.1.2 未知邮件过滤
收到新邮件后,通过中文自动分词,得到邮件中的所有词汇;根据特征词汇表,生成该邮件对应的特征向量,输入到神经网络过滤模块中;根据过滤系统的输出结果,判定当前邮件是否为垃圾邮件;用户可以对过滤模块的判定结果进行反馈,系统会记录错判和误判的邮件数量,并根据对应的比例决定是否需要重新训练过滤模块。同时,根据当前邮件是否为垃圾邮件,将该邮件中出现的词汇更新到所有词汇的表中,并统计相应的“垃圾概率”,这样做的目的是为了定期的更新特征词汇,达到过滤系统能够不断学习的效果。
1.2 系统结构
整个过滤系统采用模块化设计,共分为四个主要的模块:自动分词模块,特征词提取模块,BP神经网过滤模块,以及用户反馈模块,整体的结构如图3所示。
1.2.1 自动分词模块
该模块主要实现的功能是将邮件的内容通过自动分词技术,得到对应的词的集合。需要完成操作包括:
1) 邮件的编码识别,对于不同的邮件可能使用不同的编码,所以要针对各种编码,采用对应的解码方法对邮件进行解码,才能保证正确的读取邮件内容;
2) 邮件内容的预处理,例如,去掉邮件的头信息;根据已知的一些拆/分词的特征,去除拆/分的标志,比如一些垃圾邮件发送者,会故意的在字与字之间加上空格,目的就是让自动分次技术不能够正确的进行分词,因此需要在预处理阶段去掉这些分隔符;
3) 对邮件内容进行自动分词,得到邮件中的词语集合;
该模块的输入为邮件训练集,或者用户收到的邮件,输出为经过分词得到的词语集合。
1.2.2 特征词提取模块
特征词提取模块的主要功能是在经过分词模块得到的词汇集合中,选出最有代表性的特征词,这些词汇最能够表明一封邮件是垃圾邮件,或者是正常邮件。该模块需要完成的操作包括以下几个:
1) 词频的统计:在样本集邮件的分词结果中,统计出每个词在垃圾邮件中出现的次数,以及在正常邮件中出现的次数,从而计算出这个词汇的“垃圾概率”,即为:
2) 提取特征词汇,即根据词汇的“垃圾概率”,取出最具代表性的词语;选择时需要考虑以下几个方面,词汇的“垃圾概率”,这个是在选取特征词时,比较重要的一个指标;但是,同时也要考虑词汇出现的次数,比如某个词只在一封垃圾邮件中出现,那么它的“垃圾概率”为1,但是它并不是最有代表性的词,因此,在选取特征词汇时,需要综合考虑这两个方面;
3) 特征向量转换,将邮件按照特征词表,转换为代表该邮件的特征向量;
另外,在提取特征词时,可以结合使用禁用词表方法,该方法是通过对汉语的研究,总结出一些对于邮件内容没有很大的影响的词汇,比如“是”,“的”,各种数字,等等,这些词汇并没有实际的意义,因此,提取特征词时,应排除这些词汇。
1.2.3 过滤模块设计
该模块是整个过滤系统的核心部分,通过样本邮件对过滤模块训练后,完成对未知邮件的过滤功能。整个过滤模块使用BP神经网络作为文本分类的算法,同时使用遗传算法对BP神经网络的各个参数进行优化,模型的设计图如图4。
其中,引入GA(遗传算法)优化器的目的是为了克服BP神经网容易陷入局部最优解的缺点,提高其全局搜索的能力。首先,将BP神经网的各个权值进行编码,通过GA优化器随机的产生初始的种群;对种群中的每个个体,经过解码后,构造对应的BP神经网;将样本训练集输入BP神经网,计算所有输出的均方误差;GA优化器根据均方误差,得到对应的适应度值,然后进行遗传优化,最终得到最优化的BP网络权值。
2 过滤系统的实现
过滤系统的实现主要采用Java语言,使用SQL Server数据库来存放分词的结果,以及最终的关键词列表。过滤系统的实现包括两个关键的部分,自动分词模块和遗传优化的神经网络过滤模块。
2.1 自动分词模块
本文采用ICTCLAS[6]中文分词系统来实现对邮件内容的自动分词,从而得到邮件的关键词列表,为下一步的特征词提取提供词库。具体的实现方法是:在代码中,调用ICTCLAS系统提供的API,对输入的邮件内容进行分词,并返回分词结果。
2.2 过滤模块的实现
2.2.1 BP神经网的实现
本文采用实用性很强的三层的BP神经网结构,即包含一个隐含层的BP网络。根据一般邮件的长度大概为100-200字,输入层节点数目确定为50个,即对应50个特征词汇,应该足以反映大部分邮件的特征;输出层采用一个输出节点,输出节点的意义为当前邮件为垃圾邮件的概率:越大则越可能为垃圾邮件;隐层节点数目,按照参考文献[7]提供的方法,确定数目为10。
BP神经网的实现,采用开源工程JOONE (Java Object Oriented Neural Engine),作为BP神经网的实现框架,按照如上的网络结构,实现相应的BP网络结构。
2.2.2 遗传优化BP网络
利用遗传算法可以优化BP网络的结构和各个权值,为了简化问题,本文只使用遗传算法来优化BP网络的权值部分。
首先需要解决的是编码问题,根据权值的连续性、高精度等特点,选取实数编码方案,提高编码精度,增加搜索空间。对BP网络各个权值的编码方法是将权值分为四个部分:
1) 输入层到隐含层的权值:即由输入层到隐含层的连接的权值;2) 隐含层的各节点的阈值;3) 隐含层到输出层的权值:即由隐含层到输出层的连接的权值;4) 输出层的各节点的阈值。编码得到的个体如下:
通过编码,就将BP网络的权值转化为遗传算法可以处理的染色体了,从而可以进行遗传优化,找到最优的权值编码。最后,再根据编码的规则,逆向解码得到最终的BP网络结构。
3 系统测试与分析
本文采用中国教育和科研计算机网紧急响应组(CCERT),2005年搜集的邮件样本集,作为测试数据。在样本集中,选取一部分邮件作为训练数据,对BP网络过滤系统进行训练;另外一部分作为测试数据,对过滤系统的结果测试。具体测试数据如下:
练样本集大小:6113 ;垃圾邮件数:3110;正常邮件数:3003
测试样本集大小:200;垃圾邮件数:100;正常邮件数:100;判定阈值为:0.9
在以上的测试数据情况下,过滤系统在自动分词、特征词提取部分,表现出很好的性能;在采用遗传算法优化的BP网络训练过程中,能够快速的收敛,大大提高了训练能力。具体的测试结果如表1。
测试的结果表明,过滤系统具有较好的运行能力,在处理大量邮件时,运行速度相对较快,能够达到一般的性能要求。邮件过滤结果表明,过滤系统具有很高的准确率和查全率,在样本集相对完整和充足的情况下,能够起到很好的过滤效果。
4 结论
针对中文垃圾邮件的过滤问题,本文采用了基于遗传算法优化的BP网络作为过滤算法,并结合中文自动分词技术,设计并实现了针对中文垃圾邮件的过滤系统。引入ICTCLAS系统作为中文自动分词模块,基于JOONE框架,来实现遗传算法优化的BP网络过滤模块。最后,通过系统的测试,分析了系统的性能和垃圾邮件过滤的查全率和准确率。测试结果表明,该过滤系统具有一定的实际价值,可以为垃圾邮件处理领域提供一个新的参考。
参考文献:
[1] 中国互联网协会反垃圾邮件中心.2010年第二季度中国反垃圾邮件状况调查报告[R],2010.
[2] 郑可馨,姜守旭,罗志云.垃圾邮件过滤系统的设计与实现[D].哈尔滨:哈尔滨工业大学,2004.
[3] 潘文锋,王斌. 基于内容的垃圾邮件过滤研究[D].北京:中国科学院计算技术研究所,2004.
[4] 余本国.BP神经网络局限性问题的讨论[J].微计算机信息,2007(8).
这里需要一种可以运行在云端的文本分类软件,软件主要运行在安卓客户端和云端服务器之间。要求软件使用最小数据量实现最大程度的云端数据整合和文本分析准确率。
1.1 流程分析
本文需求并不要求更智能化的识别方式,而是通过语义分析法,通过对特殊关键词和关键词组合的方式进行识别得到文本分类结果。本文的研究内容主要用于识别和分析500字符之内的自然文本。这部分自然文本主要应用在对网络页面文本进行分析,同时用于对捕捉到的超文本标识代码进行内容文本和代码段的识别,业务流程图如图1所示。
1.2 模块分析
传统语义分析算法来自人工输入的特定文本之间的判断,一般语义分析算法只能识别80~120个关键词[5]。但此种规模的识别字典完全不能适应本文要求对自然文本的识别,所以本文采用三层识别方法见图2。
P1.1:根据固定关键词,识别超文本标识语言中的标识段数据,并将其剔除。
P1.2:根据自学习关键词,识别自然文本中的关键词,根据词频和关联度进行价值估计。
P1.3:根据自学习关键词,识别自然文本的含义,评估不同文本段之间的相似度,对文本段进行归纳整理。
而本软件的自学习部分(P2)不从传统的人工智能算法中得到关键词字典,而是采用语义分析中常用的联系算法进行关键词管理[6]。自学习部分放在云端服务器上,自学习结果采用软件更新的方式发送到客户端。自学习产生的流量来自服务器与互联网之间的联系,并不占用GPRS通道。
软件的移动端部分(P3)通过相对固定的关键词字典集合,根据实际分析得到的数据匹配结果进行远端比较,但大部分数据需要提交到P1模块进行局端比较。在移动端形成比较字符串后,可以较大程度地实现GPRS链路的数据最小化。
1.3 数据流分析
P1模块输入数据D1.1为P1.1的关键词字典数据,该数据以数据库表的形式保存在数据库中,形成表dataPinSOL。该数据主要用于辅助识别字段中的无信息量字符串,如超文本标识语言中的标识字符串等。
P1模块输入数据D1.2为P1.2的关键词字典数据,该字典数据来自自然文本中经常出现的字符串,以及用户易搜索的字符串。这部分字符串来自对海量信息的比较,海量信息来自互联网遍历捕捉文本和搜索引擎的采集文本。
P1模块输入数据D1.3为P1.3的关键词字典数据,该字典数据来自对D1.2数据进行进一步挖掘得到的与D1.2数据经常合并出现的字典数据。这部分字典数据同样来自语义分析的分析法。
因为本文算法不采用无限递归法[7],而是采用了三层计算的架构,而将语义分析段代码用于多层不限制递归。所以P1模块的数据流相对简单。P1模块的输出数据流为DL1,定义为比较结果字符串。该字符串作为搜索引擎对语义识别的结果字符串,不具备人脑识别的功能,但可以在计算机论文中给自然语言提供镜像,可以让较为模糊的自然语言在计算机中得到识别和模糊对比。
P2有两个输入量,P2.1来自合作搜索引擎的搜索字符串数据,该数据运行在光纤数据干线上,数据量较大,不会在GPRS链路中出现。此部分合作搜索引擎的数据采集内容主要包括搜索字符串,搜索时间,发生IP,发生IP地域,捆绑账号等。P2.2来自网络随机遍历采集的各种超文本,这些超文本数据采用单字段采集和多关键词分析的方式进行挖掘,所以数据结构较为简单。
2 算法设计
因为篇幅限制,本文仅讨论和展示部分核心代码和算法的设计,较复杂的算法过程不再给出伪码。P1.1是超文本对比算法,超文本对比算法使用了最经典的语义分析算法。而P1.2和P1.3采用的算法是在经典的语义分析算法的基础上做的扩增[8],这部分扩增可以让语义分析算法更加适用于自然语言下的文本分类。
本文算法的最主要成果是使用最小的CPU和RAM资源,对自然语言文本进行比较,从而获得更高效的适应当前互联网云服务市场的软件[9]。
2.1 超文本对比函数算法(P1.1局部)
读字典数据表,做对比循环函数。
对比循环函数伪码如下:
OPEN TABLE DICT
DO WHILE DICT NOT EOF
GET DIG_DICT RECORDSET FORM DICT
OPEN TEXTFILE
GET L_DIG_DICT LENTH DIG_DICT
FOR I 0 TO LENTH TEXTFILE
GET T_TEXTFILE MIDDLE TEXTFILE I L_DIG_DICT
GET SUMSHOW COMPARE DIG_DICT T_TEXTFILE
NEXT I
LOOP
RETURN SUMSHOW
2.2 数据逻辑网络的实现(P1.2局部)
数据逻辑网络主要是在数据库中使用数据结构实现数据的逻辑网络,每个数据都有若干个上级数据和若干个下级数据[10]。每个单个数据一般不超过15个汉字(32字符)。上级数据和下级数据使用专用字段存储,每个字段使用二维数组的方式进行管理。二维数组包括目标字符串(32字符),响应频率,最后响应时间3项。
为了充分调动数据逻辑网络,采用了全新的遍历算法,对每个记录下的两个二维数组字段进行分别遍历,以对文章内容进行逐一比较和计算。在比较中同时记录其他词语的词频,进一步对两个二维数组字段进行维护和更新。因为篇幅限制,只在本文模型下进行设计分析。
2.3 文本相似度评估算法(P1.3局部)
本文采用的文本相似度评估算法分为两段:
第一段对输入文本进行比较评估,对字典中每个关键词进行词频分析,同时对关键词出现的位置进行[t]检验和[χ2]检验,将结果使用Minmax处理为(0,1)值域。将每个处理结果进行汇总制表。与此同时,将输入文本与每个关键词的关联词进行词频分析,同时对关键词的关联词位置进行[t]检验和[χ2]检验,将结果同样使用Minmax处理为(0,1)值域。Minmax结果设计为小数点后12位小数。将每个处理结果进行汇总制表。
第二段将第一段中形成的两个数据表与系统中存储的数据表进行[t]检验和[χ2]检验,获取检验结果的[P]值。当[P<]0.05时,认为两篇文章具有相似度,且[P]值越小,文章的相似度越高。本文算法经过检验,完全相同的两篇自然语言文章输入系统后,两篇文章的[P]值接近于0,表示本文算法拥有较高的识别性。
3 结 语
本文就基于语义分析在计算机技术文本分类中的应用进行了软件工程分析和设计,在面向对象的设计模型中,本文实现了不使用任何神经网络递归算法就可以得到高效率的软件系统。这个算法系统可以在移动互联网设备中得到较广泛的应用。
狮子关库区森林群落演替过程和结构动态
日本落叶松人工林单木模型的研究
论生态林业的理论与实践途径
鄂西南地区松褐天牛生物学特性及发生规律研究
应用M99-1引诱剂监测马尾松病虫害的研究
松材线虫在受害马尾松树体内的分布及取样部位研究
湖北恩施松材线虫病的防治现状及对策
胡萝卜板栗糕的试制
丁草胺对水稻根系活力和C/N的影响
TGF-β_1对不同肺癌细胞生物学行为的影响
动物中天然抗癌产物研究
聚合物固体酸催化合成丙烯酸双酯——固体酸的合成
三溴偶氮氯磷-溴代十六烷基吡啶-钐-乙醇显色体系的分析研究
化学修饰电极及其测定痕量Pb2+、Cd2+、Hg2+的应用
光度法测定鱼腥草中有效成分的质量分数
以β-环糊精衍生物为柱层析固定相拆分氨基酸对映体
化学工业的可持续发展之路——绿色化学
模糊度量空间中的不动点及应用
祝贺生物资源保护与利用湖北省重点实验室顺利通过验收评估以评促建以评促改以评促发展
奇素数方幂中的孤立数
一类具混合功能反应函数的三种群捕食链模型分析
脉冲时滞Cohen-grossberg神经网络的指数稳定性
一类成批服务排队模型的时间依赖解的存在唯一性
基于模糊综合评判的学生综合素质评价体系
内积H-Z-空间及其性质
关于integralfromx=ato+∞(f(x)dx)的收敛性与limfrom(x+∞)(f(x))=0的关系
复平面上多项式的零点问题
平面复合材料热传导问题的一个新的多尺度渐近展开式
对牛顿迭代法条件的一个改进
基于MATLAB的血管三维重建
基于信息熵的TFIDF文本分类特征选择算法研究
一种基于势场的威胁模型及其应用
基于协同模式的一站式服务系统的设计与实现
基于ArcGISServer的企业级WEBGIS的设计与开发
整周模糊度的一种半参数解算方法
GPS高程测量精度分析
优质油菜栽培与养分管理智能决策系统的设计与实现
恩施州烟叶生产区域划分及配套栽培技术措施研究
祝贺生物资源保护与利用湖北省重点实验室顺利通过验收评估以评促建以评促改以评促发展
奇素数方幂中的孤立数
一类具混合功能反应函数的三种群捕食链模型分析
脉冲时滞Cohen-grossberg神经网络的指数稳定性
一类成批服务排队模型的时间依赖解的存在唯一性
基于模糊综合评判的学生综合素质评价体系
内积H-Z-空间及其性质
关于integralfromx=ato+∞(f(x)dx)的收敛性与limfrom(x+∞)(f(x))=0的关系
复平面上多项式的零点问题
平面复合材料热传导问题的一个新的多尺度渐近展开式
对牛顿迭代法条件的一个改进
基于MATLAB的血管三维重建
基于信息熵的TFIDF文本分类特征选择算法研究
一种基于势场的威胁模型及其应用
基于协同模式的一站式服务系统的设计与实现
基于ArcGISServer的企业级WEBGIS的设计与开发
整周模糊度的一种半参数解算方法
图像是人们日常生活和工作中随时都会碰到的一种客观的静态描述,对数字图像的深入透彻研究大大方便了我们的生活。目前的对于数字识别的算法主要有K邻近分类算法[1-3]、BP神经网络算法[4]。K近邻分类算法本身简单有效,不需要分类器进行训练,但其计算量较大,可理解性差;传统的BP神经网络收敛速度慢,网络和学习记忆不稳定。本文使用SVM分类算法结合MNIST数据集进行数字的识别,SVM(support vector machine)即支持向量机是一种分类算法[5],其优点是在统计量样本数比较小的情况下也能获得较为准确的统计规律。本文着手于研究机器识别手写数字,此手写数字识别实验主要分为三个部分:图像采集、图像预处理、数字识别。
1 图像预处理
对于摄取到的图片进行数字预处理是实验中重要的步骤之一是实验得出准确结果的前提。采集信号时,周围环境以及摄取设备对采集后的图片影响很大,若不进行图片预处理,往往很难得出正确结果。步骤如下:
1.1 中值滤波
一幅图像中,噪声的出现会使噪声点处的像素值比其周围的像素值相差非常多。可把图像中某一块的数据中所有像素值按大小顺序排列,如此和其他像素值相差很大的噪声点处的像素就会被排到最前或者最末端,再将排在中间的像素值代替模块中的中间的目标像素值,便可有效去除噪声。
1.2 直方图均衡化
直方图均衡化着重于图像灰度级的变换,目的是将图像灰度增强,它在实际工程中使用比较广泛。利用直方图均衡化可以将处理后的图像实际亮度集中的分布在亮度范围的中间区域。
1.3 图像分割
对提取到的图片进行图片分割,可将想要得到的数字更清晰的呈现出来。对于最佳阈值的选取,可以采用遍历像素值[1~254]。
(1)首先人工设置初始阈值Th=Th0将原图分为两类;分别计算两类的类内方差:
(4)
(5)
(6)
(7)
(2)计算两个区域各自的分布概率
(8)
(9)
(3)像素遍历选择选择最佳阈值,根据以下公式判定
(10)
1.4 形态学滤波
最基本的形态学滤波是腐蚀和膨胀,考虑到手写数字笔画可能会很粗不易于后期识别,所以采用膨胀的算法思路。一般膨胀是对二值图像进行处理,将此放在预处理最后一步。
2 数字识别
得到摄像头采集并经过处理后的数字图片后,下一步便是识别。识别数字的方式有很多,本文我们使用支持向量机SVM分类算法来实现手写数字识别。深度学习一般的解决思路便是将大量实例用于训练学习,学习后的机器会产生自己的一套识别体系,利用训练好的系统去识别未知的数字。其中SVM分类算法就是这样一个基础的机器学习的思想,在获得大量样本进行大量学习形成学习系统之后,机器形成一套自己用来识别手写数字的规则。随着样本数量的增加,算法会学的更加精确,不断提升自身的准确性。通常对于分类问题,可以将数据集分成三部分:训练集、测试集、交叉验证集。用训练集训练系统从而生成对数字的学习模型,用后者进行准确性验证(优化参数)。在ubuntu上,大约运行十分钟便可以完成训练和预测测试集的结果。
采用MNIST数据集下载训练数据和测试文件。要注意,摄像机采集之后,为了增强识别效果,对采集到的数字图片进行预处理以达到手写数字图片库的数字模式使识别可以更加准确。MNIST数据库是一个手写数据库,它有60000个训练样本集,10000个测试样本集。它是NIST数据库的一个子集。下载后的文件并不是标准的图像格式,图像都保存在二进制文件中,每个样本图像的宽高为28*28。在进行编写匹配程序之前要把其转换为普通jpg格式的文件。
3 结论
本文从识别手写数字字符识别入手,通过查阅大量资料得出一套完整的手写数字识别的方法体系,并且在Windows平台下,利用计算机视觉库OpenCv和CodeBlocks环境相结合进行实验,得出结果准确度高。采用的SVM分类算法与和典型的K邻近分类算法、BP神经网络算法相比,识别精度高。但是,在摄取图片背景复杂、图片曝光过度或不足、分辨率低的情况下,各算法还需要进一步完善。
参考文献
[1] 陈振洲,李磊,姚正安. 基于SVM的特征加权KNN算法[J]. 中山大W学报(自然科学版). 2005(01)
[2] 钱晓东,王正欧. 基于改进KNN的文本分类方法[J]. 情报科学. 2005(04)
[3] Yufei Tao,Dimitris Papadias,Nikos Mamoulis,Jun Zhang.An efficient cost model for K-NN search technical report. HKUST . 2001
[4] 王建梅,覃文忠. 基于L-M算法的BP神经网络分类器[J]. 武汉大学学报(信息科学版). 2005(10)
实时从视频中检测出行人和车辆。
自动找到视频中异常的行为(比如,醉酒的行人或者逆行的车辆),并及时发出带有具体地点方位信息的警报。
自动判断人群的密度和人流的方向,提前发现过密人群带来的潜在危险,帮助工作人员引导和管理人流。
医疗
对医学影像进行自动分析的技术。这些技术可以自动找到医学影像中的重点部位,并进行对比比分析。
通过多张医疗影像重建出人体内器官的三维模型,帮助医生设计手术,确保手术
为我们每个人提供康建议和疾病风险预警,从而让我们生活得更加健康。
智能客服
智能客服可以像人一样和客户交流沟通。它可以听懂客户的问题,对问题的意义进行分析(比如客户是询问价格呢还是咨询产品的功能呢),进行准确得体并且个性化的回应。
自动驾驶
现在的自动驾驶汽车通过多种传感器,包括视频摄像头、激光雷达、卫星定位系统(北斗卫星导航系统BDS、全球定位系统GPS等)等,来对行驶环境进行实时感知。智能驾驶系统可以对多种感知信号进行综合分析,通过结合地图和指示标志(比如交通灯和路牌),实时规划驾驶路线,并发出指令,控制车子的运行。
工业制造
帮助工厂自动检测出形态各异的缺陷
3. 概念什么是人工智能?
人工智能是通过机器来模拟人类认知能力的技术。
人工智能的三种训练方式分别是监督学习、非监督学习、强化学习。下文会一一介绍。
二、这是不是鸾尾花(分类器)1. 特征提取人类感官特征
花瓣数量、颜色
人工设计特征
先确定哪些特征,再通过测量转化为具体数值
深度学习特征
这里先不提及,文章后面会说
2. 感知器
老师给了一道题:
要区分两种鸾尾花,得画出一条直线区分两类花,你可以画出无数条直线,但是哪条才是最好的呢?
怎么办呢?我可是学渣啊,靠蒙!
随便找三个数a=0.5、b=1.0、c=-2 带入 y = ax[1] + bx[2] + c,
每朵花的两个特征也代入x[1]、x[2],比如带入(4, 1) 得出 y[预测] = 1,此时 y[实际] = 1 (样本设定变色鸾尾花为 1,山鸾尾为 -1 ),所以y[实际] – y[预测] = 0.
重复以上两步,得出所有的『实际值和预测值的差距的综合,记为 Loss1
可怎么知道是不是最优的直线呢?继续猜啊!继续懵!像猜世界杯一样猜就好了。
通过沿 y = ax[1] + bx[2] + c 梯度(梯度就是求导数,高中有学的!)下降的方向继续猜数字,具体过程大概是这样子的:
上述所属的实际值和预测值的差距 实际上是一种损失函数,还有其他的损失函数,比如两点间直线距离公式,余弦相似度公式等等可以计算预测结果和实际结果之间的差距。
划重点:损失函数就是现实和理想的差距(很残酷)
3. 支持向量机
*判断依据的区别也导致了损失函数的不同(但依旧是猜)
直观的说,缝隙(上图的分类间隔)越大越好
4. 多分类
如果有多种花怎么办?
一趟植物课上,老师请来了牡丹鉴别专家、荷花鉴别专家、梅花鉴别专家。老师拿出了一盘花给各个专家鉴定,牡丹角色这是牡丹的概率是0.013、荷花专家角色这是荷花的概率是0.265、梅花专家角色这是梅花的概率是0.722。
老师综合了各位专家的意见后,告诉同学们,这是一盘梅花。
小明:这老师是不是傻,一朵花是啥都不知道,还要请三个专家
老师:你给我滚出去
实际计算过程就是通过用 2.2 和 2.3 等方法训练的二分类器,分别输出对应的分类值(比如三种花的分类器分别输出-1,2,3),那怎么把这些分类值转化成概率呢?这就要用到归一化指数化函数 Softmax(如果是二分类就用 Sigmoid函数),这里就不拿公式来说,可以直观的看看书中这个表格就懂了:
5. 非监督学习第 2.2 能从预测值和实际值的差别判断”是否猜对了”,是因为生物老师告诉了学渣,哪些样本是山鸾尾花,哪些变色鸾尾花。但如果老师连样本实际的类别也不告诉学渣(非监督式学习),学渣不知道样本分别是什么花。
那该怎么办呢?
机器学习的入门课程总是在讲鸾尾花,也是够烦的。
这里我们换个场景:
假如你是某直播老板,要找一堆小主播,这时候你有一堆应聘者,然而你只有她们的胸围和臀围数据。一堆8份简历摆在你面前,你是不知道哪些更加能干( capable啊 ! ) 的,更能吸引粉丝。你也没空全部面试,那应该怎么挑选呢?
这时候你把她们的胸围和臀围都标准在一张二维坐标图上:
这是你随手一划,把她们分成两组,可以说“聚成两类了”。
用某种计算方式(比如平均值)找到这个聚类的中心。点离聚类中心越近,代表越相似。
求出每个聚类中的点到蓝色聚类中心点和黄色聚类中心的距离
如果一个点离黄色聚类中心更近却被你随手划到了蓝色分组(上图用红色边框标出的小方块),那么就把它划入黄色分组。
这时因为分组范围和分组内包含哪些小姐姐都发生了变化。这时候你需要以 步骤3 的方法重新计算聚类的中心
重复步骤 4 (算点中心距离)-> 重复步骤 5 (调整黄色小姐姐们和蓝色小姐姐们)-> 重复步骤 3 (算中心),一直循环这个过程直到蓝色和黄色聚类下所包含的小姐姐不再发生变化。那么就停止这一循环。
至此,小姐姐们已经被分为两大类。你可以得出两类小姐姐:
计算机在没有监督的情况下,成功把小姐姐们分成两类,接下来就可以在把两种主播各投放2个到平台看看谁更能干。效果更好的,以后就以那个聚类的样本特征扩充更多能干的主播。
小明:有什么了不起的,我一眼就能看出黄色小姐姐更能干
老师:你给我滚出去
上面聚类小姐姐的算法就叫做 K 邻近算法,K 为要聚类的数量(这需要人工指定),上述例子 K=2.那么如果分成三类就是 K=3,训练过程可以看下图,有个直观的了解:
三、这是什么物品(图像识别)1. 特征提取人类感官特征
花瓣颜色、花瓣长度、有没有翅膀(区分猫和小鸟)、有没有嘴巴和眼睛(飞机和小鸟)
感官的特征通过量化得到颜色(RGB值)、边缘(圆角、直角、三角)、纹理(波浪、直线、网格)数值特征
人工设计特征
深度学习特征
通过卷积提取图像特征
划重点:卷积的作用就是提取图像有用信息,好比微信把你发出的图片压缩了,大小变小了,但是你依旧能分辨出图像的主要内容。
1维卷积 1*5+2*4+3*3=22、1*4+2*3+3*2=16、1*3+2*2+3*1=10
2维卷积 1*2+3*0+2*4+4*2=28…
通过卷积就可以得到图像的特征信息,比如边缘
垂直边缘检测
水平边缘检测
方向梯度直方图
2. 深度学习和传统模式分类的区别既然有传统模式分类,为什么还要神经网络呢?
区别就在于传统的模式分类需要人为设置特征,比如花瓣长度、颜色等等。而深度学习省略掉人工设计特征的步骤,交由卷积操作去自动提取,分类器的训练也同时融入到神经网络当中,实现了端对端的学习
划重点:端对端学习(End to End)就是从输入直接得出输出,没有中间商,自己赚差价。
3. 深(多)层神经网络存在的问题一般来说,神经网络层数增多,会提高准确率。但是,网络层数加深导致:
过拟合学渣把高考预测试题的答案都背一遍而不理解,考试的时候,如果试题是考生背过的,那么考生就能答对;如果没背过那么考生就不会回答了。我们就可以说,学渣『过拟合了预测试题。
与之对应的是:欠拟合渣得不能再渣的人,连预测试题都背不下来,即使考试试题和预测试题一模一样,他也只能答对30%。那么就可以说这种人~~欠揍~~欠拟合。
有兴趣的还可以了解一下梯度弥散和梯度爆炸下面是网上很火很励志的一个公式,权重在多层网络中相乘,比如每一层的权重都是0.01,传递100层 就是 0.01 的100 次方,变得非常小,在梯度下降 Gradient Descent 的学习过程中,学习将变得非常慢。(好比从一个碗顶部放下一个小球,在底部徘徊的速度会越来越慢)
非凸优化学习过程可能在局部最小值(极小值)就停止了,因为梯度(斜率)为零。在局部最低停止而不是全局最低停止,学习到的模型就不够准确了。
看图感受一下
你说的底不是底,你说的顶是什么顶
解决的办法
均匀初始化权重值(Uniform Initialization)、批归一化(Batch Normalization)、跳远链接(Shortcut)涉及到比较多数学逻辑,这里就不展开说明了。
4. 应用人脸识别
自动驾驶把汽车顶部拍摄到的图片切分层一个个小方块,每个小方块检测物体是车还是行人还是狗,是红灯还是绿灯,识别各种交通标识等等。再配合雷达等判断物体距离。
四、这是什么歌(语音识别)1. 特征提取人类感官特征音量、音调、音色
通过采样、量化、编码。实现声波数字化(声波转电信号)
人工设计特征梅尔频率在低频部分分辨率高,高频部分分辨率低(这与人耳的听觉感受是相似的,即在一定频率范围内人对低频声音比较敏感而对高频声音不敏感)。
关系为:
在每一个频率区间对频谱求均值,它代表了每个频率范围内声音能量的大小。一共有26个频率范围,从而得到26维的特征。倒谱操作后,得到 13 维的梅尔频率倒谱系数(Mel-FrequencyCepstralCoefficients,MFCCs)
深度学习特征通过 3.1 所介绍的 1维卷积进行特征提取
2. 应用音乐风格分类
输入:音频文件特征:声音特征输出:音乐种类
语音转文字
输入:音频文件特征:声音特征输出:声学模型(比如26个英文字母)
再把声学模型送入另外的学习器
输入:声学模型特征:语义和词汇输出:通顺的语句(可以查看第6点,如何让计算机输出通顺的语句)
听歌识曲通过窗口扫描(把音乐分割成一小段一小段的),然后通过4.1说的方法提取这一段的特征,就得到一个特征向量。对数据库的歌和用户录音的歌做同样的操作得到特征向量,然后两两之间计算相似度(两个向量的距离可以用余弦公式算夹角大小或者两点间距离公式来算)
五、视频里的人在做什么(视频理解,动作识别)1. 介绍视频,本质是由一帧帧图片连续组成的,因为人视觉的暂留效应(Persistence of vision,人眼在观察景物时,光信号传入大脑神经,并不立即消失,让人产生画面连续的印象),看上去是连续的,也就是视频。识别视频里面有什么物体,可以用上文说过的图像识别和分类方法去实时分析单帧图像,比如:
但是视频相对于图像有一个更重要的属性:动作(行为)。
怎么从一个连续的视频分析动作呢?
举个例子,像上图那只二哈,腿部的像素点相对于黄色的方框(框和狗相对静止)在左右”移动”,这里的”移动”我们引入一个概念——光流(一个像素点从一个位置移动到另一个位置),通过像素点移动形成的光流作为神经网络的训练特征(X),『奔跑作为训练目标值(Y),经过多次的迭代训练,机器就可以拟合得出一个 Y = f(X) 用于判断视频中的物体(Object)是否在奔跑。
2. 光流假设,1)相邻两帧中物体运动很小2)相邻两帧中物体颜色基本不变
至于神经网络是怎么跟踪某个像素点的,这里不展开说明。
第 t 时刻的点指向第 t+1 时刻该点的位置,就是该点的光流,是一个二维的向量。
整个画面的光流就是这样:
整个视频的光流(轨迹)是这样的
不同的虚线代表图像上某个点移动的轨迹
假设视频宽width、高 height、一共有 m 帧,那么该视频可以用 width * height * m * 2 的张量(就是立体的矩阵)来表示,把向量喂到神经网络即可进行分类训练。
进一步优化,可以把光流简化为8个方向上的,把视频某一帧的所有光流累加到这八个方向上得出某一帧的光流直方图,进一步得出 8 维的特征向量。
六、一段文字在表达什么(自然语言处理)1. 特征提取
这里有4个句子,首先进行分词:
去掉停用词(副词、介词、标点符合等等,一般在文本处理上都有一个停用词表)
编码词表
句子向量化
这样就得到一个句子19 维 的 特征向量,再把这19维的特征向量用普通卷积网络或者 LSTM 循环神经网络作为 X 读入(喂它吃东西),文本的分类(比如积极、消极)作为训练标签值 Y,迭代训练得到的模型可以用于情感分析或文本分类等任务。
2. 进阶词向量化厉害-牛逼、计算机-电脑是同义词。光从上面的步骤,我们可能认为厉害和牛逼是两个完全不一样的词语,但其实他们是近似的意思,怎么才能 AI 学习知道这点呢?需要从多个维度去进一步给词语更丰富的内涵,比如:
举例来说,男性用1表示,女性用0表示,不带性别倾向就是0.5。多个维度扩展之后,就得到“男人”这个词的特征向量(1,0, 0.5,0,1)
逆向文档频率一个词在一类文章出现的多,而在另外分类的文章出现的少,越能说明这个次能代表这篇文章的分类。比如游泳在体育类的文章中出现的多(2次),而在工具类的文章出现的少(0次),相比其他词语(1次)更能代表体育类的文章。
假设句子中有 N 个词, 某个词出现次数为 T,一共有 X 个句子,该词语在 W 个句子出现,则逆向文档频率 TF-IDF 为 T/N * log(X/W)
3. 应用
七、让计算机画画(生成对抗网络)从前有个人,以卖临摹名家的画来赚钱。他开始临摹一副名画:
第一次他画成这样子了:
鉴赏家一眼就看出来是假的,他不得不回去画第二幅画、第三幅画…
经过了10万次”画画-鉴别”的过程,这个临摹者画出来的画,鉴赏家居然认为这是真的原作,以高价买入了这副画。
这种生成(画画)- 鉴别(鉴伪)的模式正是生成对抗网络(GAN)的核心。
通过生成器,把随机像素点有序排列形成具有意义的画面,再通过鉴别器得出生成的画面的分类、和真实画面之间的差距,并告诉生成器要往什么方向去优化。多轮的训练之后,生成器就学会了画『真画了。
计算机是怎么把随机像素点变成有意义的画面的呢?我们通过一个简化的例子来看看。
直线上一些均匀分布的点,经过 y=2x+1变换后变成了非均匀分布。一张随机排布的像素点画面,经过某个f(x) 变换后就会变成具有某种意义的画面,而生成器就是不停地去近似f(x), 就像 2.2 感知器拟合一条直线那样。
下图为计算机生成手写数字的过程
划重点:函数可以变换数据分布(库克说:可以把直的变成弯的)
八AlphaGo是怎么下棋的?(强化学习)1. 粗略认知监督/无监督训练:尽可能让每一次任务正确强化学习:多次任务是否达成最终目标
每一次任务都准确,不就是能达成最终目标吗?我们来看一个例子:
一家批发商店的老板爱丽丝要求她的经理比尔增加销售额,比尔指导他的销售员多卖一些收音机,其中一个销售员查尔斯弄到了一个可以获利的大单,但是之后公司因为供应紧缺无法交付这些收音机。
应该责怪谁呢?
从爱丽丝的角度来看,查尔斯的行为让公司蒙羞了(最终任务没完成)。
但是从比尔的角度,查尔斯成功地完成了他的销售任务,而比尔也增加了销量(子任务达成)。——《心智社会》第7.7章
2. AlphaGo下围棋,最古老的办法是决策树,从左上角的位置开始到右下角的位置遍历,每一个空的位置就是一个分支,然后预测每种棋局赢的概率,找出最大概率的走法玩。这就是落子预测器。
但是由于围棋19X19的超大棋盘,空间复杂度高达10的360次方,要穷尽所有的走法几乎是不可能的,如大海捞针。
要降低复杂度,关键是要降低搜索的广度和深度。
我们栽培一颗小盆栽的时候,如果不对枝叶进行修剪,那么养分就会浪费在没长好的枝条上。需要及时对枯萎或者异常的枝条进行修剪以保证养分往正常(或者说我们希望它生长的方向)枝条上输送。
同样的道理,有限的计算机算力如果浪费在穷尽所有围棋走法上,将导致棋局推演非常慢,而且耗费大量的时间也难以找到最优的方案。
是否可以通过 “修剪” 落子选择器这颗庞大的决策树,加快较优落子方案的选择呢?怎么判断哪些是好的”枝条”,哪些是坏的”枝条”呢?这就需要棋局价值评估器(哪个棋盘的赢的概率更大),把没有价值的棋局先去掉不再往下遍历,这就同时减少了搜索的广度和深度。
其中,落子预测器有个名称,叫做政策网络(policy network)价值评估器有个名称,叫做价值网络(value network)政策网络(policy network)利用蒙特卡洛搜索树从当前棋局推演(随机下棋)到最终的棋局,最终胜则回报为正,反之回报为负。之后该算法会反向沿着该对弈过程的落子方案步步回溯,将路径上胜者所选择的落子方案分数提高,与此对应将败者的落子方案分数降低,所以之后遇到相同局面时选择胜者方案的概率就会增加。因此可以加速落子选择,称为快速走子网络。
通过 政策网络 + 价值网络 + 蒙特卡洛搜索树 实现最优落子方案的选择,同时两个机器人互相对弈,这样就不停地训练网络,学习落子方案。
3. 定义接下来说一下枯燥的定义
什么是强化学习?
当我们关注的不是某个判断是否准确,而是行动过程能否带来最大的收益时使用强化学习(reinforeement learning)。比如在下棋、股票交易或商业决策等场景中。
强化学习的目标是要获得一个策略(poliey)去指导行动。比如在围棋博弈中,这个策略可以根据盘面形势指导每一步应该在哪里落子;在股票交易中,这个策略会告诉我们在什么时候买入、什么时候卖出。
一个强化学习模型一般包含如下几个部分:
一组可以动态变化的状态(sute)
对于围棋棋盘上黑白子的分布位置对于股票交易来说,就是股票的价格
一组可以选取的动作(metion)
对于围棋来说,就是可以落子的位置;对于股票交易来说,就是每个时间点,买入或者卖出的股票以及数量。
一个可以和决策主体(agent)进行交互的环境(environment)这个环境会决定每个动作后状态如何变化。
中图分类号:TP181文章标识码:A文章编号:1009-3044(2011)26-6492-02
Research of Web Text Classification Based on Artificial Immune System
ZHANG Wei-gang, CHEN Jun-zhang
(Information Engineering Department, Xuchang Vocational Teachnical College, Xuchang 461000, China)
Abstract: This paper concisely introduces some important function and character of narure immune stytem first,and then a new web text classification on artificial immunenetwork memory is presented, which is based on the principle of immune memory. The result of test show that the classifier can class web text fastly and accyracy.
Key words: artificial immune system; immune memory; web text classifier
目前使用的文本分类方法主要有支持向量机(SVM)、K近邻法、决策树、线形最小二乘法估计和贝叶斯分类算法。人工免疫网络记忆分类器(AINMC)受到人工免疫系统(AIRS)的启发,借鉴人工免疫网络(aiNet)利用人工免疫产生记忆细胞的思想,将其发展为监督学习系统,并用于数据分类研究。基于人工免疫网络记忆分类器(AINMC)的文本分类系统能够将大量文本自动分类,以更好地帮助人们更快地找到所需的信息。
1 人工免疫系统
人工免疫系统是模仿自然免疫系统功能的一种智能方法,它实现一种受生物免疫系统启发,通过学习外界物质的自然防御机理的学习技术,提供噪声忍耐、无教师学习、自组织记忆等进化学习机理,结合了分类器、神经网络和机器推理等系统的一些优点,因此具有提供新颖的解决问题方法的潜力。
本文受自然免疫系统的免疫记忆特性的启发,提出一种利用人工免疫网络记忆分类器(AINMC)进行网络文本分类的方法。
2 AINMC网络文本自动分类
2.1 特征提取步骤
待分类网络文本以HTML格式存储,在利用AINMC进行分类前要首先对该文本进行特征提取。
1) 预处理过程一是要根据禁用词集去除文档中语义虚泛和频繁出现的词,如地、因此、的、the、a等。二是要对某些表达不同但概念相同的词语映射为同意概念,例如“计算机”和“电脑”,就要影射为“计算机”。
2) 特征提取
在特征提取算法采用完整的页集合D=(d1,d2,d3,…,dN)建立网页中所有词的列表W=(w1,w2,w3,…,wM)。N,M分别为文件总数和列表中词的总数。这样就可以模拟每一个文件di(i=1,2,3,N)为M维空间RM中的一个向量Vi=(vi,1,vi,2,…,vi,M)。vi,j(j=1,2,…,M)表示词wj(j=1,2,…,M)在文件di(i=1,2,…,N)中出现的关系度量。我们已经预处理了常用词等对分类没积极意义的词,所以利用词w∈W出现或不出现的期望信息增益E(w,D)确定D的类别,其中P(w=pres)是一个词在任何页上至少出现一次的概率,Dw=pres是含有词w的网页集合。DC是属于类别C的网页集合,P(DC)是一个网页属于该类的概率。给定一个特别的词在文件中出现或者不出现的概率,需要多少信息的度量。这样,如果一个特别的词确定文件在哪一个类中,则第二项最小化,E∈(w,D)最大化。反之,如果一个词的出现或者不出现不提供关于一个文件在哪一类中的信息,第二项最大化,E∈(w,D)最小化。总之,对一个特殊的词,期望信息增益E∈(w,D)越高,提供越多的决定一个文件属于哪一类的信息,则该词被认为提供越多的信息。用该提取算法提取具有最高E∈(w,D)值的n个词,建立具有n个特征值的特征向量。
2.2 网络文本自动分类算法实现
在该算法中,上述经过特征提取的待分类数据即对应抗原,用AG表示;记忆细胞即对应抗体,用mi表示,i是文本类别数,由其组成的集合用M表示。因为分类是有监督学习,可以通过学习对未知的数据进行预测。为了构造分类器,即记忆细胞,需要有一个训练样本数据集作为输入。在初始化阶段,我们要把全部抗原随机分为两个部分训练抗原AG1与测试抗原AG2,从训练抗原AG1中随机抽取一部分用来构造初始记忆细胞集合mi,余下的用来对我们初始形成的记忆细胞集合进行训练。记忆细胞与训练抗原模拟生物免疫网络抗体抗原之间的相互作用,依照它们之间亲和力的大小,对初始记忆细胞集合进行优化。对能够与抗原相匹配的记忆细胞进行克隆与变异。克隆是对匹配记忆细胞进行复制,变异是优化记忆细胞,对记忆细胞的局部特征进行变异,能更成功的识别抗原。变异是该过程需要不断的重复以更好的优化记忆细胞集合,重复次数可根据实际抗原设定。在重复的过程中,不仅要计算记忆细胞与抗原的亲和力来选择记忆细胞进行克隆与变异,而且还要计算记忆细胞间的亲和力,将亲和力小于设定阈值的记忆细胞清除,以完成克隆选择。经过该重复过程形成最优的记忆细胞集合M,利用该集合对待分类数据进行自动分类。其算法如下所示:
Begin:
将待分类数据进行特征提取;
用全部抗原随机形成训练抗原AG1和记忆细胞集合mi;
While(训练抗原中每个抗原都与记忆细胞相互作用)
{
依据欧几里德距离计算初始记忆细胞与训练抗原亲和力;
选择亲和力最大的n个抗体,对每个选取的抗体依据亲和力的大小克隆NC个,亲和力越大,NC越大;
对克隆的抗体进行变异,以产生具有更高亲和力的抗体;
重新计算各变异后的抗体与抗原的亲和力,选择一定数量具有最高亲和力的抗体作为记忆集合;
去除记忆集合中相似度大于阈值σs的个体,产生新的记忆体集合
}
将每个训练抗原产生的记忆体集合合并为记忆集合M,即分类器;
分类:
利用分类器M对AG2进行自动分类;
End;
3 结论
人工免疫系统在数据挖掘、信息提取、模式识别等领域的应用来源与它自身较强的学习、记忆及自适应调节能力。它通过对网络抗体以记忆数据集迭代克隆变异及抑制操作,从中提取有用特征信息,最终达到识别和分类的要求。对于不同的信息分类要求,在学习,记忆过程中,应合理地调整亲和力阈值σr、σs的大小,从而获得准确的分类效果。
参考文献:
[1] 程传鹏,李钜.中文网页分类征提取的研究[J].中原工学院学报,2005,16(6):261-265.
低氧环境下血氧序列的多尺度熵分析
基于多核超限学习机的实时心电信号分析
基于惯性传感的穿戴式跌倒预警防护系统
痉挛对双瘫型脑瘫儿童下肢肌肉相关性的影响
合成免疫策略治疗慢性乙肝病毒感染综述
EMT的表观遗传调控在癌症进程中的研究进展
类风湿性关节炎免疫发病机制的研究进展
三维点云中的二维标记检测
基于词项关联的短文本分类研究
一种离心式微流控生化分析芯片
电子封装基板材料研究进展及发展趋势
基于镍尖锥阵列的柔性超薄超级电容器
溶胶-凝胶法制备二氧化硅微球研究进展概述
一种求解汽车外流场问题的可扩展数值算法
国内汽车机械式自动变速器技术研究综述
一种基于圆的几何特性改进的圆检测随机算法
智能无线传感网络在温室环境监控中的应用研究
适用于R290聚醚酯型冷冻机油的合成及性能研究
基于神经网络模型的双混沌Hash函数构造
微流控芯片技术在心肌标志物检测中的应用综述
大数据层面的microRNA功能相似性分析
三维快速自旋回波(SPACE)——序列原理及其应用
多模态集成阿尔茨海默病和轻度认知障碍分类
一种基于顶帽变换和Otsu阈值的轨道边缘提取方法
ATP荧光检测法检测医院电梯按钮表面细菌总数
社会网络中信息传播与安全研究的现状和发展趋势
用于光遗传技术的体外细胞光刺激系统
基于曲线投影模型的电子断层三维重构并行算法
配准算法对PCA单幅投影肺部重建的影响
加速量热仪在锂离子电池热测试中的应用
定向生长碳纳米管阵列热界面材料技术研究
低剂量口腔CT成像系统关键技术与成像方法研究
深圳市液化天然气与混合动力巴士排放试验研究
基于超声平面波的功率多普勒成像方法研究
基于分层Dirichlet过程的频谱利用聚类和预测
基于AFE4400的无创血氧饱和度测量系统设计
基于Markov随机场的脑部三维磁共振血管造影数据的分割
基于模式预测的低复杂度高清视频帧内编码方法
基于Android智能手机内置传感器的人体运动识别
基于MEKF的直流无刷电机磁极位置与转速检测技术
一种基于模糊PID的3TPS/TP型并联机器人的控制算法
基于词频统计特征和GVP的大规模图像检索算法研究
数据中心保障应用服务质量面临的挑战与机遇
基于人工蜂群算法的胶囊内窥镜位姿磁定位研究
几种自适应线性判别分析方法在肌电假肢控制中的应用研究