首页 > 其他分享 >个人项目

个人项目

时间:2024-03-13 20:23:49浏览次数:19  
标签:调用 个人 项目 30 60 getSimilarity 相似 文本

主管作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136
这个作业的目标 实现自己的第一个个人项目,增强对项目开发的理解

github链接

PSP表格

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

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

  • 主程序流程:从命令行获取三文件路径参数——>调用getSimilarity.calculateSimilarity()对待检测文本进行内容的读取以及文本字符串的转换——>
    调用getSimilarity.lcsLength()对待检测文本字符串进行求最大子序列数,最大子序列数除以待检测文本最大字符数得出重复率——>调用resultInput.writeResultToFile(),
    将计算所得重复率写入指定文件;

  • papercheck类:内含主函数接口,接受命令行所给参数并调用getSimilarity类计算得出文本相似度
    并调用resultInput类将相似度写入指定文件

  • getSimilarity类:设计calculateSimilarity()方法求两文本相似度,先使用FileReader类读取两文本内容随后用BufferReader类逐行获取有效文本,
    接着将文本内容转换为字符串型,并调用lcsLength()方法利用动态规划法求出两字符串的最大子序列数,最后将最大子序列数除以两文本间的最大字符数得出相似度;

  • resultInput类:设计writeResultToFile()方法,使用FileWriter类指向指定路径的答案文件,将相似度写入答案文件当中;

模块接口部分的性能改进

在calculateSimilarity()中,这里我们采用了最大子序列来求相似度,但由于动态规划法的嵌套双循环语句,时间复杂度为字符数量的平方级,耗时过长,可通过余弦相似度的方法来解决,
通过BreakIterator类实现文本的分句,再通过添加IK分词器工具类实现对句子的分词,以及后续的统计词频,向量化等实现余弦相似度的计算,可减小时间复杂度,鉴于第一次使用java开发,
碍于工具类等的安装使用以及不熟练,这里只用最大子序列求取相似度;

模块部分单元测试展示

  • papercheck类:

  • getSimilarity类:

  • resultInput类:

覆盖率:

模块部分异常处理说明
在*papercheck类的main函数中,设置了输入绝对路径参数的检测,若参数规格不符合要求系统报错;

总结
第一次使用Java语言进行开发,鉴于未积累过经验,过程十分跌宕,每有想法实现却总是遇到障碍,类如添加依赖,添加类的声明,添加包,
种种原因困扰最终选择了大道至简最粗暴的方法,毕竟得先提交了再说嘛,希望在以后慢慢的磨练中能快速掌握多种语言的开发,并做到高效

标签:调用,个人,项目,30,60,getSimilarity,相似,文本
From: https://www.cnblogs.com/ww9826336/p/18071434

相关文章

  • 个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136这个作业的目标个人项目开发Github链接https://github.com/shishuiliuqin......
  • Node+Vue毕设高校教师项目申报管理平台(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在高等教育领域,教师参与科研项目是推动学科发展和创新的重要途径。随着科研竞争的加剧,高校教师需要积极申报各类科研项目以获取资金支持。然而,项目申报过程......
  • 【DataWhale学习】用免费GPU线上跑StableDiffusion项目实践
    用免费GPU线上跑SD项目实践​DataWhale组织了一个线上白嫖GPU跑chatGLM与SD的项目活动,我很感兴趣就参加啦。之前就对chatGLM有所耳闻,是去年清华联合发布的开源大语言模型,可以用来打造个人知识库什么的,一直没有尝试。而SD我前两天刚跟着B站秋叶大佬和Nenly大佬的视频学习过......
  • 3.2 RK3399项目开发实录-初次使用的环境搭建(物联技术666)
    通过百度网盘分享的文件:嵌入式物联网单片…链接:https://pan.baidu.com/s/1Zi9hj41p_dSskPOhIUnu9Q?pwd=8qo1提取码:8qo1复制这段内容打开「百度网盘APP即可获取」1.用户和密码1.1.UbuntuDesktop系统UbuntuDesktop系统开机启动后,自动登录到firefly用户。如果......
  • 3.1 RK3399项目开发实录-Linux开发,编译 Linux 固件(物联技术666)
    通过百度网盘分享的文件:嵌入式物联网单片…链接:https://pan.baidu.com/s/1Zi9hj41p_dSskPOhIUnu9Q?pwd=8qo1提取码:8qo1复制这段内容打开「百度网盘APP即可获取」1.编译Linux固件为了方便用户的使用与开发,官方提供了Linux开发的整套SDK,本章详细的说明SDK的具......
  • 影响SAP项目计划的因素
    我们在刚开始着手做项目计划的时候,可能会有点手足无措,不知道从哪里下手。大部分时候会拷贝一份之前的项目计划来用,但是不知道之前的计划是不是适合本项目。那么在做SAP项目计划的时候,到底哪些因素会影响计划?今天就给大家来揭秘。其实项目计划的主要影响因素无非就是两类,一类叫......
  • SAP项目中有哪些文档
    文档是SAP项目中的重要交付物,根据项目大小、项目方法论的不同,项目中使用的文档也会不同。文档也有不同的形式,有传统的word、excel,也有使用AzureDevOps等工具来实现的文档。我们可以根据实际需要来选择合适的文档来支持SAP项目的运行。项目计划(ProjectPlan)内容:涵盖整个项......
  • Node+Vue毕设风投项目管理(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今快速发展的科技与经济时代,风险投资(VentureCapital,简称VC)扮演着至关重要的角色。它为初创企业和创新项目提供了必要的资金支持,帮助它们在市场中站稳脚......
  • 个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136这个作业的目标了解项目开发的过程,学习github的使用方法GitHub链接:https:/......
  • 【分享】记一次项目迁移(docker java | docker python)
    项目:前端Vue3,后端Python+Java,数据库Redis+MySQL原先部署在centos7里面的,使用的宝塔面板部署的,还算方便。但是服务器要到期了,要将项目迁移到另外一台服务器。另外一台服务器是opencloudos+1plane本来想构建一个jdk1.8+python3.12+Nodejs环境的镜像奈何本人没学过docker,操作起......