ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

个人项目(论文查重)

2021-09-19 15:34:16  阅读:177  来源: 互联网

标签:查重 10 30 20 个人 代码 论文 单词 likes


这个作业属于哪个课程 网工1934-软件工程
这个作业要求在哪里 论文查重
这个作业的目标 了解并实现论文查重算法
使用PSP表格
使用单元测试
使用代码质量检测工具
使用性能分析工具

项目代码已上传至GitHub

PSP表格

PSP Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 60
· Estimate · 估计这个任务需要多少时间 30 60
Development 开发 360 460
· Analysis · 需求分析 (包括学习新技术) 120 180
· Design Spec · 生成设计文档 30 30
· Design Review · 设计复审 30 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 5
· Design · 具体设计 10 15
· Coding · 具体编码 120 150
· Code Review · 代码复审 20 30
· Test · 测试(自我测试,修改代码,提交修改) 20 20
Reporting 报告 35 30
· Test Repor · 测试报告 20 10
· Size Measurement · 计算工作量 5 5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 10 15
Total 总计 425 550

计算模块接口的设计与实现过程

使用的接口

jieba.cut

用于对中文句子进行分词,功能非常强大,详细功能见GitHub-jieba

演示效果如下:

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

运行结果:

他, 来到, 了, 网易, 杭研, 大厦
re.match

由于对比对象为小说段落,因此应该对读取到的文件数据中存在的标点符号过滤掉。

gensim.dictionary.doc2bow

Doc2Bow是gensim中封装的一个方法,主要用于实现Bow模型。

Bag-of-words model (BoW model) 最早出现在自然语言处理(Natural Language Processing)和信息检索(Information Retrieval)领域.。该模型忽略掉文本的语法和语序等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的。

例如:

text1='John likes to watch movies. Mary likes too.'
text2='John also likes to watch football games.'

基于上述两个文档中出现的单词,构建如下一个词典 (dictionary):

 {"John": 1, "likes": 2,"to": 3, "watch": 4, "movies": 5,"also": 6, "football": 7, "games": 8,"Mary": 9, "too": 10}

上面的词典中包含10个单词, 每个单词有唯一的索引, 那么每个文本我们可以使用一个10维的向量来表示。如下:

[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]

该向量与原来文本中单词出现的顺序没有关系,而是词典中每个单词在文本中出现的频率。

gensim.similarities.Similarity

该方法可以用于计算余弦相似度
实现方式:
image

过程实现思路与结果展示

实现思路

image

结果展示

image

结果存放至同目录下的result.txt中

计算模块接口部分的性能改进

性能分析
代码优化前

image

故对文件读取方式、代码等进行了些许修改

代码优化后

image
可见效率得到提升

代码覆盖率

image
比较低的原因可能是:判断异常情况的语句中的另外一部分在运行时未被使用(我觉得是因为程序跑的时候属于正常情况)

单元测试

将通过的情况的相似度设为0.99
成功的情况

image

失败的情况

image

计算模块部分异常处理说明

若原文件或抄袭文件不存在,则报出错误信息
image

测试结果

image

参考链接
https://www.jb51.net/article/137755.html
https://www.jianshu.com/p/edf666d3995f

标签:查重,10,30,20,个人,代码,论文,单词,likes
来源: https://www.cnblogs.com/minocolor/p/15310593.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有