APP下载

基于加权词向量的毕业设计选题查重方法研究

2021-10-18范庆春,王欣莲

电脑知识与技术 2021年26期

范庆春, 王欣莲

摘要:目前,人工筛选查重是高校筛选学生毕业论文选题是否重题的常用方法。但是面对大量的毕业设计选题,该方法容易出现遗漏遗忘、工作效率低下的问题。为了克服人工筛选的缺点,该研究分别使用了余弦相似度、逆文本频率、BM25和Jaccard等四种计算文本相似度的算法计算句子之间的相似度。对各种算法的实验结果进行了分析后,本文提出了逆文本频率与余弦相似度相结合的算法,该算法在蚂蚁金融自然语言处理竞赛数据集和LCQMC数据集下F1最高可以达到0.79。实验表明,数据集越大,精确度越高。最后,将本文的算法用于毕业设计选题的查重。该算法可以有效弥补人工筛选的缺陷,提高了选题查重的工作效率。

关键词: 文本相似度;wod2vec;jieba分词;选题查重

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2021)26-0179-04

开放科学(资源服务)标识码(OSID):

1引言

本科生在大四的时候都要选定自己的毕业论文题目,人工筛选是筛选学生论文题目是否重题最常用的方法。人工处理的方式主要是凭借着对题目的记忆和反复查找来确认该选题是否重题。该方式当毕业论文题目数量较多时,其工作效率比较低,并且容易出现遗漏。随着软件技术的发展,计算文本相似度的方法越来越多,从刚开始的关键词匹配这种较为传统的方法,到现在最火热的机器学习方法是将文本映射到向量空间,使其数字化,变成向量。我们切身体会到自然语言处理技术已经广泛应用于我们的生活之中,给生活带来了很大的便利,如谷歌等搜索自动更正和自动完成,有道词典等语言翻译软件,小度等聊天机器人,Siri等语音助手[1]。若将文本相似度技术应用到毕业设计选题查重中,可以解决对毕业生选题筛选的困难和因题目数量过多遗漏问题,克服人工筛选的缺点,提高工作效率。

2 文本相似度计算的介绍

在自然语言技术处理领域中,计算文本相似度广泛应用于文本处理的各个领域,涉及的范围较广。本章对相关技术进行介绍,因为应用场景不同,其评价标准也略有差异。下面主要介绍实现过程中所涉及的关键技术及方法。

2.1 jieba分词

在做文本相似度分析的时候,第一步就是对文本信息进行预处理即分词,本文使用的是jieba分词工具。首先是基于正则表达式对是否为汉字进行判断,在使用jieba分词处理句子之前,用jieba.load_userdict()方法自定义用户词典,有助于更新jieba词库里面没有的词语,即使jieba有识别第一次出现词语的能力,但是自己自定义词典自行添加新的词语可以保证准确率更高。

2.2 词语向量化

将文本交给机器处理,首先要将词语转换为机器语言,即将文字数字化[2]。常用的词向量的表示方式有两种,一种是one-hot representation,另一种是Distributed Representation。one-hot representation方式是最简单的词向量方式,用一个长向量表示一个词,向量的分量用1表示,其他用0表示,此方法虽然简单但是它没有考虑到词语所在句子的语义问题,将词语看成了一个独立的个体,忽略了上下文。早在20世纪80年代国外学者Hinton提出了另外一种表示词向量的方式,即Distributed Representation,用较短的向量即降维去表示词语,除此之外它考虑到了上下文的语义。Mikolov等人在2013年开发word2vec模型去训练词向量,主要包括两种语言模型:一是CBOW模型,如图1所示,二是Skip-gram模型[3],如图2所示:

CBOW模型的思路是:将特征词W(t)的上下文相关词的词向量输入,经过映射,输出的结果就是这个特定词W(t)的词向量。

Skip-gram模型的思路是:将一个特定词W(t)的词向量输入,输出的则是这个特定词上下文的词向量。

2.3 加权技术

詞语在计算机中是不能被计算的,需要把词语数字化即将词语转化为数字,而这个数字在文档中的重要程度等价于这个词语在文档中的重要程度,通过逆文档频率计算公式计算出这个词的IDF,我们则称这个数值就是这个词语的权重。一个词能代表文档特征的能力越强,这个词的权重就越大;反之,这个词的权重越小。逆文档频率技术是判定一个词与一个文档的相关性权重较常用的方法[4]。

3  文本相似度计算

为了介绍计算文本相似度,其工作流程主要分为以下几个步骤:1.进行材料的收集,整理语料库;2.对整理好的语料库进行预处理;3.训练处理好的词向量,生成词向量文件;4.计算词向量在所用语料库中的IDF,生成IDF文件;5.分别利用四种方法在不同的数据集上计算语句对的相似度,并设置合适的阈值,得出F1、Accuracy等值。

3.1 余弦相似度算法

利用余弦相似度[5]计算文本相似度,是根据两个词向量的夹角的余弦值衡量的,当两个词向量夹角越趋于0,其余弦值越接近1,说明两个词相似度越高;反之,当两个词向量夹角的越接近90度,其余弦值越接近0,说明两个相似度越低。

若存在向量a(x1,y1),向量b(x2,y2),如下图3所示:

向量a ,b的夹角余弦计算如下:

若向量a ,b是n维向量,同理可得:

3.2 Jaccard系数

Jaccard系数是计算两个集合重合度的常用方法之一:集合A和集合B的交集元素个数与集合A和集合B并集元素个数的比成为Jaccard系数[6]。计算公式如下:

A、B集合为文本中的全部词项,并且集合中的元素不重复。

3.3 基于BM25相似度算法