ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

个人项目

2021-09-19 13:05:36  阅读:90  来源: 互联网

标签:粗哑 个人 项目 代码 30 60 测试 分词


这个作业属于 19网工34班
这个作业的要求在哪里 作业要求
这个作业的目标 学会使用PSP表格,学会个人软件软件开发流程,学会利用github来进行代码签入

github链接

1、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 30
· Estimate · 估计这个任务需要多少时间 1530 1730
Development 开发 1300 1340
· Analysis · 需求分析 (包括学习新技术) 600 720
· Design Spec · 生成设计文档 80 60
· Design Review · 设计复审 30 30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 50 30
· Design · 具体设计 100 80
· Coding · 具体编码 300 240
· Code Review · 代码复审 60 60
· Test · 测试(自我测试,修改代码,提交修改) 60 260
Reporting 报告 60 90
· Test Repor · 测试报告 80 60
· Size Measurement · 计算工作量 50 30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 60 40
合计 1530 1730

2、计算模块接口的性能与实现过程

1.项目结构

程序实现类

  • 主类:
    Application: 通过main方法接收参数,调用其它功能函数实现程序的运行。
  • 功能类:
    FileUtil: 文件输入输出类,通过main方法传递的参数读取指定的文件,并将文件的内容传递到分词类中,最后将查重的结果写进指定的文件中
    CuttingFile: 分词类,可以实现简单的中文分词
    SimpleCommonWords: 查重算法类,利用简单共有词算法实现论文查重
  • 测试类
    TestCoverage: 测试类,测试各模块的功能。

项目流程

2.关键函数的分析与实现

实现论文查重的关键是分词函数和文本相似度计算函数
查询资料后发现,比较典型的相似度算法有 SimHash + 汉明距离,余弦相似度等,但是为了方便,
最后决定采用Word分词组件与它自带的简单共有词算法进行计算,减少代码工作量
参考:中文分词组件
计算文本相似度的算法

简单共有词算法的流程如下:
原句:我听到老人粗哑却令人感动的嗓音,他唱起了旧日的歌谣

  string1=我听到老人粗哑却令人感动的嗓音,他唱起了旧日的歌谣
  string2=我旧日令人感动却他的嗓音,老人粗哑的歌谣唱起了听到

分词结果
  string1=[我, 听到, 老人, 粗哑, 却, 令人感动, 的, 嗓音, 他, 唱, 起了, 旧日, 的, 歌谣]
  string2=[我, 旧日, 令人感动, 却, 他, 的, 嗓音, 老人, 粗哑, 的, 歌谣, 唱, 起了, 听到]
词语数
 string1=14
 string2=14

共有词数
 14

查重结果
 result=14/14=1.0

可以看出,即使抄袭文本改变了词语的顺序,通过简单共有词算法依然可以检测出来

3、模块接口性能部分的性能改进

从性能分析来看,程序中消耗最大的是中文分词的函数调用

4、模块部分进行单元测试展示

分词类CuttingFile测试

测试结果

文本相似度计算类SimpleCommonWord测试

测试结果

代码覆盖率

由于插件问题,代码覆盖详细到每一行代码,对于未用到的异常情况处理以及类的声明语句都会判定为未覆盖,
导致覆盖率达不到百分百

5、模块部分异常处理说明

通过单元测试的结果可以知道,当两个文本都为空时,控制台会输出报错信息
可以通过在主类中添加判断,如果两个都为空就结束程序

6、项目程序测试

因为在编译软件已经提前把文件编码格式UTF-8,所以在运行程序时代码不需要再加上UTF-8
说明:因为在编码时没有注意到日志输出的问题,所以导致打包成jar包后,在命令行输出运行时,
输出了很多的日志,所用的编译软件打包成jar包比较麻烦,就没有更改

项目运行结果

7、总结

  在做这次的项目中遇到了非常多的问题,比如在提交代码到github时,一直无法连接上仓库,换了很多方法都没有成功,
后来请别的同学帮我提交了代码。一开始在引入jar包时,jar包中的中文变成了乱码,后来改了编译软件的文件编码格式才变回
中文,在最后打包jar包时,也失败了,也是请了同学帮忙打包,通过这次项目,我认识到一个好用的编译软件真的非常重要,
它可以提高你的开发效率。

标签:粗哑,个人,项目,代码,30,60,测试,分词
来源: https://www.cnblogs.com/zhou969/p/15244414.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有