基于向量空间模型的中文文档查重系统研究与设计

来源 :科技信息·上旬刊 | 被引量 : 0次 | 上传用户:sunbody
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着信息技术的飞速发展,人们在互联网上越来越容易获取到某个主题的相关信息,并把相关信息稍加修改地放入自己的文档中。本文提出了一种基于向量空间模型的中文文本相似度的检测算法,并给出了系统设计与实现的思路。算法包括预处理、中文分词、生成文本向量模型、文档相似度计算。系统通过spring框架搭建,采用多线程并行运算的方式,充分利用现代多核处理器的性能,提高了计算速率。通过在实际场景中的测试和使用,较好的验证了该算法的准确性和该系统的可行性,对文档内容抄袭行为的发现提供了很大的帮助。
  关键词:中文查重;向量空间模型相似度;相似度;中文分词
  1 引言
  文本相似度算法有很多种,譬如简单共有词、余弦相似度、欧氏距离、Jaccard相似性等等。本文主要研究和应用了基于向量空间的TF-IDF余弦相似度算法,并且对输入的词频向量进行了一定有优化,如去停用词等。在实现该算法的过程中,充分考虑到了多核cpu的优势,采用并行运算的方式提升计算速率。在系统设计方面,本系统采用的是较新的设计理念——微服务架构,使用springboot框架将其分成多个微服务,各个微服务之间通过restful接口调用。实验表明该算法和系统具有较好的可用性。
  本文首先介绍中文分词原理与实现,接下来详细介绍余弦相似度算法的原理和实现,然后是查重系统的设计和实现。
  2 系统设计与实现
  文档查重算法的实现需要经过文档预处理、中文分词、文档向量模型生成、文档相似度计算这几个步骤。以下图1显示了该算法的大致流程。
  系统设计方面,我们将整个系统划分成三个微服务,各个微服务之间通过rest方式进行调用。以下图2是该系统的大致微服务模块图。
  2.1文档预处理
  在进行中文分词之前,我们需要对文档进行预处理。预处理的步骤大致如下:
  1、判断文件格式是否正确,以防出现格式伪造的文档导致读取异常;
  2、读取文档的文字,跳过标点符号、附件、图片、复杂的公式等内容;
  3、将文本内容保存在String数据结构中。
  提取文档内容用到的工具是POI。POI是Apache软件基金会赞助的一个开源项目[1],该项目提供了多个Java API用于对Microsoft Office格式档案的读写功能,包括doc、docx、xls文档格式等。解析文档获得文本之后,进入中文分词阶段。
  2.2 中文分词
  中文分词主要有以下几类方法:基于词典的方法、基于统计的方法、混合方法[2]。
  基于词典的方法的基本思想在于:按照一定的规则对待分词的中文与一个“大词典”中的词汇进行比较,如果相同则获取到一个分词。基于词典的方法可以按两个指标进行划分:扫描方向和匹配长度。扫描方向包括正向扫描、反向扫描和双向扫描,匹配长度包括最大匹配和最小匹配。
  基于统计的方法的基本思想在于:词由字组成,统计相连的字在不同的文本中出现的频率,频率越高则说明该相连的字是词的可能性越大。利用相连的字在不同文本中出现的频率来反应其成词的准确度,当这些相连的字频度高于某一个阈值时,可认为这些相连的字构成一个中文词语。常用的统计模型有N-gram模型、隐马尔可夫模型(HMM)[3]。
  混合方法即把基于词典的方法和基于统计的方法结合起来。这种方法是的以上两种分词方法优势互补,但由于考虑的因素多,实现比较复杂。
  本查重系统中使用了开源库ansj分词器,它采用了Bigram+HMM分词模型。所谓的Bigram即为N-gram模型的一种,它表示一个词的出现仅仅依赖于出现在它前面的一个词。ansj的分词流程大致如下:
  1、使用Double-array Trie高效索引词典,按照核心词典第一次分词;
  2、根据上面的分词结果,求解最大联合概率;
  3、利用隱马尔可夫模型识别未登录词典的词汇,譬如姓名;
  2.3 文档向量模型生成
  在经过上述的中文分词、去停用词之后,文档内容就可以用一个向量表示:
  W(w1,w2,w3,...,wn)。
  W表示一个文档,w表示文本中的词汇。
  在进行文档相似度进行之前,我们首先要生成一个文档向量模型。文档向量模型就根据TF-IDF词频权重的方法生成的。TF-IDF是一种常用的加权技术,主要用于评估一个字词在文本当中的重要程度[4]。该方法有两部分组成,其一是TF(Term Frequency),即词频,表示一个词汇在文本当中出现的次数。用公式表示为:
  TF =
  其二是IDF(Inverse Document Frequency),即逆向文本频率,表示一个词对整篇文本的权重大小。一般情况下,IDF的大小可以用如下公式表示:
  IDF =
  当某个词汇出现在多篇文本当中时,表示该词汇所占的权重较小;当某个词汇仅出现在少数几篇文本当中时,表示该词汇占的权重大。通过TF和IDF结合使用,便过滤掉常见的词语,而保留重要的词。
  通过TF-IDF方法,就可以生成文本的向量模型。
  2.4 文档相似度计算
  余弦相似度是测量两个n维向量之间相似度的一种常见方法。余弦相似度在文本挖掘、信息检索、相似对比等诸多领域都有所涉及。余弦相似度用余弦值来衡量两个向量之间的夹角大小,向量之间的夹角越小,表明两个向量越相似,反之越不相似。
  回顾一下高中的余弦定理,我们知道在二维空间中,有如下的公式:
  当把二维推广到n维向量的时候,上述公式变为:
  此时,只需要把分词获得的数组和另一个文本分词获得的数组合在一起,统计词频,再结合逆向文本频率,便可获得文档向量,用来计算相似度。   2.5 系统设计与实现
  由图2可知,整个系统由三个微服务组成:web接口服务、分词服务、查重服务。微所谓的服务架构,其实是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言实现,也可以使用不同数据存储技术,并保持最低限度的集中式管理。
  web接口服务,主要的功能是提供用户操作的web接口,譬如上传文件、查看相似度等。分词服务,主要的功能是接收web接口的文件上传请求,并完成后续的预处理、去停用词、分词等功能。它们之间的关系如图3所示。
  web接口服务上传文档之后,立即返回,无需等待后续步骤,即web接口服务和分词服务之间的交互是异步进行的。待分词成功或确认失败之后,分词服务会主动通知结果。分词完成的结果存放到Redis中。Redis是一个开源的非关系型内存数据库,它支持多种数据结构,譬如string、hash、list、set、map等,本系统主要使用其中的map和list。
  1、提供web接口给用户操作;
  2、学生上传电子版作业完成后,无需等待后续步骤,便立即返回。
  3、文本解析器将word文档中的文字提取出来,输入到Ansj分词器;
  4、Ansj分词器进行分词、去停用词,得到分词数组,把数组保存到Redis数据库,并记录该学生的相关信息;
  5、教师想看作业的查重结果,便通过web接口发起一次请求;
  6、相似度模块根据作业的标识符,请求redis中的相关数据,获得所有已经提交的作业的分词数组;
  7、开启多个线程,计算当前学生和其他所有学生提交作业的相似度,得出结果。
  3. 實验
  取十个学生的提交的电子版作业文档,将这些文档通过web接口服务提交到服务器,然后查看文档相似度。在检测多个文档的相似度的时候,只有最高相似度才有比较的意义,因此我们默认只在页面中展示最高相似度。相似度结果如下表所示。
  通过观察上表我们发现,F和H的相似度非常高,超过了0.9,这时候人工抽查,发现其文档的结构、措辞都非常相近,很多句子只是颠倒顺序或者增加一些无意义的、已经被加入到停用词表的词汇,比如“的”、“了”之类的。实验证明该系统具有可行性,该算法具有参考性。
  4 结语
  本系统应用Bigram+HMM分词模型的Ansj分词器将文本分词、去停用词,应用余弦相似度算法检测文档向量的相似性,采用springboot框架构造微服务架构,并结合多线程并行运算提供查重服务。该系统所检测文本的范围是某个主题,系统将从Redis中取出属于该主题的、已经分词了的文档向量进行余弦相似度计算。从实际环境中来看,对于相似度较高或较低的两个文本,检测的准确度较高。故而,经过系统查重之后,对于那些有过高相似度的文本,最好经过人工检查是否构成抄袭。
  参考文献:
  [1]黄青云,裴冬菊. POI在Word文档不同颜色文本分离中的应用[J].南昌工程学院学报. 2014年6月 第33卷第3期
  [2]周宏宇,张政.中文分词综述.安阳师范学院学报[J],2010,1671-5330(2010)02-0054-03.
  [3]魏晓宁.基于隐马尔可夫模型放到中文分词研究.计算机教育[J],2007,1009-3044(2007)21-40885-02
  [4]殷耀明,张东站. 基于关系向量模型的句子相似度计算[J]. 计算机工程与应用,2014,50(2):198-203.
其他文献
摘要:在目前高能流体机械设备要求不断提高的形势下,文章对流体机械设计中比较广泛应用的CFD方法的原理和特点进行介绍,分析此种方法在流体机械设计中的具体应用过程和注意事项,并对此方法在未来流体机械设计中的应用和发展进行了展望。  关键词:CFD方法;流体机械设计;运用  1引言  随着科技的进步和经济的发展,许多地区的高能流体机械设计要求越来越高,为了满足当前社会的需求,我们还必须准备流体机械设计和
期刊
摘要:混凝土是一种常见的建筑材料,其质量的好坏对整个建筑工程质量的起到了重要的影响。要想生产出混凝土,首先要保证混凝土搅拌站的顺利运行。电气系统是混凝土搅拌站的核心,能够根据混凝土所需的材料完成配置,并控制混凝土的搅拌。加强混凝土搅拌站电力系统的建设有助于提高混凝土的质量和生产速度。本文对混凝土搅拌站的电气控制系统故障展开了初步的分析,同时针对这些问题提出了相应的解决策略,希望以此来对混凝土搅拌站
期刊
摘要:本文通过对重力式挡土墙的施工经验分析,提出挡土墙设计中的重点问题,并提供较为合理的构筑建议与措施。在土建工程中,经常用挡土墙来支挡上下高差的土体,而重力式挡土墙是用得较多的一种形式。  关键词:挡土墙;设计要点  挡土墙的形式多种多样,按其结构特点,可分为重力式挡土墙,悬臂式挡土墙,衡重式挡土墙等类型。重力式挡土墙是依靠墙体自重抵抗土压力作用的一种墙体,所需要的墙身截面较大,一般由砖、石材料
期刊
摘要:近年来,随着我国经济的不断发展,人们的生活水平也得到了显著的提升,他们开始关注自身的生活品质。绿色建筑理念迎合了人们的这种需求,能够达到生态与经济的平衡,给人们带来一种健康和舒适的生活环境,具有非常强的应用意义。本文先分析了绿色建筑理念的相关内涵,并从尽量选择绿色环保材料、绿色建筑设计应该保证合理性、拓展建筑节能设计、贯穿在整个建筑设计中四個方面,全面探讨了其在建筑设计中的应用策略。  关键
期刊
摘要: 学校建筑的良好规划设计很大程度上能够为学生提供环境舒适且风景优美的校园,一方面全面体现出了学校的历史特征,另一方面还凸显了当地的人文地域特征,在现代化的基础上实现了学校学术及文化氛围的全面展示。随着时代发展要求及绿色发展理念的提出,学校建筑设计对绿色建筑设计给予了高度重视与应用。文章主要围绕着绿色建筑设计的基本概念及学校绿色建筑设计的基本原则、学校建筑设計中绿色建筑的具体应用两个方面展开了
期刊
摘要:改革开放以来,人们生活水平提高,建筑行业越来越受重视。随着社会经济的快速发展,我国城镇化建设和工业化建设进程不断加强,这极大地促进了我国建筑行业的发展。在近几年,人们逐渐开始关注建筑行业当中的工程造价预结算审核工作,这也是相关人员明确工程造价的主要依据。本文主要是对建筑工程造价预结算审核工作要点、加强建筑工程造价预结算审核工作管理的有效对策两个方面做出了详细的分析和研究。  关键词:建筑工程
期刊
摘要:随着国家的发展,城市规模不断扩大,对照明建设的要求越来越高,照明系统的建设也在提升整个城市的形象,照明设施数量增加,照明管理部门担当着更大的责任。城市照明系统中的漏电故障的出现,轻则照明系统破坏,重则危及到附近行人的安全。因此无论是政府还是市民,都对城市照明提出了更高的安全要求。这也成为困扰所有管理人员的一个难题,因而及时的有效的解决漏电问题迫在眉睫。本文就基于GPRS的城市照明电缆漏电监测
期刊
摘要:汽车后扰流板,也称尾翼,其作用除了作为一种汽车空气动力性部件,可显著影响汽车的动力性、燃油经济性、操纵稳定性、舒适性等外,还对汽车外形的美观起到装饰作用,其质量的好坏直接影响汽车整车的外观。汽车后扰流板通常采用注射成型,。基于此,本文主要对注塑成型后扰流板的设计及应用进行分析探讨。  关键词:注塑成型;后扰流板;设计;应用  1、前言  后扰流板是装在车辆尾部的装饰板。我们通常所说的“尾翼”
期刊
摘要:在进行机床夹具设计的时候,可以应用UG平台来进行设计。首先要建立一个基于UG平台的机具标准元件的图库;其次需要将这些标准元件全部粘贴到装配夹具的文件夹内部,并将这些装配元件按照相关规定的标准来进行安装,根据这些零件的具体位置来进行夹具体设计、装配,最后还需要将已经设计好的三维工程图全部转化为二维装配图,整个设计过程都非常简单,在设计完成之后还必须要以铣床来进行验证。  关键词:夹具设计;UG
期刊
摘要:航空仪表中,膜盒式仪表有着广泛的应用。膜盒性能的好坏会影响到航空飞行的安全,因此加强对膜盒性能的检测非常重要。文章基于检测膜盒性能的目的,设计了一种膜盒自动检测系统,分析了检测系统的构成和工作原理,并通过实际的应用,验证了检测系统的科学性。  关键词:膜盒自动检测;设计;应用  根据实际的条件需求,膜盒分为真空膜盒和打压膜盒两种,其工作原理是利用膜盒形变和压力关系,对外界因素进行有效探测。膜
期刊