第一次个人编程作业

1 作业属于哪个课程 软件工程
2 作业要求 论文查重算法
3 作业目标 完成论文查重算法的编码,使用PSP表格记录个人开发流程

Gitcode文件地址

代码解释

第三方库的安装

代码中的函数

代码测试情况

PSP表格

Gitcode文件地址
Gitcode文件地址链接

代码解释
1.第三方库的安装

安装第三方库:sklearn
sklearn库可将文本数据转化为数值特征以供算法处理,通过sklearn.feature_extraction.text模块可提取文本特征,其中TfidfVectorizer函数可实现TF-IDF算法,该算法通过对原文和抄袭版进行向量化,TF-IDF模型能为每个词汇分配一个重要性评分。这样可以减少常见的词汇(如“是”、“的”等)的影响,提高关键词的权重。
通过sklearn.metrics.pairwise模块提供了一系列用于评估样本集之间的成对距离或相似性的工具,其中使用cosine_similarity函数可计算两个向量之间的夹角余弦值,值的范围是从0到1,值越接近1,表示文本之间越相似。
2.代码中的函数
代码中共有三个函数,分别为preprocess_text、calculate_cosine_similarity和主函数

preprocess_text函数主要作用为清除文本中的标点符号和转化文本为小写,确保算法不受大小写及标点符号影响,本次测试用中文文本进行测试,因此该函数主要作用为清除标点符号。

cosine_similarity函数主要作用为使用 TfidfVectorizer 将文本转换为TF-IDF矩阵,然后计算这两个文本之间的余弦相似度。

主函数运行流程为先从命令行获取原文文件、抄袭版文件和输出文件路径,再读取原文和抄袭版的内容,进行预处理,然后使用余弦相似度计算文本相似度,并将结果输出到指定的文件中。
3.代码测试情况
样例测试




以上四个测试样例文本来源为作业中给出的样例
4.PSP表格

PSP 预估耗时(分钟) 实际耗时(分钟)
计划 120 120
估计这个任务需要多少时间 60 85
开发 600 650
需求分析 60 60
生成设计文档 60 60
代码规范 30 50
具体设计 60 60
具体编码 120 160
代码复审 30 25
测试 60 60
报告 30 30
测试报告 45 45
计算工作量 20 20
事后总结,并提出过程改进计划 20 20
合计 1315 1445
posted @ 2025-03-14 22:35  MMMosey  阅读(21)  评论(0)    收藏  举报