【爬虫、贝叶斯、SVM、LDA一条龙服务】从数据收集到文本分类:从零开始你自己的数据挖掘工程

0. 前言

对于每个学习数据挖掘的人来说,总会在某个时刻想要自己从头开始一项数据挖掘工程。这不同于用一用搜狗的新闻资料库,或者是kaggle、天池等竞赛的资料库,要自己从头开始收集数据,使用爬虫收集,然后去重,数据清理等等。

使用已有的数据库,好处是省略了自己收集的过程,遇到各种奇奇怪怪的问题,网上也有解答,更重要的是,我们心里有底,知道如果过程不出问题,最后总是能得到一个不错的结果。但是自己收集数据则不是这样,我们收集的数据是独一无二的,可能隐藏许许多多问题,需要我们自己去处理。在一个数据挖掘工程中,这部分要花费80%以上的时间,但是我们所做的实验,由于种种原因,会将这一步简化甚至略过。这不能不说是一种遗憾。这也是我开始自己从头开始的初衷。

1. 准备工作

在本实验中,我选择进行英文文本的分类任务。

数据预处理中,训练集和测试集均由本人自己编写爬虫获得,数据源为浙江大学图书馆文献资料库。

分词、标记、去停用词:使用Windows下Python 3.7 的nltk包。

所使用的分类算法包括如下几个:自编朴素贝叶斯算法; svm:libsvm和liblinear;lda:Python 3.7 的 lda包。

2. 实验环境介绍

2.1 数据库介绍

浙江大学图书馆的求是学术搜索拥有较为全面的中英文期刊数据。对于每篇文献,拥有对应的文献关键词、文献类别、文献作者、期刊名称等信息。并且期刊的摘要为显式显示。对比其他数据库如社交信息、新闻等数据,该数据库数据较为规范,分类较为准确,具有较高的实验价值。

本次实验爬取了2005-2019年数据库中十余类共约200万篇英文文献(3.51G),类别分别为农学、解剖学、经济学、化学、教育学、地理学、语言学、法学、数学、物理学等。每类文档从四万到十五万不等。

数据来源:http://libweb.zju.edu.cn

2.2 NLTK

NLTK大概是最知名的Python自然语言处理工具了,全称"Natural Language Toolkit", 诞生于宾夕法尼亚大学,以研究和教学为目的而生,因此也特别适合入门学习。NLTK虽然主要面向英文,但是它的很多NLP模型或者模块是语言无关的,因此如果某种语言有了初步的Tokenization或者分词,NLTK的很多工具包是可以复用的。

本次实验使用了NLTK包的WordNetLemmatizer进行词形还原,pos_tag进行词性标注。词形还原是把一个任何形式的语言词汇还原为一般形式(能表达完整语义)。相对而言,词干提取是简单的轻量级的词形归并方式,最后获得的结果为词干,并不一定具有实际意义。词形还原处理相对复杂,获得结果为词的原形,能够承载一定意义,与词干提取相比,更具有研究和应用价值。

详细的介绍参见该网址

2.3 libsvm

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVMν-SVMε-SVRν-SVR等问题,包括基于一对一算法的多类模式识别问题。

本次实验首先使用了libsvm进行分类,但是出现了训练时间过长的缺点。因此又选择了liblinear进行尝试。Liblinearlibsvm的特殊实现,其核函数指定为线性核,因此进行了许多优化。另外,libsvm进行n类多分类时,需要训练n(n-1)/2个模型,而liblinear仅需训练n个,这极大缩短了训练和分类时间。

2.4 lda

LDA(Latent dirichlet allocation)是由Blei2003年提出的三层贝叶斯主题模型,通过无监督的学习方法发现文本中隐含的主题信息,目的是要以无指导学习的方法从文本中发现隐含的语义维度-即“Topic”或者“Concept”。隐性语义分析的实质是要利用文本中词项(term)的共现特征来发现文本的Topic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值