我:Siri,我爱你
Siri:扯淡
我:我真的爱你
Siri:我希望你不要给其他手机也这么说
1 自然语言处理
自然语言处理(Natural Language Processing,简称NLP)就是指用计算机对人类的自然语言进行有意义的分析与操作,是用计算机来理解、运用人类语言,是计算机科学与语言学的交叉学科。大家平时上网用到的百度、谷歌这些搜索引擎,还有前段时间热传的谷歌翻译,都是NLP的一些重要实际应用。如果能够充分利用NLP技术,将会大幅提高我们的工作效率。
2 文本分类
文本分类(Text Classification)在NLP领域里是一个很普通而应用很广的课题,指计算机将一篇文章归于预先给定的某一类或某几类的过程。主要的应用领域为网页分类、微博情感分析、用户评论挖掘、信息检索、Web文档自动分类、数字图书馆、自动文摘、分类新闻组、文本过滤、单词语义辨析以及文档的组织和管理等。
目前,文本分类已经有了相当多的研究成果,比如应用很广泛的基于规则特征的SVM分类器,以及加上朴素贝叶斯方法的SVM分类器,当然还有最大熵分类器、基于条件随机场来构建依赖树的分类方法。在传统的文本分类词袋模型中,在将文本转换成文本向量的过程中,往往会造成文本向量维度过大的问题,当然也有其他的压缩了维度的一些分类方法。还有一些是基于人工的提取规则,甚至是hard coding方式。这样不利于算法的推广。近些年随着深度神经网络(Deep Neural Network, DNN)的兴起,人们开始尝试用DNN解决文本分类的问题。从2013年的word2vec开始,自然语言处理领域引爆了深度学习这个热点,至今已经快4年了。目前取得重要成果的NLP任务大多在文本理解范畴,如文本分类,机器翻译,文档摘要,阅读理解等。
3.文本分类的过程
文本分类的过程3.1 训练样本预处理
3.1.1 分词
由于中文与英文的最大不同之处中文需要分词,分词的目的是将文档分割成一个个的单词。常用的分词工具包:perminusminus、Stanford 汉语分词工具(Bakeoff-2两项第一)、哈工大语言云(LTP -cloud)、ICTCLAS——(Bakeoff -1两项第一)、庖丁解牛分词、盘古分词、、FudanNLP(复旦大学)。
3.1.2 去"停用词"
分词完成之后就要去除"停用词"了。所谓的"停用词"是那些没有意义的词语,他们对文本分类没有贡献,比如说各种标点符号,今后、今天、今年这样的词语等。去掉这些没有作用的词语可以减少文本特征向量的维数,从而减少不必要的运算量。
3.2 特征选择
文本分类中最著名的特征提取方法就是向量空间模型(VSM),即将样本转换为向量的形式。为了能实现这种转换,需要做两个工作:确定特征集和提取特征。
3.2.1 确定特征集
提取特征就是对所有训练文档分词去停用词后的结果做并集操作,提取出一个特征集合,包含所有在分词去停用词后的样本中出现的单词。
3.2.2 特征选择
根据不同的业务,文本分类中词典的规模在万级到千万级甚至亿级。而这么大的维度可能会带来维度灾难,因此就要想办法从大量的特征中选择一些有代表性的特征而又不影响分类的效果(而根据文献中的结果,特征选择可以在一定程度上提高分类的效果)。
3.2.3 特征抽取
另外一种解决维度灾难的思路就是特征抽取。同样是降维,相比特征选择,特征抽取采用了一种高级的方法来进行。Topic Modeling是原理就是将利用映射将高纬度空间映射到低纬空间,从而达到降维的目的。
3.3 计算特征权重
给定一个样本,如何转换成向量呢?
首先给一张流程图:
流程:
- 1.首先,对样本进行分词,提取出所有的词。
- 2.根据已经生成的词典,如果词典中的词出现,就在相应对应的位置填入该词的词频。
- 3.对生成的向量进行归一化
上面的所示的方法是比较简单的一种,其中特征权重采用的为词频来表示,现在比较常用的特征权重的计算方式为TFIDF,TFRF。
3.4 模型训练与预测
当把文本转换成向量的形式后,大部分的工作其实已经做完了。后面所要做的就是利用算法进行训练和预测了。
现在文本分类的算法很多,常见的有Naïve Bayes,SVM,KNN,Logistic回归等。其中SVM据文献中说是在工业界和学术界通吃的,不过据我了解现在公司里用SVM来做分类的不多,而Logistic回归则是比较常用的,因为相对来说简单,而且可以并行化训练。
最新的研究进展是利用深度学习来进行文本分类,这个问题下次专门写一篇文章。
4.文本分类中的关键技术
(1)文本表示
计算机并不具有人类的智慧,不能读懂文字,所以必须把文本转化成计算机能够理解的形式,即进行文本表示.目前文本表示模型主要是Gerard Salton和McGill于1969年提出的向量空间模型(VSM)。向量空间模型的基本思想是把文档简化为特征项的权重为分量的向量表示:(w1,w2,…,wn),其中wi为第i个特征项的权重,一般选取词作为特征项,权重用词频表示.词频分为绝对词频和相对词频.绝对词频,即用词在文本中出现的频率表示文本;相对词频,即为归一化的词频,其计算方法主要运用TF-IDF公式。
除了向量空间模型外,还有概率模型.概率模型也考虑词与词的相关性,把文本集中的文档分为相关文档和无关文档.以数学理论中的概率论为原理,通过赋予特征词某个概率值来表示这些词在相关文档和无关文档之间出现的概率,然后计算文档间相关的概率,系统据此概率做出决策。
(2)特征选择与特征抽取
由于文本数据的半结构化甚至于无结构化的特点,当用特征向量对文档进行表示的时候,特征向量通常会达到几万维甚至于几十万维.寻求一种有效的特征降维方法,降低特征空间的维数,提高分类的效率和精度,成为文本自动分类中至关重要的问题.降维技术总的可以分为两类:特征选择和特征抽取。
(3)文本分类算法
研究文本自动分类的核心问题是如何构造分类函数(分类器),分类函数需要通过某种算法进行学习获得.分类是重要的数据挖掘方法,在文本分类中,几乎存在着和一般分类同样多的方法.在众多的文本分类算法中,重点介绍了Rocchio算法、朴素贝叶斯分类算法、K-近邻算法、决策树算法、神经网络算法和支持向量机算法。
网友评论