【信息检索】分类和聚类的实验

(1) 用Java语言或其他常用语言实现教材《Introduction to Information Retrieval》第13章中介绍的两种特征选择方法:13.5.1节中描述的基于互信息(Mutual Information)的特征选择方法和13.5.2节中描述的基于X^2的特征选择方法。

请自行从学校公文通获取2021年的新闻文档(爬取或手动下载),要求包括以下150篇新闻文档:
“党政办公室”发布的最新的30篇新闻文档,
“教务部”发布的最新的30篇新闻文档,
“招生办公室”发布的最新的30篇新闻文档,
“研究生院”发布的最新的30篇新闻文档,
“科学技术部”发布的最新的30篇新闻文档。
将“党政办公室”、“教务部”、“招生办公室”、“研究生院”和“科学技术部”作为5个class,并通过互信息和X^2为每个class选出最相关的15个特征(包含特征名称和相应的值,小数点后保留2位),并对结果作简要分析。

代码截图、运行结果截图和详细的文字说明:

第一步:爬虫

使用python selenium自动化工具从公文通上进行文本的爬取,并且提取正文整理成文件存储。具体实现流程大致为使用chrome自动化工具自动切换至2021年各个部门的界面,然后爬虫获取前30篇新闻的链接并使用定位到相应div进行文本读取。具体实现如下:

自动化页面切换:

image-1653297565364

获取文本信息:

image-1653297588015
image-1653297621446

第二步就是进行文本信息处理

1. 读取文档,根据文件名进行分类

image-1653297640244

其中file[0-5]依次为五个类别的文章
image-1653297665455

2.使用jieba进行分词处理,并生成词袋。

image-1653297688296

分词结果:
image-1653297707574

词袋:
image-1653297723243

注:由于爬虫下来的文章会有\u3000等多余字符,所以需要进行额外处理
image-1653297759196

第三步是进行特征选择:

MI计算公式如下所示:
image-1653297782324

所以为了减少重复计算工作,我首先对于每个词项在不同类别中的出现情况进行了统计。对于每个单词,我首先统计成了以下表格形式:

Word / Category出现次数未出现次数
Category 1129
Category 2327
Category 3525
Category 4723
Category 5921

image-1653297930935

有了以上表格,就可以快速的计算出每个类别下N11,N10,N01,N00的四个值了,并且根据MI,X^2的计算公式得到相应结果
image-1653297955925
image-1653297963737
image-1653297970896

最终计算结果如下所示:
image-1653297986871
image-1653298021860

第四步就是进行排序了。

由于题目只需要获得前15大的特征值,因此此处选择了基于小顶堆的TopK算法:
首先编写一个小顶堆重建算法:
image-1653298047199
然后是TopK排序算法:首先用前K个元素建立小顶堆,如果后续元素大于堆顶元素,则替换,并重建小顶堆。最后使用堆排序算法,对K个元素进行排序。
image-1653298060738
最终得到如下结果:
image-1653298074409
image-1653298081092

对使用的中文分词工具作简要介绍:

调用jieba.cut函数进行分词
jieba分词0.4版本以上支持四种分词模式:
1.精确模式:试图将句子最精确地切开,适合文本分析;
2.全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义
3.搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
4.paddle模式:利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。

可以看出,全模式的切词是最粗糙的,将所有的词汇都进行了返回。主要有以下几个问题:
1.未结合语境,容易有歧义:协同过滤----> 协同+同过+过滤
2.不了解词汇:鲁棒----> 鲁+棒

精确模式与搜索引擎模式可以结合具体需求进行选择。

通过互信息为每个class选出的最相关的15个特征:

image-1653298188179

对通过互信息为每个class选出的最相关的15个特征作简要分析:

1、党政办公室:筛选出的信息比较符合,党政、党委、基层等词项很符合。
2、教务部:筛选的文章大多集中于12月份,当时大部分文章都在于总结年度工作。经过对比,可以大致概括出当月的主要工作内容。
3、招生办公室:比较符合。可以很明显看出当时发布了许多走进高中宣传深大的咨询。经验证,发现确实发布了大量主题为《名师进中学》的系列文章。
4、研究生院:筛选出的信息比较符合,硕士、导师、博士等词项很符合。
5、科学技术部:筛选出的信息比较符合,国家自然科学基金、自然科学、经费等词项很符合。

通过X^2为每个class选出的最相关的15个特征:

image-1653298239150

对通过X^2为每个class选出的最相关的15个特征作简要分析:

1、党政办公室:筛选出的信息比较符合,党政、党委、基层等词项很符合。

2、教务部:筛选的文章大多集中于12月份,当时大部分文章都在于总结年度工作。经过对比,可以大致概括出当月的主要工作内容。

3、招生办公室:比较符合。可以很明显看出当时发布了许多走进高中宣传深大的咨询。经验证,发现确实发布了大量主题为《名师进中学》的系列文章。

4、研究生院:筛选出的信息比较符合,硕士、导师、博士等词项很符合。

5、科学技术部:筛选出的信息比较符合,国家自然科学基金、自然科学、经费等词项很符合。

对通过互信息和X^2为每个class选出的最相关的15个特征作简要的对比分析:

因为爬虫的关系,在所有文章中都会出现类似(本文最近更新于2021/12/29 19:05:00 累计点击数:877)的语句。但是两种算法都可以很好的过滤掉这种在所有类别中都重复出现的信息,原因是这种语句中term的N11和N10都很高,可以较好的进行过滤。

另外两种计算方法,前几个特征的选择及排序都相对一致。后面几个特征会有不同的侧重,这是因为X^2基于显著统计性进行选择,因此他会比MI选择出更多的罕见项,而这些词项对于分类是不太可靠的。当然,MI也不一定就能选出是的分类精度最大化的词项。因此我认为加大样本量才是更好的方法。

(2) 用Java语言或其他常用语言实现一个基于朴素贝叶斯分类算法(Naive Bayes algorithm)的文档分类简易系统(判断某个公文通的通知是不是“党政办公室”、“教务部”、“招生办公室”、“研究生院”和“科学技术部”方面的信息,即从5个类别中选择最相关的一个)。

要对使用特征选择和不使用特征选择的分类效果进行对比和分析。用题(1)中的文档进行训练和测试,每个类别中的20篇用作训练,10篇用作测试。
请在报告中附上系统整体设计、代码截图(不要复制源代码,请用截图的方式)、运行结果截图和详细的文字说明。程序要有详细注释。对使用的中文分词工具作简要介绍。(20分)

系统整体设计:

整体设计:
image-1653298306591

代码截图、运行结果截图和详细的文字说明:

第一步:读取文章数据集
image-1653298334125
读取过程中,需要读文本进行处理。其中包括由于爬虫下来的文章会有\u3000等多余字符,所以需要进行额外处理。然后利用jieba分词生成文章列表。postingList和classVec一一对应,为文本与标记的正确分类。
image-1653298353752
image-1653298360619
image-1653298370335

根据文章列表生成词袋
image-1653298387374
image-1653298394185

接下来就是训练NB分类器的过程了

image-1653298410424

朴素贝叶斯计算公式如下:
image-1653298425457
具体为如下训练伪代码:
image-1653298448150
具体实现如下:
image-1653298472118
image-1653298481031
最终可以得到每个词项的条件概率
condprob[term][c]代表term在类别c中的条件概率
image-1653298497186

朴素贝叶斯算法应用:

计算公式如下所示:可以加上log函数解决小数丢失问题
image-1653298521712
具体为如下训练伪代码:
image-1653298533918
applyMultinomialNB会返回概率最大的文档类别。
image-1653298548817
image-1653298558435

使用特征选择时的分类效果:

整体正确率94%
image-1653298586744

不使用特征选择时的分类效果:

整体正确率86%
image-1653298603123

使用特征选择和不使用特征选择的分类效果进行对比和分析:

可以看到,在使用了特征选择后的分类效果更佳。这是因为使用了特征选择后,可以更准确的对类别进行关键词区分,而未使用的过程中,则会有更多冗余词项进行干扰。

另外两种方法下,对于教务部的分类准确率都不太理想。结合具体文章来看,我觉得可能原因是整理的文章类型太多,数据量太少没有很好的符合规律。因此会导致分类准确度的下降。我猜测的一个可行的方法是增加样本容量,丰富相应的词项。
image-1653298622745

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
"得分 " " "教师签名" " 《计算机应用基础》 网上作业(3) 说明:本课程内容的实践性很强,为保证学习效果,强调教学的实践性环节是十分必 要的。要求各教学单位根据课程内容,必须按省电大要求完成上机实验作业,作业文档 名为分校专业及汉字姓名(分校专业在前,姓名在后),作业中图片为学生自己在青海 电大在线平台本学期学习过程统计的截图。,邮件主题与该文档名一致以附件的形式发 送。 "学号 "姓名 "性别 "电子信箱 " "52302 "张金兰 "女 " " 1. 上机实验作业(40分) 作业要求: 将自己在青海电大在线平台本学期学习过程统计(见样图课程根据自己专业选5门以 上),粘贴到新建一个Excel 2003工作簿,在课程名称下插入省校规定上网时间、在线时间(分钟) 下插入1080分钟,其按图2样例建立、编缉Excel表,并进行上网学习时间统计分析,完 成后将Excel文件取名为"自己姓名作业务"保存起来。 附:图片样例 图1 图2 二、Excel2003练习题(每小题1分,共60分) (一)、填空题 1、启动Excel后,系统自动创建一个新电子表格文件,其文件名为book1,扩展名为xls 。 2、在Excel的新电子表格文件中,系统默认有3个工作表,当新建一个工作表后,系统默 认工作表名称为sheetl。 3、在编辑工作表时,如果选择第4行第5列,在编辑栏的名称框中显示的单元格名称为 E1。 4、利用公式输入数据时,第一个字符必须是=。 5、清除操作与删除操作不同,删除操作需要移动填充单元格,清除操作不进行移动填充 ,采用默认格式设置。 6、对不连续区域进行选择使用Ctrl键与鼠标同时操作。 7、在序列填充时,填充结果为递减值,则说明步长值必定为负数。 8、如果在当前工作簿的"Sheet1"工作表的D13单元格中,对"Sheet2"工作表的D3:D12区 域求和,使用的公式为=SUM(Sheet2!D3:D12)。 9、在公式操作时,最多可以包含7级嵌套函数。 10、在默认状态下,Excel工作表中所有单元格或单元格区域都是锁定状态。对工作表进 行保护时,只有锁定的单元格或单元格区才受到保护。 11、一旦更新了工作表数据,图表也会发生相应更新。 12、在Excel中进行图表打印预览操作,需要选中图表,再进行打印预览操作。 13、排序方法分为升序和降序。 14、在进行复杂条件排序时,只有在主要关键字对应数据内容相同时,才按照要关键 字对相同部分的数据进行排序。 15、利用表格数据字段名设置筛选条件进行记录显示的操作,称为自动筛选。 16、分类汇总的原则是必须先按照分类字段进行排序。 17. 文本连接运算符使用和号"&"可以将一个或多个文本连接为一个组合文本。 18、比较运算的结果为。 19、在Excel中,若只需打印工作表的一部分数据时,应先____选择打印区域。 20、在Excel中,假定存在一个数据库工作表,内含:姓名、专业、奖学金、成绩等项目, 现要求对相同专业的学生按奖学金从高到低进行排序,则要进行多个关键字段的排序, 并且主关键字段是__专业___。 (二)、选择题 1、Excel 2003是( A )公司推出的最新的电子表格制作软件。 A.Microsoft B.Autodesk C.Macromedia D.Corel 2、关闭Excel应用程序有多种方法,下面那种操作不能关闭Excel( C )。 A.单击Excel 2003右上角的关闭按钮 B.选择"文件"""退出"命令 C.选择"文件"""关闭"命令 D.同时按下Alt+F4组合键 3、在首创建一个新工作薄时,默认情况下,该工作薄包括了( C )个工作表。 A.1 B.2 C.3 D.4 4、Excel工作表中,最多有( B )列。 A.65536 B.256 C.254 D.128 5一个Excel工作薄文件,在第一存盘时,不必键入扩展名,Excel自动以( B )作为其扩展名。 A..WK1 B..XLS C..XCL D..DOC 6、工作表标签是用来标识工作薄中工作表的( D )。 A.当前状态 B.位置 C.标题 D.名称 7、选定多个不相邻的单元格区域时,单击并拖动鼠标选定第一个单元格区域,接着按住 ( C )键,然后使用鼠标选定其它单元格区域。 A.Alt B.Shif C.Ctrl D.Tab 8、默认情况下,单元格中的文本( B )对齐。 A.靠右 B.靠左 C.居中 D.两端 9、在Excel中保存文件时,下列那种方法不可以进行保存操作( D )。 A.选择"文件"""保存"命令 B.直接单击"常用"工具栏上的"保存"按钮 C.按下Ctrl +S组合键 D.选择"编辑"""保存"命令 10、选择"插入"""单元格"命令,打
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex_SCY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值