4.1 实验工具介绍文本分类是对输入文章进行预先设定类别判定的问题,涉及到大量文本要素的处理。因此选择适当的编程语言有助于文本分类实验的进行。Python 是一种应用广泛的通用编程语言,在文本分类领域中有其显著特点和优势。1、易于快速开发,语言简洁,技巧性小。2、内置常用的数据结构和算法,不仅有利于提高程序易读性,且利于文本结构的储存,便于文本的转换处理。3、具有丰富的标准库和第三方库以及数据处理包,许多辅助环节如字符编码、网页信息抓取等可以借鉴已有框架。4、相关研究的丰富积累,Python 在自然语言处理方面有很多优秀的相关模块和博客文章,有利于相关知识的快速了解与掌握。4.2 特征提取与表达方法的设计本实验,在设计过程中主要考虑以下几点:①文本分类属于有监督的学习,需要整理样本,确定样本数目以及记录样本标签。②针对爬取的新闻样本需要进行分词操作得到文章的词语表示。③因为分词后每篇文章中包含的词语是很多的,这些词并不都是表征能力强的词,所以需要根据词性、词长短等过滤掉大部分的无关词。④如何表征文章呢?在本实验中,我采用的特征提取模型是向量空间模型(VSM),即将样本转换为向量。为了能实现这种转换,需要进行确定特征词典和得到特征向量的过程。⑤虽然可以将所有样本的词都提取出来作为词典,但随着样本数目的增多,词典规模可能达到万级、千万级甚至亿级,这么大的维度可能会带来维度灾难,因此就要想办法从大量的特征中选择一些有代表性的特征而又不影响分类的效果,这个环节,我采用了目前领域内认为比较好的卡方检验方法得到每类中的关键词。⑥作为特征向量的表示,这里我采用了 TF-IDF 的方法得到每篇文章的特征表达。4.3 分类算法的选择在本实验中,我采用了朴素贝叶斯和 SVM 两种分类方法进行文本分类,其中,朴素贝叶斯为自己编写实现,SVM 为调用的 sklearn.svm.SVC。下面,我将从原理及流程方面介绍这两种分类算法。一、朴素贝叶斯