每周周报7.06-7.13

周报
2018.7.6-2018.7.13

本周的工作-学习:

1.本周的主要工作还是对论文《Entropy-based Term Weighting Schemes for Text Categorization in VSM》的复现,论文复现的任务到目前已经花了两个礼拜。时间很长,但是总算搞明白到底怎样去实现论文复现这一工作内容。
在此简单记录下整个复现的流程,从最初的拿到任务说要把这篇论文复现出来,我是很疑惑的,因为觉得怎么可能呢,然后经历了后面的“好像可以”阶段,接着又经历了“确实论文是可以复现”的阶段,到目前实验结果都拿到手里了。
论文的主要内容是讲了基于熵的术语加权方案,首先调查了目前最流行的七个术语加权方案的缺陷。考虑到类别特定的术语关于这些分类有更小的熵值,然后探索了术语的区分能力和关于一些特别的熵的关系。最后,基于此,提出了两个基于熵的术语加权方案,dc和bdc,它们测量术语的区分能力是基于在一些类别的语料库中的分布浓度。文章在长文本语料库和短文本语料库中分别比较了这些方案,发现dc和bdc在文本分类中会比其他方案表现的更加优异。
所以论文该篇论文复现主要是为了证明论文中提出的dc和bdc会比其他的术语加权方案更加优秀。
本篇论文复现的大概过程:
1)首先本篇论文使用了两个数据集,一个是Reuters-21578,另一个是Snippet。但是由于后面那个数据集获取不到,所以本实验就只使用了第一个数据集。Reuters-21578数据集是经过处理的语料库。在这里面使用了7674个来自八个大类的文档,把它分为训练集和测试集,其中训练集包括5485个文档,测试集包括2189个文档。本次做的实验获取的数据集都是直接被人处理过的,所以省去了对语料库预处理的步骤。
2)复现的大概过程:首先要通过训练集计算得到词语的权重(文章中提到的8种方法都要计算),然后将训练集的每篇文章变成向量表示,构成训练特征,每篇文章的分类标签也都变成向量表示(这里是通过sklearn.preprocessing里面的LabelEncoder和OneHotEncoder进行处理的),然后再扔进KNN或者SVM分类器中进行训练。训练之后,把测试集文档也进行上面的操作,将文章向量作为特征输入到分类模型中,之后得到预测结果。最后论文采用了两种衡量标准评估8种方法的准确率,分别是MicroF1和MacroF1。其中MacroF1更能反映出每种方法的好坏。
3)复现基于Python3.5,KNN使用的是sklearn里面的KNeighborsClassifier包,SVM本来应该使用和原论文一样的liblinear包,但是这个包的安装非常复杂,始终安装不上去,所以最后只能选择安装sklearn下的svm包。使用的两个分类器都没有进行任何的调参。最后的结果显示在KNN模式下dc和bdc表现结果挺好,但是在SVM模式下表现就有点欠佳了,不知道是不是因为

a)没有正确的使用论文里面提到的包
b)没有对SVM进行仔细调参。
c)或者是因为自己的代码有点小问题

最后的结果显示是这样的。
在KNN模式下:
这里写图片描述
这里写图片描述
在SVM模式下:
这里写图片描述
这里写图片描述
2.关于论文的复现是本周的主要工作,详细的每天的工作如下:
a)7.6日主要学会处理如何将文本、词语转化成向量表示,转换使用了sklearn.preprocessing里面的LabelEncoder和OneHotEncoder。
b)7.7日主要学会了如何得到train_x, train_y。分别是词语权重表和类标签索引。
c)7.8日休息。7.9日开始学习如何使用KNN分类器,进行预测类别。尝试使用了不同的邻居数(只测试了1-35的邻居数),从而得到每种方法的最优的邻居数从而得到最优的结果。
d)7.10日早上去听了师兄师姐的期中答辩,下午开始去学习使用SVM分类器,去尝试安装liblinear包,可是安装失败。最后只能使用sklearn下的svm包,一直试了很久可是跑出来的效果让人很不满意。
e)7.11日仔细的看了dc和bdc计算权重的方法,并且学习了两个评估函数MicroF1和MacroF1。然后等待交差。复现任务到此结束。
f)7.12日帮师兄爬取了优酷的一些视频类别的名称。晚上接收到了新的任务,汪汪项目。开始安装各种环境,诸如下载wampserver和Navicat。Wampserver安装有点问题,没有成功。
g)7.13日解决Wampserver安装问题,并且看项目文档,先熟悉数据库。

3.关于复现任务小结:
通过此次复现,更加明白了自然语言处理中是如何把文本转换成向量的,因为计算机是看不懂文字的。还了解到了很多术语权重方法,给词语赋权重主要是为了增强词语的辨别能力,从而能将一篇文章从其他文章中区分出来。通过此次复现,机器学习的大致流程也大概懂了些,浅显的概括就是用模型进行训练、预测、评估。

本周的工作-听师兄师姐论文期中检查:

1.来听这个报告主要是想了解一下以后要经历的这个流程是怎么样的。看见每个师兄师姐的展示的PPT上都有关于自己的毕业论文的进度表,感觉提前安排了真的挺好,一方面有全局的概念,对自己的论文进度了如指掌,另一方面有可以让老师随时把握自己的进度,让老师安心。
2.有的师兄的论文被老师说成大而空,可能要进行大改,感觉有点惨,所以以后自己写论文一定要及时的和老师沟通,不要最后浪费了时间。
3.感觉能把自己的东西讲出来,写出来,表达出来真的是一项很重要的能力。有时候讲不出来自己的重点,讲不出来自己的想法真的是很难过的,就比如我想仔细讲一下自己是如何复现这篇论文的,根本就表达不出来,语言也不知道该如何整理。

本周的工作-其他:

1.在网上买了《机器学习》的课程,想要系统的去学习一下机器学习。目前只学习了部分数学基础内容,包括微分学和梯度(但是梯度完全听不懂)

本周看的课外书(未完成):

1.《时光倒流的女孩》[美]加`泽文著 50%
2. 开始看实验室的《中国计算机学会通讯》杂志,看了4篇文章

下周的计划:

1.布置的汪汪项目任务周五前完成
2.《中国计算机学会通讯》杂志,每天一篇,不求能看懂,只求补充点基础知识。
3.读一本课外书

猜你喜欢

转载自blog.csdn.net/qiqi123i/article/details/81034766