第一次个人编程作业
| 这个作业属于哪个课程 | 软件工程2024-双学位 (广东工业大学) |
|---|---|
| 这个作业的要求在哪里 | 个人项目作业-论文查重 |
| 这个作业的目标 | 1.在gitcode的仓库中创建一个以学号为名的的文件夹 2.先在PSP表格中记录我估计在程序开发各个步骤上耗费的时间,在实现程序后记录下实际花费的时间 3.用程序语言来编写论文查重程序 4.使用Code Quality Analysis工具分析代码 5.使用Studio Profiling Tools来找出代码中的性能瓶颈并进行改进 6.使用gitcode来管理源代码和测试用例 7.使用单元测试对项目进行测试 |
| 参考文献 | 无 |
1.设计过程
我的gitcode链接:cbl的仓库
1.1 PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 30 |
| Estimate | 估计这个任务需要多少时间 | 10 | 10 |
| Development | 开发 | 60 | 180 |
| Analysis | 需求分析(包括学习新技术) | 360 | 180 |
| Design Spec | 生成设计文档 | 20 | 20 |
| Design Review | 设计复审 | 30 | 30 |
| Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 10 |
| Design | 具体设计 | 30 | 60 |
| Coding | 具体编码 | 30 | 30 |
| Code Review | 代码复审 | 30 | 10 |
| Test | 测试(自我测试,修改代码,提交修改) | 30 | 60 |
| Reporting | 报告 | 25 | 10 |
| Test Repor | 测试报告 | 25 | 30 |
| Size Measurement | 计算工作量 | 25 | 25 |
| Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 25 | 50 |
| 合计 | 730 | 725 |
1.2 设计与实现过程
我打算使用python语言来进行编程,通过查询资料与新技术的学习,下载jieba包,并导入其中的analyse包,通过关键词提取来做论文查重程序。
import jieba.analyse
先设计一个获取关键词的方法get_keywords_from_file(fname),
def get_keywords_from_file(fname):
with open(fname,'r',encoding='utf-8') as file:
content = file.read()
return jieba.analyse.extract_tags(content,关键词个数)
然后再设计关键的一步,通过比较原文的关键词和其他论文的关键词,来计算查重率。而计算查重率就用两篇论文的关键词的交集除并集*100即可获得查重率
def compute_sim(wordsA,wordsB):
jiaoji = set(wordsA).intersection(set(wordsB))
bingji = set(wordsA).union(set(wordsB))
return round(len(jiaoji)*100/len(bingji),2)
根据需求,需要输入原文文件的路径和抄袭版论文的文件路径,并要向指定的文件输出文件,因此我还需要导入包
import pathlib
from pathlib import Path
通过input()先让使用者输入文件路径,然后通过Path将字符串转为文件路径,再传入到获取关键词的函数中,最后再结尾使用with open打开result文件,并追加新的文件查重结果。
2.测试结果
2.1 性能分析


由图片可知,消耗最大的函数就是获取关键词的函数:get_keywords_from_file,但这也是很显而易见的,要对全文进行关键词的提取,所以耗时会比较大。
2.2 单元测试结果


浙公网安备 33010602011771号