这个作业属于哪个课程 软件工程
这个作业要求在哪里 个人项目作业-论文查重
这个作业的目标 个人编程实现论文查重算法并进行测试检验

目录

一、项目链接

二、PSP表格

三、分包、接口设计与实现

四、性能改进

五、单元测试展示

六、 异常处理说明

七、算法原理


一、项目链接

项目链接

Lxuan_ / 3121005222 · GitCode

仓库:

二、PSP表格

*PSP2.1* *Personal Software Process Stages* *预估耗时(分钟)* *实际耗时(分钟)*
Planning 计划 20 17
· Estimate · 估计这个任务需要多少时间 450 510
Development 开发 150 120
· Analysis · 需求分析 (包括学习新技术) 100 110
· Design Spec · 生成设计文档 30 25
· Design Review · 设计复审 20 18
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20 15
· Design · 具体设计 30 30
· Coding · 具体编码 60 55
· Code Review · 代码复审 30 26
· Test · 测试(自我测试,修改代码,提交修改) 15 16
Reporting 报告 30 30
· Test Repor · 测试报告 15 15
· Size Measurement · 计算工作量 10 15
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 15 18
· 合计 530 510

三、分包、接口设计与实现

  • TxtUtil包:进行文本的读入读出

  • main主类进行cmd的运行

  • test包,里面的测试类

四、性能改进

从各个图我们可以得知,测试良好

比较占用资源的是,获取哈希值,分词过程,由于调用别人写好的包,没什么大的改进。

五、单元测试展示

cmd单独测试

覆盖率

六、 异常处理说明

public static String getSimHash(String str) {// 文本长度太短时HanLp无法取得关键字try {if (str.length() < 200) throw new ShortStringException("文本过短,难以判断!");} catch (ShortStringException e) {e.printStackTrace();return null;}

七、算法原理

具体实现:见仓库代码

1、分词,把需要判断文本分词形成这个文章的特征单词。最后形成去掉噪音词的单词序列并为每个词加上权重,我们假设权重分为5个级别(1~5)。比如:“ 美国“51区”雇员称内部有9架飞碟,曾看见灰色外星人 ” ==> 分词后为 “ 美国(4) 51区(5) 雇员(3) 称(1) 内部(2) 有(1) 9架(3) 飞碟(5) 曾(1) 看见(3) 灰色(4) 外星人(5)”,括号里是代表单词在整个句子里重要程度,数字越大越重要。

2、hash,通过hash算法把每个词变成hash值,比如“美国”通过hash算法计算为 100101,“51区”通过hash算法计算为 101011。这样我们的字符串就变成了一串串数字,还记得文章开头说过的吗,要把文章变为数字计算才能提高相似度计算性能,现在是降维过程进行时。

3、加权,通过 2步骤的hash生成结果,需要按照单词的权重形成加权数字串,比如“美国”的hash值为“100101”,通过加权计算为“4 -4 -4 4 -4 4”;“51区”的hash值为“101011”,通过加权计算为 “ 5 -5 5 -5 5 5”。

4、合并,把上面各个单词算出来的序列值累加,变成只有一个序列串。比如 “美国”的 “4 -4 -4 4 -4 4”,“51区”的 “ 5 -5 5 -5 5 5”, 把每一位进行累加, “4+5 -4+-5 -4+5 4+-5 -4+5 4+5” ==》 “9 -9 1 -1 1 9”。这里作为示例只算了两个单词的,真实计算需要把所有单词的序列串累加。

5、降维,把4步算出来的 “9 -9 1 -1 1 9” 变成 0 1 串,形成我们最终的simhash签名。 如果每一位大于0 记为 1,小于0 记为 0。最后算出结果为:“1 0 1 0 1 1”。

软件工程第一次个人编程作业相关推荐

  1. 2022秋软件工程第一次结对编程时作业

    软件工程 FZUSDN社区 作业要求 2022秋软件工程第一次结对编程作业 作业目标 使用NABCD进行需求分析并进行原型设计 成员学号 032002217 成员学号 072003403 墨刀链接 墨 ...

  2. 2021秋软工实践第一次结对编程作业

    这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 这个作业要求在哪里 2021秋软工实践第一次结对编程作业 这个作业的目标 实现博饼软件原型并进行博客写作 学号 031902139 队友学 ...

  3. 2021软工第一次结对编程作业

    这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 这个作业要求在哪里 2021秋软工实践第一次结对编程作业 这个作业的目标 结对完成任务并学会原型设计 学号 031902414 队友学号 ...

  4. 2022秋软工实践 第一次结对编程作业

    2022秋软工实践 第一次结对编程作业 需求分析 (1)Need,需求 (2)Approach,做法 (3)Benfit,好处 (4)Competitors,竞争 (5)Delivery,推广 UML ...

  5. 2022北航敏捷软件工程 第一次博客作业

    2022北航敏捷软件工程 第一次博客作业 项目 内容 这个作业属于哪个课程 2022年北航敏捷软件工程 这个作业的要求在哪里 个人阅读作业-阅读和调研 我在这个课程的目标是 了解软件工程的方法论.在实 ...

  6. 第一次团队编程作业 团队展示+选题报告+需求分析

    作业所属课程 fzusdn 作业要求 第一次团队编程作业 作业目标 确定选题,进行需求分析并设计功能模块.小组成员相互了解并进行组内分工 团队名称 怦然然心栋队 团队成员学号 032002342,03 ...

  7. 软件工程课程-个人编程作业

    评分标准 个人项目总共5个周时,总分数30分 作业期限每一周算一周时 未按时完成作业,但在作业截止后的3天时间内提交作业的,得作业得分x0.6 例如:A同学 个人编程作业0 作业得分3分 , 但由于在 ...

  8. 软工第一次个人编程作业

    这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 这个作业要求在哪里 https://bbs.csdn.net/topics/600574694 这个作业的目标 实现一个程序功能,它可以对 ...

  9. 第一次个人编程作业——论文查重

    文章目录 0 作业基本信息 1 作业地址:[https://gitcode.net/willwill0915/papercheck](https://gitcode.net/willwill0915/ ...

最新文章

  1. Transformer 眼中世界 Vs. CNN 眼中世界
  2. mysql内连接简写_技术分享 | MySQL 的 join_buffer_size 在内连接上的应用
  3. 宜昌市计算机一级考试真题,2018年上半年湖北省宜昌市计算机等级考试考务通知...
  4. Spring Cloud Stream 体系及原理介绍
  5. C++:Static修饰变量 vs Static修饰函数
  6. vue项目安装less_部署vue项目、安装mongodb
  7. 下拉选择框 其他_列表框 vs 下拉列表,哪个更好?
  8. html div 知识点,HTML知识点总结之div、section标签
  9. java接口可以接两个吗,接口可以在Java中扩展多个接口吗?
  10. Pytorch解决LSTM前向传播时报错:RuntimeError: input must have 3 dimensions, got 2
  11. SpringBoot-(1)-IDEA创建SpringBoot项目并运行访问接口
  12. java web权限设计_java web简单权限管理设计
  13. 【Android】 修复ijkPlayer进行m3u8 hls流播放时seek进度条拖动不准确的问题
  14. SQL操作结果集-并集,差集,交集,结果集排序
  15. 如何不下载百度网盘下载资源
  16. 2022年电工(初级)考试模拟100题及答案
  17. android怎么防8门神器,八门神器(GameKiller)怎么用?安卓版使用教程
  18. 牛客java选择题每日打卡Day2
  19. 短视频社交应用Socialcam关闭背后,是又一个圈钱阴谋?
  20. 次坐标从0开始_定位基础-坐标变换

热门文章

  1. SFML学习日志 Day1
  2. Codechef DECEMBER16 BOUNCE
  3. NN中常用的距离计算公式:欧式距离、曼哈顿距离、马氏距离、余弦、汉明距离
  4. MATLAB基础语法总结
  5. Sublime Text常用快捷键及插件配置
  6. EDA时序电路的Verilog设计
  7. 在HTML种引用阿里巴巴iconfont字体图标
  8. linux iic总线驱动程序,linux总线驱动之初识i2c驱动数据传输流程
  9. 【你问我答】unity实现一个刮刮乐效果
  10. SPI接口协议的学习4