个人项目作业-论文查重

这个作业属于哪个课程 2023春软件工程
这个作业要求在哪里 个人项目作业要求
这个作业的目标 完成作业要求,进一步掌握代码签入Gitcode的操作
其他参考文献 python 输入输出
姓名 马旭
学号 3120001271

Gitcode地址

Gitcode链接

实现过程

确定思路

首先将文章分成一段一段的短句短词,并去掉没有任何意义词语如语气词等即提取 关键词,最后让两份文档对应的短词进行文本相似度的比较,最后得到结果。

分词方法

利用Github中 jieba 这一接口来完成分词这一步骤。

文本相似度计算方法的选择

文本相似度计算常用于网页去重以及NLP里文本分析等场景。文本相似度,可以分为两种,一种是字面相似度,另一种是语义相似度。本文记录的是文本的字面相似度的计算及实现,语义相似度计算则需要海量数据去计算语义值,较为复杂。最常用的且最简单的两种文本相似检测方法:局部敏感hash、余弦相似度。
最后我选择使用 simHash 来作为文本相似度计算的算法。GitHub有现成的算法提供。simHash数学解释

运行分析


调用信息

调用图

运行时间

测试

我尝试使用自己的代码对其他的示例文档(orig_0.8_del.txt,orig_0.8_dis_1.txt,orig_0.8_dis_10.txt,orig_0.8_dis_15.txt)进行查重,发现相似度极高。后发现需要对文档中的html等过滤即提高关键字提取的函数能力,以达到更好的论文查重效果。

PSP

PSP2.1 Personal Software Process Stages 预计耗时(分钟) 实际耗时(分钟)
Planning 计划 30 33
Estiime 估计这个任务需要多少时间 10 45
Development 开发 60 89
Analysis 需求分析(学习新技术) 120 150
Design Spec 生成设计文档 20 12
Design Review 设计复审 20 8
Coding Standard 代码规范(为目前的开制定合适的规范) 5 3
Design 具体设计 30 65
Coding 具体编码 60 147
Code Review 代码复审 10 2
Test 测试(自我测试,修改代码,提交修改) 60 72
Reporting 报告 60 89
Test Rpepor 测试报告 20 12
Size Measurement 计算工作量 5 2
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10 8
合计 520 737

收获

  • 在git的使用中遇到了很多过程,再加上一开始没有弄会commit的使用,导致很多次编译成功后的代码没有及时签入。借助这次作业的机会,我学习到了git的使用包括分支的建立,合并等等,也初步了解到pycharm同样可以直接完成commit,并且可视化极高。gitcod尤其可以帮助我们团队合作时资源的共享等等,方便代码软件的开发。
  • 利用pycharm中的性能测试工具profile去了解代码运行的过程,函数的使用率等等。
posted @ 2023-03-12 14:47  kavinpin  阅读(145)  评论(0)    收藏  举报