个人项目

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了个人项目脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

个人项目


这个作业属于哪个课程 < 网工1934-软件工程 >
这个作业要求在哪里 作业要求
这个作业的目标 代码实现论文查重,性能分析,psp记录

本作业代码已上传个人gIThub

一、psp表格

PSP PErsonal Software PRocess Stages 预估耗时(分钟 实际耗时(分钟)
Planning 计划 30 20
EstiMATE 估计这个任务需要多少时间 30 10
Development 开发 600 400
Analysis 需求分析(包括学习新技) 600 1400
Design Spec 生成设计文档 30 5
Design review 设计复审 30 20
Coding Standard 代码规范 (为目前的开发制定合适的规范) 60 50
Design 具体设计 10 5
Coding 具体编码 120 120
Code Review 代码复审 20 5
test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 30 40
Test Repor 测试报告 20 10
Size Measurement 计算工作量 10 10
Postmortem &amp; Process Improvement Plan 事后总结, 并提出过程改进计划 5 5
total 总计 1530 2130

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

主要模块

  1. jieba:中文分词组件
  2. gensim:计算文本相似度的程序包。
  3. re:处理字符串的正则表达式re包

主要函数

  1. get_str:获取指定路径的文件内容
  2. str_filter:去除停用词,结巴分词
  3. caculate:计算余弦相似度

设计与实现过程

str_filter函数

经查询得知,在计算文本相似度前,应先对文章进行分词,并且去除标点符号、常用词汇(停用词),这里用到强大的具有新词识别功能的jieba中文分词模块。

jieba.cut方法
  import jieba
    seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
    print("Default Mode: " + "/ ".join(seg_list))
    #我/ 来到/ 北京/ 清华大学

    seg_list = jieba.cut("他来到了网易杭研大厦")
    print(", ".join(seg_list))
    #他, 来到, 了, 网易, 杭研, 大厦(此处,“杭研”并没有在词典中,但是也被算法识别出来了)

caculate函数

caculate函数无疑是重中之重,在str_filter分词后,该函数应该使用算法返回查重结果。经查询得知,余弦定理是常见的相似度衡量方法之一,类似的相似度算法还有欧几里得距离、皮尔逊相关系数等等

余弦相似度

余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。 余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

性能分析

代码覆盖率

个人项目

各接口、函数运行时间

个人项目

代码测试

测试代码

第一个参数为原文路径,第二个为抄袭文路径,第三个为结果输出路 main.py TestDemo/orig.txt TestDemo/orig_0.8_dis_15.txt Result/result.txt

测试结果

个人项目

测试结果输出文档

个人项目

异常处理

设计目标:文件不存在异常处理

代码示例

      if not os.path.exists(argv[1]):
            print("论文原文文件不存在!")
            exit()

异常示例

用户错误输入用例

python main.py 2TestDemo/orig.txt TestDemo/orig_0.8_dis_15.txt Result/result.txt

测试结果

个人项目

脚本宝典总结

以上是脚本宝典为你收集整理的个人项目全部内容,希望文章能够帮你解决个人项目所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。