浅析文本分类算法

标签:
齐家堡it教育学术 |
分类: 自然科学基金重点项目 |
浅析文本分类算法
文本分类(Text categorization)是指在给定分类体系下,根据文本内容自动确定文本类别的过程.文本分类是文本处理中一个很重要的模块,应用也十分广泛,包括垃圾过滤,新闻分类,情感分类,词性标注等。文本分类与普通分类任务相似,但也有包括数据预处理、模型构建等差异。文本分类的关键技术和流程如下:
1.数据预处理
对于中文文本而言,由于不同于英文词与词之间靠空格分开,首先需要对文本进行分词。中文分词技术,已经从简单的词典匹配,发展到基于统计语言模型的方法,并逐渐引入了深度学习的思想。目前有许多中文分词工具,如结巴分词、汉语词法分析系统ICTCLAS、LTP等
2.文本表示
计算机无法理解人类的语言,只能计算数值。所以对于文本类型的数据,需要将其转化为数值型的数据。目前文本表示模型主要是Gerard Salton和McGill于1969年提出的向量空间模型(VSM)。向量空间模型的基本思想是把词语转变为权重为分量的向量表示:(w1,w2,…,wn),其中wi为第i个特征项的权重。词向量的表示方法有以下几种:
2.1 one-hot编码
又称一位有效编码,是词向量最简单的表示方法,用一个很长的向量来表示一个词,向量长度为词典的大小,向量的分量只有一个 1,其位置对应该词在词典中的位置,其他全为0。原则上,这种表示方法没有信息损失,能通过词向量与词典还原原数据。但这种表示方法有两个缺点:(1)容易受维数灾难的困扰,尤其是将其用于深度学习的一些算法时;(2)不能很好地刻画词与词之间的相似性
2.2 分布式词向量
分布式词向量用一个事前定义好长度的向量来表示词语,向量中每一个元素为任意实数,元素的值通过训练来确定。这种编码方式大大缩短了向量长度,克服了在深度学习中可能的维度灾难,并使词语相似度计算成为可能。比较著名的分布式词向量计算工具有word2vec,它是2013年Google开源的一款工具。其核心是神经网络的方法,采用 CBOW(Continuous Bag-Of-Words,即连续的词袋模型)和 Skip-Gram 两种模型,将词语映像到同一坐标系,得出数值向量。
3 文本分类模型
文本分类的核心问题是分类模型的构造,文本分类算法众多,常用的方法有kNN,朴素贝叶斯,支持向量机,神经网络,决策树等。下面主要介绍循环神经网络在文本分类中的应用
3.1 神经网络
http://s10/mw690/001ZJfk9zy7hoPNhUF379&690
上图(选自百度百科词条—神经网络)是神经网络的基本构造,包含输入层,隐藏层和输出层。数据从输入层进入模型,输出层是分类标签。
3.2 循环神经网络
循环神经网络(RNN)是一种变体神经网络,传统神经网络无法考虑到时序信息。而文本是包含时序信息的一种结构,前后词语具有关联性。在RNN中,前一时刻输入的词语信息会被保留到当前时刻。相当于每一层输入都包含了当前词语和之前词语的信息,这种方法对于文本等序列数据有非常好的表现能力。
文本分类是自然语言处理中十分重要的一个工作,其分类模型也种类繁多。值得注意的是,分类的效果受语料和预处理的影响很大。一份数量和质量都良好的语料以及合理的词向量训练,往往要比模型的选择更能提升分类效果。