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

个人项目

时间:2024-03-13 22:47:02浏览次数:22  
标签:匹配 个人 项目 text self 30 time similarity

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136
这个作业的目标 完成论文查重的个人项目,包括使用PSP评估,设计模块,编写代码并进行单元测试,最后提交到github上

作业github链接:https://github.com/LinSYYY/3222004596

一、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(mins) 实际耗时(mins)
Planning 计划 30 20
Estimate 估计这个任务需要多少时间 10 10
Development 开发 360 400
Analysis 需求分析(包括学习新技术) 60 120
Design Spec 生成设计文档 30 30
Design Review 设计复审 30 20
Coding 代码规范(为目前的开发制定合适的规范) 20 25
Design 具体设计 60 50
Coding 具体编码 300 360
Code Review 代码复审 40 30
Test 测试 180 280
Reporting 报告 120 120
Test Repor 测试报告 60 60
Size Measurement 计算工作量 30 25
Postmortem & Process Lmprovement plan 事后总结,并提出过程改进计划 30 30
合计 1360 3067

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

1. 模糊匹配函数:

  • 函数名: fuzzy_match(pattern, sentences)
  • 参数:
    • pattern:待匹配的模式字符串。
    • sentences:原文本组成的列表。
  • 返回值:
    • 匹配结果的列表,每个元素是一个元组,包含匹配的句子和相似度。
    • 相似度的数值。

2. 主程序:

  • 读取原文和待检测文章的路径。
  • 读取文件内容并进行预处理,将文本内容转换为字符串。
  • 调用模糊匹配函数,对待检测文章进行匹配,并获取相似度。
  • 输出匹配结果和相似度。

3. 文件写入函数:

  • 函数名: write_similarity_to_file(similarity)
  • 参数:
    • similarity:相似度的数值。
  • 功能: 将相似度写入文件。

关键步骤描述

  • 确定算法的输入和输出。
  • 描述算法的主要步骤和流程,包括循环、条件判断等。
  • 指出算法中的关键数据结构和操作。

三、计算模块接口部分的性能改进:

改进思路:

1.减少重复计算相似度:在代码中多次调用fuzzy_match(pattern, sentences),可以将其计算结果保存下来,避免重复计算。
2.文件读取优化:可以采用更高效的文件读取方式,例如使用with open()语句来自动关闭文件,或者一次性读取整个文件内容。
3.批量处理:考虑对待检测文章进行分段处理,而不是一次性处理整篇文章。这样可以减少内存消耗并提高算法效率。
4.代码优化:对于模糊匹配阈值的设定,可以根据实际情况进行调整,以提高匹配的准确性或效率。

计算模块部分单元测试展示:

import unittest

class TestFuzzyMatch(unittest.TestCase):
    def setUp(self):
        # 构造测试数据
        self.original_text = "This is a sample original text."
        self.test_text = "This is a sample test text."
        self.pattern = "sample"
        self.similarity_threshold = 0.6

    def test_fuzzy_match(self):
        # 测试模糊匹配函数的正确性
        matches, similarity = fuzzy_match(self.pattern, [self.original_text])
        
        # 检查返回结果是否符合预期
        self.assertEqual(len(matches), 1)  # 应该只有一个匹配
        self.assertEqual(matches[0][0], "sample original text.")  # 匹配的句子应该是原始句子中的一部分
        self.assertGreaterEqual(matches[0][1], self.similarity_threshold)  # 相似度应该大于等于设定的阈值

    def test_performance(self):
        # 测试性能是否有所改进
        import time
        
        start_time = time.time()
        # 执行模糊匹配
        fuzzy_match(self.pattern, [self.original_text] * 1000)  # 重复1000次以模拟大量数据
        end_time = time.time()

        # 检查执行时间是否减少,表示性能有所改进
        self.assertLess(end_time - start_time, 10)  # 假设执行时间不超过10秒

if __name__ == '__main__':
    unittest.main()

在上面的单元测试中,构造了两个测试用例:

test_fuzzy_match:测试模糊匹配函数的正确性,包括返回结果是否符合预期。
test_performance:测试性能是否有所改进,即模糊匹配函数是否在处理大量数据时执行时间减少。

标签:匹配,个人,项目,text,self,30,time,similarity
From: https://www.cnblogs.com/lsy04/p/18071716

相关文章

  • 个人项目
    这个作业属于哪个课程软件工程4班这个作业要求在哪里作业要求这个作业的目标实现个人项目:论文查重这个作业的GitHub地址:作业地址PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划1515Estimate估计这个任务需要......
  • 个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136这个作业的目标使用算法实现论文查重,学习使用测试工具和性能分析工具,加深对PSP......
  • 个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024这个给作业要求在哪里https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136这个作业的目标论文查重一、github链接:https://github.com/githdx/31220......
  • 从JavaSE到项目部署——Java基础学习第八天(Java面向对象编程初级)
    目录一、类与对象(OOP)——类        1、类与对象概述    2、对象在内存中的存在形式     3、属性/成员变量/field(字段)     4、对象创建和使用    5、对象创建过程二、方法    1、方法基本演示    2、方......
  • 【Django开发】前后端分离美多商城项目第1篇:美多商城【附代码文档】
    美多商城项目4.0文档完整教程(附代码资料)主要内容讲述:美多商城,项目准备,商业模式介绍,开发流程,需求分析,项目架构,创建工程,1.在git平台创建工程1.B2B--企业对企业,2.C2C--个人对个人,3.B2C--企业对个人,4.C2B--个人对企业,5.O2O--线上到线下,6.F2C--工厂到个人,7.B2B2C--企业--企业--......
  • 作页二:个人项目
    这个作业属于哪个课程软件工程2024-广东工业大学这个作业要求在哪里软件工程2024-班级博客这个作业的目标开发个人项目,实现论文查重githubgitcode仓库地址:https://gitcode.com/wdwwdw/3122004405/tree/main计算模块接口的设计与实现过程使用hcaks对中......
  • Vite构建的前端项目在执行 "npm run dev" 命令时报错 "failed to load vite.config.ts
    报错信息:Failedtoloadconfigfromxx/.../xx/vite.config.tserrorduringbuild:Error:Youinstalledesbuildforanotherplatformthantheoneyou'recurrentlyusing.Thiswon'tworkbecauseesbuildiswrittenwithnativecodeandneedstoinstal......
  • 个人项目
    主管作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136这个作业的目标实现自己的第一个个人项目,增强对项目开发的理解github链接......
  • 个人项目
    这个作业属于哪个课程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万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在高等教育领域,教师参与科研项目是推动学科发展和创新的重要途径。随着科研竞争的加剧,高校教师需要积极申报各类科研项目以获取资金支持。然而,项目申报过程......