APP下载

基于机器学习的高校毕业论文课题信息分析方法

2021-04-27李路军赵云崔荣一赵亚慧

关键词:专业术语邻域特征选择

李路军, 赵云, 崔荣一, 赵亚慧

( 延边大学 工学院,吉林 延吉 133002 )

0 引言

撰写毕业论文是检验本科生综合运用所学专业知识分析和解决实际问题能力的一个重要环节,也是高校实现人才培养目标的综合性实践教学的一个重要环节[1].为了更好地设计毕业论文课题,提高毕业论文水平,每个专业都需要详细了解毕业论文的课题分布情况;但目前为止,国内对于毕业论文的相关研究大多仅限于论文内容本身.例如:李杰等[2]为了解我国安全科学与工程硕博士学位论文的研究主题分布、主题演化和研究方法,基于CNKI中国硕博论文数据库的相关论文,采用关键词词频分析和共词分析的方法对上述内容进行了研究;付立宏等[3]通过对2008—2013年《图书馆学情报学》收录论文的关键词进行词频统计,分析了所收录论文的研究重点、存在问题以及未来发展趋势;曹树金等[4]基于1958—2019年武汉大学信息管理学院不同历史时期学术论文的研究内容,采用LDA主题模型和共词分析法构建了一个主题抽取与演化的分析框架,并分析了该学院学术研究主题的演变.上述研究虽然有助于分析学科的发展趋势,但难以提供各专业毕业论文课题的分布情况.因此,本文基于延边大学计算机系2001—2019年的本科毕业论文课题信息文本,提出了一种基于机器学习的高校毕业论文课题信息分析方法,并通过实验验证了本文方法的有效性.

1 DBSCAN聚类算法

目前,机器学习中主要的聚类算法可分为划分法[5]、层次法[6]、概率模型法[7]和密度法[8].其中,密度聚类算法是将各目标类簇看作是由一群被低密度区域分隔的稠密样本点组成的,该算法的目的是过滤低密度区域,发现稠密样本点.DBSCAN算法是一种典型的密度聚类算法,具有不受异常点的干扰和聚类效果稳定的优点,可以处理非凸数据集[9].因此,本文采用DBSCAN算法对论文课题的信息文本进行聚类分析,算法的实现过程为:

Step 1 扫描整个数据集,找到任意一个核心对象;对找到的核心对象进行扩充,寻找从该核心对象出发的所有与其密度相连的样本点.

Step 2 遍历上述核心对象的ε邻域内的所有核心对象,并寻找与这些样本点密度相连的点,直到没有可以扩充的样本点为止.

Step 3 重新扫描数据集(不包括之前寻找到的簇中的任何样本点),寻找没有被聚合的核心对象;重复Step 1—Step 2,对上述核心对象进行扩充,直到数据集中没有新的核心对象为止.在数据集中,未包含在任何簇中的样本点为噪声点.

在DBSCAN算法中,给定对象半径ε内的区域称为该对象的ε邻域,Minpts表示对象半径ε内的区域包含的样本点数目.若给定对象ε邻域内的样本点数目不小于Minpts,则称该对象为核心对象.DBSCAN算法虽然具有无需预先指定簇数目的优点,但是算法对所设置的ε邻域和Minpts参数非常敏感,因此常常会导致聚类效果不理想.因此,为了提升聚类效果,需要引入合适的评价指标来确定超参数.

2 毕业论文课题信息文本的表示与聚类

2.1 聚类分析流程

图1 聚类分析流程图

聚类分析流程如图1所示,各环节的具体操作如下:

Step 1 预处理.收集、整理毕业论文课题信息文本数据集;对数据进行规范化、去重、删除无关数据、分词等预处理,以此获得文档集词汇表V;最后从V中筛选出专业术语表T.

Step 2 特征选择.统计V中的文档频率,以此获得词项的逆文档频率权值idf;利用idf值去除高覆盖度和低覆盖度词汇,以保留专业术语词,并确定特征词集合:F={t1,t2,…,tM}.

Step 3 文本表示.统计F中的词频,以此获得特征词的tf值;利用词项的idf值和专业术语因子确定特征词的权值,并构造归一化文档向量.

Step 4 文本聚类.采用DBSCAN算法对文档向量进行聚类;利用Rand指数评价聚类结果,并以此为依据确定超参数.

Step 5 类簇描述.根据特征词词频排位确定Top-K关键词,并将其用作簇描述.

2.2 基于专业术语的特征选择

向量空间模型(VSM)是文本挖掘领域中常用的一种模型,其功能是将文档表示为术语向量.但由于向量空间维度过大会影响VSM模型的聚类性能,因此需要删除非信息特征来进行空间降维.特征选择是从原始特征中选择出一些最有效的特征,其目的是最小化非信息特征的数量和最大化文本聚类算法的性能[10].目前,特征选择常用的筛选规则有文档频率(DF)、互信息(MI)、信息增益(IG)和卡方检验(CHI)等[11].由于传统的文档频率方法在进行特征选择时仅考虑特征词在类别中出现的频率,并未考虑到特征词在每篇文档中出现的频率以及专业术语的强代表性[12],因此本文提出一种基于逆文档频率和专业术语进行特征选择的方法.该方法相对于传统方法的具体改进内容如下:

1)适量删除高覆盖率的词.能覆盖大部分文档的词项(元语言词项)通常不具备特征性,如“知识”、“领域”、“通过”、“熟练”等词项.由于元语言词项通常仅用于描述课题,不带有课题的特征信息,因此删除这些词有助于降低特征维数.去除高覆盖率词项thigh的判定条件为:

idf(thigh)

(1)

在式(1)中,当THidf_min= lg 10=1.0时,保留的特征词至多能够覆盖文档的10%.

2)适量删除低覆盖率的词.仅能覆盖极少数文档的词项通常不具备代表性,如“报文”一词虽然在本文统计的论文课题信息文本中出现了8次,但都出现在同一篇文档中.该词项的idf值虽然很大,但由于该词项仅出现在一篇文档中;因此,删除这些词也有助于降低特征维数.去除低覆盖率词项tlow的判定条件为:

idf(tlow)>THidf_max.

(2)

在式(2)中,当THidf_max= lgN,N为文档总数时,可去除仅在一篇文档中出现的词项.

3)无条件保留专业术语词.专业术语是课题信息文档的价值体现之一,无论是高覆盖率还是低覆盖率的专业术语词都必须保留,否则很可能会导致某些文档的特征词的个数为0.如果在保留专业术语词的前提下,文档的特征词个数依然是0,则表明该文档没有专业性,应该从文档集中删除.

综合上述条件可知,文档中词项t是特征词的判定条件,可表示为:

term(t)&&(THidf_min≤idf(t)≤THidf_max),

(3)

(4)

2.3 特征权重的计算方法

基于词频-逆文档频率(TF-IDF)的计算方法是文本挖掘中计算权重的一种常用方法.该方法根据特征词的频率和逆文档频率来计算权重,若某特征词的频率很高,且仅出现在少量文档中,则该特征词对区分文档具有重要作用,其表达式为:

ωi,j=tf(i,j)×idf(i,j)=tf(i,j)×lg(n/df(j)).

(5)

其中:ωi,j表示术语j在文档i中的权重,f(i,j)表示术语j在文档i中的词频,idf(i,j)是仅出现在少数文献中的低频率术语的增益因子,n是数据集的文档数目,df(j)是包含术语j的文档数目.

论文课题信息文本属于短文本,其除了具有专业性强的特点,还具有特征分布稀疏的特点,因此传统的权重计算方法不适用于论文课题信息文本.为此,本文引入专业术语因子来改进TF-IDF算法,以提高论文课题信息文本的聚类效果.改进的方式是通过赋予专业术语一个增益因子来突出其语义在文本中的重要性.本文对式(3)和式(4)进行改进得到如下的特征权重表达式:

tf_idf′(ti,dj)=(spec(ti)+1)×tf(ti,dj)×idf(ti),

(6)

其中spec(t)是增益因子,其表达式为:

(7)

非显著特征分布是一个一维概率密度函数,其所有特征的显著性在初始化时通常被设置为0.5[13].本文为了突出专业术语词的显著性,为专业术语词额外增加了0.5的一般显著性增益.

2.4 算法的实现

首先对毕业论文课题信息文本进行聚类,得到不同的类簇;然后聚合每个类簇的所有关键词,并提取每个类簇排名前5的频繁关键词.所提取的每个类簇排名前5的频繁关键词即为类簇描述词.利用聚类获得类簇描述词的算法步骤如下:

Initialization(): /*初始化*/

for p=0,1,…,N-1 /*对所有文档进行以下处理*/

doc_table[p].docID=p /*文档进行编号*/

if |NearDoc(p)|≥MinPts /*文档p的邻域文档数超过阈值*/

doc_table[p].doctype=1 /*文档p为核心文档*/

else

doc_table[p].doctype=0 /*文档p为非核心文档*/

endif

doc_table[p].visited=0 /*所有文档尚未访问处理*/

doc_table[p].labels=-1 /*所有文档尚未归类*/

endfor

for all doc_table[p].visited=0 /*对未访问过的所有文档做以下处理*/

if doc_table[p].doctype==1 /*如果当前文档p是核心文档*/

labels++ /*产生新簇*/

doc_table[p].labels=labels /*将文档p划入新的簇*/

ExpandCluster(p,labels) /*文档p邻域内的文档并入本簇*/

doc_table[p].visited=1 /*标记文档p已访问*/

elseif q∈NearDoc(p)&&doc_table[q].doctype==0 /*文档p邻域中无核心文档*/

doc_table[p].visited=1 /*文档p为噪音文档,不需再处理*/

endif /*循环结束时doc_table中标记了每个文档所属的簇号,负值为噪音文档*/

endfor

ExpendCluster(p,labels): /*本函数把DBSCAN与核心文档p密度相连的所有文档划入簇号为labels的簇*/

D=NearDoc(p) /*文档p的邻域文档编号集*/

for all q in D /*集合D不空时取任意文档q进行以下处理*/

if doc_table[q].visited=0 /*文档q未处理*/

if doc_table[q].doctype=1 /*文档q为核心文档*/

D=D∪NearDoc(q) /*文档q邻域内所有文档并入D中*/

endif

if doc_table[q].labels<0 /*文档q尚未归类*/

doc_table[q].labels=labels /*文档q与p属于同一簇*/

endif

doc_table[q].visited=1 /*文档q已处理*/

endif

if doc_table[q].visited=1 /*若文档q已处理*/

D=D-{q} /*从文档集合D中删除文档q*/

endif

endfor /*本循环一直进行到集合D空为止,簇号为labels的簇产生完毕*/

NearDoc(p): /*本函数求文档p的邻域文档编号集合*/

D={} /*文档p的邻域文档集从空集开始*/

for q=0,1,…,N-1 /*扫描所有文档进行以下处理*/

if dist[p][q]≤Eps /*发现p的邻域文档q*/

D=D∪{p} /*文档q并入D*/

endif

endfor

return D

2.5 聚类评价指标

由于Rand指数可以度量两个数据集之间的相似性,因此本文选择Rand指数(RI)作为外部聚类评价指标,其表达式为:

RI=(a+d)/(a+b+c+d).

(8)

其中:a表示在Result(人工划分的结果)和Predictor(聚类算法划分的结果)中都为同一类的样本对数目;b表示在Result中为同一类,但在Predictor中不是同一类的样本对数目;c表示在Predictor中为同一类,但在Result中不是同一类的样本对数目;d表示在Result和Predictor中都不为同一类的样本对数目.Rand指数的上界为1,表示聚类结果与原始数据集的样本分布完全一致;Rand指数的下界为0,表示聚类结果与原始数据集的样本分布完全不一致:因此,可以根据RI值的最大原则来确定超参数的值.

3 实验与分析

3.1 数据预处理

首先,对收集的课题信息文本(延边大学计算机系2001—2019年的本科毕业论文和毕业设计,内容包括题目、设计目标、基本要求等)进行整理,得到896篇文档;然后,将这些文档构成聚类分析文档集,并对聚类分析文档集进行规范化、去重、删除无关数据、分词等预处理,以此获得文档集词汇表并在其中筛选出专业术语表.部分原始数据集如表1所示.

表1 部分原始数据集

3.2 特征选择

特征选择时,首先使用传统特征选择方法在896篇论文课题信息文本中选取特征词(共获得了443个特征词,其中包含专业术语词244个,非专业词199个);然后按本文提出的特征选择改进方法将专业术语词全部保留,并从非专业词中挑选出52个高覆盖率词和27个低覆盖率词;最后删除这些高覆盖率词和低覆盖率词,由此共得到364个特征词.按上述方法选取特征词后,特征词汇表中的专业术语词的占比由原来的50.56%提高到了61.54%,由此表明本文提出的特征选择改进方法可有效提高特征词汇表的专业性.

3.3 聚类分析

首先定义超参数ε=0.98,Minpts=3;然后根据所定义的参数对896篇论文课题信息文本进行聚类分析,由此得到类簇(56个);最后对所得的每个类簇的文档数目进行统计,并提取每个类簇中频次排名前5的关键词,由此构成簇-关键词表.所得的部分簇-关键词见表2.由表2可以看出,不同的类簇也会出现相同的特征词,如“C++”“面向对象”等.虽然很多专业领域所使用的基础技术是相同的,但基础技术相同并不代表专业领域相同,因此上述结果并不妨碍两个类簇之间的相对独立性.

表2 聚类分析得到的部分簇关键词表

为了评估聚类效果,本文对896篇论文课题信息文本进行人工分类标注,并依据课题信息中所涉及到的理论、方法和技术等内容,构建22个不同的主题类,其分类统计结果和主题分布分别如表3和图2所示.

表3 毕业论文课题的分类统计结果

图2 毕业论文课题的分布图

由表3可以看出,获得的56个类簇分别代表56个主题,且同一主题内的文档相似,同时提取出的关键词与部分人工分类主题完全相对应,如“机器人”“数字信号处理类”等.由此表明,本文方法不仅可以为论文课题信息文本主题的划分提供依据,还可以直观地展示每个类簇所包含的技术及专业知识.

3.4 超参数的确定

图3为RI指数、簇数和噪声数随ε变化的曲线图,图4为RI指数、簇数和噪声数随Minpts变化的曲线图.由图3可知,ε对RI值的影响大于Minpts对RI值的影响,且当ε=0.98时RI值最大.由图4可知,Minpts=3是类簇数目下降速度变缓的拐点,且此时RI值也较高.因此,本文将超参数确定为ε=0.98,Minpts=3.根据该参数计算得到的RI值为0.824,该结果表明本文的聚类效果与人工分类结果大体吻合[14].

图3 RI指数、簇数和噪声数随ε变化的曲线

图4 RI指数、簇数和噪声数随M inp ts 变化的曲线

4 结论

利用本文提出的基于逆文档频率和专业术语的特征选择方法,对延边大学计算机系2001—2019年的本科毕业论文课题信息文本进行了聚类分析.实验结果表明,相比于传统数据分析方法,本文方法不仅可以有效降低高覆盖率和低覆盖率词的特征权重和有效提升专业术语的特征权重,还可以根据聚类评价指标来选取超参数,其聚类效果与人工分类效果基本吻合.因此,本文研究方法可为评价和设计毕业论文课题提供有效的依据.在今后的研究中,我们将考虑使用多种指标来确定超参数和采用多元因素的方法来提高特征选择的准确性,以此进一步提高本文方法的有效性.

猜你喜欢

专业术语邻域特征选择
混合型数据的邻域条件互信息熵属性约简算法
基于混合变邻域的自动化滴灌轮灌分组算法
含例邻域逻辑的萨奎斯特对应理论
基于数据库的专业术语知识图谱自动识别设计
看懂体检报告,提前发现疾病
基于智能优化算法选择特征的网络入侵检测
美国航空中英文官网隐私政策翻译对比分析
故障诊断中的数据建模与特征选择
reliefF算法在数据发布隐私保护中的应用研究
一种多特征融合的中文微博评价对象提取方法