第一次个人编程作业
| 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 |
浙公网安备 33010602011771号