北京邮电大学学期实验报告.docx
- 文档编号:2185601
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:13
- 大小:40.72KB
北京邮电大学学期实验报告.docx
《北京邮电大学学期实验报告.docx》由会员分享,可在线阅读,更多相关《北京邮电大学学期实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
北京邮电大学学期实验报告
北京邮电大学
2013-2014学年第1学期实验报告
课程名称:
数据仓库与数据挖掘
实验名称:
SVM文本分类
实验完成人:
姓名:
学号:
姓名:
学号:
姓名:
学号:
日期:
2013年11月
实验一:
SVM文本分类
1.实验目的
Ø熟悉爬虫的使用,可以利用网络爬虫抓取所需的网络语料
Ø熟悉中文分词软件,可以熟练使用接口完成分词任务
Ø熟悉文本分类必要的预处理步骤,并运用到实验实践中
Ø熟悉特征提取方法,包括CHI-square和LDA特征提取
Ø了解SVM机器学习方法,可以运用开源工具完成文本分类过程
2.实验分工
XXX:
(1)运用爬虫对语料库新闻的收集
(2)对数据的预处理工作
(3)后期的不同对比试验的测试
XXX:
(1)特征的提取
(2)训练集和测试集的生成
(3)后期的不同对比试验的测试
3.实验环境
中文分词与LDA特征提取运行环境:
(1)Javaversion
(2)开发环境:
eclipse
Python代码运行环境:
(1)python
4.主要设计思想
4.1实验工具介绍
WebCrawler:
由实验室集体开发的网络爬虫,不对外公开。
可以方便的通过正则表达式的配置,轻松的完成对网络数据的提取,并且可以根据需求完成过滤老新闻、不合适的网址格式等功能。
最终的爬取结果文件已经经过程序处理,可以直接得到最需要得到的内容。
例如:
在此实验中,最终的爬取结果即为已经从网站中提取出的新闻标题和正文。
ICTCLAS:
全称为汉语词法分析系统。
具有简易的图形演示界面,和不同语言的API接口,开发者可以根据自己的需求选择不同的接口。
主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典;在今年的12月中下旬会发布ICTCLAS2014版本。
Libsvm:
是由台湾大学林智仁副教授等开发的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包。
除了主体训练,测试的程序,还提供了一些使用的工具,例如子集的选择,参数的选择与归一化的操作等实用的方法。
JGibbLDA:
使用JAVA实现了LatentDirichletAllocation(LDA),使用了Gibbs采样来进行参数估计。
4.2特征提取与表达方法的设计
在此次实验中,我们采用了两种特征提取的方法。
针对不同的方法提取的特征分别作了文本分类实验。
所有的特征提取与特征表达的详细步骤会在种进行描述。
CHI特征提取:
根据上面的公式,最终建立成了数据字典。
经过CHI特征提取建立成数据字典,数据字典如图所示(已经经过了按照字母排序处理):
在每个词的前面是数据字典中,每个词对应的id。
最终的特征向量表达方法为:
Class_idword_id:
tf-idf……
第一列class_id为此文本所属的新闻类别,word_id为数据字典中每个词对应的word_id,tf-idf为每篇文档中,对应的tf-idf值。
LDA特征提取:
LDA是主题模型的一种。
假设一篇文章可以由不同的主题组成,把每篇文章中的主题分布概率来当作这篇文章的特征,从而形成了特征向量。
主题的数量可以由人工根据情况指定或者通过其他方法科学的得到合理也就是概率最大的主题数量,再对其进行人工指定。
经过LDA主题模型分析之后,在通过简单的处理,变换成SVM可以接受的输入格式,会得到如下的特征向量:
图中的第一列为文本的所属类别。
后面的为topic_id:
probability。
Topic_id为相应的主题id,probability为这篇文档此主题的分布情况。
两种特征提取的方法,都将会在中进行详细描述。
4.3分类算法的选择
我们使用的SVM(SupportVectorMachine)分类算法,是最大margin分类算法中的一种。
SVM是一种可训练的机器学习方法,在小样本中可以得到优秀的训练模型。
图1
如图中所示,SVM分类算法可以根据最边界的样本点,也就是支持向量,达到二分类的目的。
当数据的样本线性不可分时,会通过核函数的映射,把样本转换到线性可分的向量空间。
所以核函数的选择也会影响最终的效果。
如果遇到了多分类的问题,如下图所示,可以通过多个SVM训练模型完成多分类的任务。
现在的SVM工具包都提供了自动的多分类接口。
图2
此外,SVM与logisticregression非常相似。
Logisticregression虽然其名字当中是regression也就是回归,但是实际上此算法是一个分类算法。
为了达到性能和效率兼备,对不同情况运用不同算法的场景进行了描述:
n为特征的数量,m为训练样本的数量
(1)如果n相对m大很多,可以使用logisticregression或者使用SVM,核函数选择线性核函数
(2)如果n很小,m的大小适中,使用SVM,核函数选择Gaussian函数
(3)如果n很小,m很大,需要添加更多的特征,然后使用logisticregression或者使用SVM,不使用核函数。
神经网络的算法的效果会优于上面的算法,但是训练的时间非常长,这也是为什么很多人选择SVM的原因之一。
4.4性能评估方法
最终性能的评价使用了准确率(P),回召率(R)和F1-Score来评价分类效果。
为了解释每种评价标准的计算方法,先看如下表格:
实际情况1代表真实情况此类,0代表不属于
预测结果
1代表预测属于此类
0代表预测不属于此类
1
0
1
Truepositive
Falsepositive
0
Falsenegative
Truenegative
表1
P=Truepositive/(Truepositive+Falsepositive)
R=Truepositive/(Truepositive+Falsenegative)
F1-Score=(2*P*R)/(P+R)
在此实验中,我们分析了每种特征提取方法最终在每类与总体的准确率、召回率和F1-Score的结果。
关于结果分析的详细描述见。
5.实验过程
基于CHI特征提取的实验流程图:
基于LDA特征提取的实验流程图:
5.1文本分类语料库的采集
通过网络爬虫在爬取新闻语料。
爬取的类别有:
Sport
运动
Finical
经济
Edu
教育
Ent
娱乐
Baby
婴儿
Tech
科技
Games
游戏
Comic
动漫
Auto
汽车
house
房产
在语料库的收集中遇到的主要问题为,有的分类的网页会得到404的爬取结果,原因在于访问的对方服务器的文件夹年份过于早,网页已经被删除,也就是过期网页。
经过对这些网页爬取结果的分析,大部分此类网页的爬取结果都为1KB(在windows操作系统下,最小的文件只有1KB,没有更小的文件),为了提高最终分类的效果,对所有爬取的新闻文件小于1KB的都做了删除处理。
另外,也对比较大的文件做了处理。
经过对爬取的文件的分析,部分新闻文件都是代码没有新闻内容,对于这样的文件大部分在10、50KB以上,一篇新闻的内容大于150KB的可能性非常小,所以,对于此种异常文件,也做了删除操作。
经过以上处理,对新闻文件的分配如下:
(1)训练集:
一共10类,每类的训练集为5000篇新闻。
总共50,000篇训练集。
(2)测试集:
运动
10223
经济
6906
教育
9416
娱乐
34937
婴儿
14948
科技
12156
游戏
23945
动漫
12306
汽车
10305
房产
4373
总计
139,515篇
在后期的实验结果中,我们也对设计了不同的训练集和测试集的比例进行了实验,详细结果分析见。
5.2数据预处理
(1)对所有新闻文件使用JAVA接口进行分词。
效果如图:
(2)对每一类新闻的训练集进行提取名词、去停用词的处理,并且,为了以后方便计算每个词的tf,同时记录每个单词在文档中的tf。
例如:
汽车类(automatic)的其中一篇新闻,经过处理,转换成如下的文件内容,为了描述方便称此类文件为news_word_frequence文件:
(3)经过对每一类新闻训练集进行如上处理,分别将每一类的所有news_word_frequence文件的单词进行汇总,同时记录每个词的词频,最终得到如下文件:
图中一共有10个文件,代表了10类新闻中的出现的所有单词(已经经过了取名词、去停用词的处理,并且已经根据词频进行了降序排序)
例如,文件如下:
第一列为单词,第二列为此单词出现的频次。
在我们的实验中,去除了频次低于5次的单词。
处理过程如图所示:
5.3特征提取和表达
在本实验中使用了CHI特征提取与LDA特征提取两种方法。
下面分别对其提取过程进行描述。
CHI特征提取:
在此公式中,变量的含义如下所示:
N:
所有文档的数目
A:
在该分类下,包含此单词的文档数量
B:
不在该分类下,包含此单词的文档数量
C:
在该分类下,不包含此单词的文档数量
D:
不在该分类下,不包含此单词的文档数量
由于最后,只需要根据CHI的卡方值进行排序,为了简化运算,对公式做了简单的简化处理:
简化后的计算方法为:
,因为在排序的步骤中,N,(A+C),(B+D)不会对最后的排序造成影响,所以做了简化处理。
(1)因为训练集的数量一共为50000篇,计算CHI值的时间比较长,所以,先分别计算了每一类下每个单词的A,B,C,D值,并输出到文件。
如图所示:
图中的每一个*.abcd文件,代表着每一类新闻的每一个单词的A,B,C,D值的信息。
例如,下图所示:
文件
第一列为汽车类(automatic)中的单词,往后以此为此单词的A,B,C,D值。
(2)在得到上述文件之后,便可以根据简化后的公式,计算每个单词的CHI值,降序排序后,最终得到如下文件:
比如,在文件中,如下图所示:
经过降序排序以后,发现排列靠前的单词几乎全都与汽车相关。
(4)分别取每一类的排序前1000个单词,经过汇总,去重,得到最终的数据字典,一共是7544个单词,同时对这些词进行唯一的id标识。
得到文件。
如图所示:
第一列为单词的id,第二列为数据字典中的单词。
(5)根据数据字典,将每篇训练集新闻文档和测试集新闻文档转换成特征向量。
如图中所示:
第一列为文本类型id,其他列分别为word_id:
tf-idf
LDA特征提取:
LDA的特征提取使用了JGibbLDA开源工具。
(1)根据要求,分别将训练集和测试集生成对应的格式要求。
输入格式如下:
[M]
[document1]
[document2]
...
[documentM]
[documenti]=[wordi1][wordi2]...[wordiNi]
[M]为总文件的个数
得到的文件如下所示:
50,000代表着训练集的数量。
每一行代表一片文档,其中的单词代表每篇文档中出现的名词(已经经过取名词、去停用词等预处理)。
(2)首先对训练集进行迭代,最终得到5个输出文件:
其中
如图所示:
经过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 邮电大学 学期 实验 报告