个人项目作业

news/2025/9/24 0:10:20/文章来源:https://www.cnblogs.com/JiandanMing/p/19108328
这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13468
github仓库 https://github.com/jiandanmingzi/jiandanmingzi/tree/main/3123004657

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

设计概述

计算模块采用分层设计,主要包含两个核心部分:
文件管理类 (FileManager)
职责:封装文件操作,提供统一的文件读写接口
关键方法:构造函数、析构函数、read_lines()、write_lines()
查重算法模块 (PlagCheck命名空间)
职责:实现文本相似度计算的核心算法
关键函数:split_into_words()、compute_simhash()、hamming_distance()、calcu_simi()
关系图:
Main Program

FileManager (文件操作) → PlagCheck (算法模块)
↓ ↓
文件读写 分词 → SimHash → 汉明距离 → 相似度计算

关键算法实现

1.分词算法 (split_into_words)

流程图:
开始

初始化ICU分词器

遍历文本字符

识别单词边界

过滤标点符号和空格(无法过滤中文标点)

返回单词向量

算法关键点:
使用ICU库进行语言无关的分词处理
智能过滤纯英文标点符号的"伪单词"
支持中英文混合文本处理

2. SimHash算法 (compute_simhash)

流程图:
输入单词向量

对每个单词计算64位哈希

构建64维特征向量(统计每位1的出现频率)

生成SimHash指纹(多数表决)

独到之处:
采用64位指纹,平衡精度和计算效率
基于词频加权的特征向量生成
对每个词的哈希值进行位级统计

  1. 相似度计算 (calcu_simi)
    创新点:
    基于汉明距离的相似度度量
    归一化处理确保结果在[0,1]范围内
    空文本检测和边界条件处理

2.计算模块接口部分的性能改进

性能瓶颈:分词算法与重复率计算
分词算法改进:原使用jieba,但效率过低,8k字文章大概需分词8s,改用icu分词
重复率计算算法改进:原使用lcs算法计算,时间复杂度为O(m*n),现改为SimHash算法,时间复杂度约为O(n)

3.计算模块部分异常处理说明。

当输入地址对应的文件不可读/不可写/无法打开时,抛出异常

4.PSP表格

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

附录

测试代码和测试结果(后续只改变边查重文章地址)

08e84fb45129ca9a381808b8cb99e904

f349196f608007e952274a89f50271d1

87464b26f67563d2629e55055b171016

723b1ae69967b75e8194f84a674ea5a8

b44eaa5992687fc9493b69306b85ad65

b73432463202d96b12976e763319973b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

枣庄市住房和建设局网站新闻株洲最新

接前一篇文章:libdrm全解析二十九 —— 源码全解析(26) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 本文开始对drmIoctl(DRM_IOCTL_MODE_CREATE_DUMB)以及其封装函数drmModeCreateD…

优质的聊城做网站大连建设网官网首页

在当今社会,人们对健康和优质生活的追求不断提升,使得瓶装饮用水的安全问题受到了广泛关注。溴酸盐和硝酸盐作为自然水体中常见的物质,若在矿泉水中含量过高,可能会对消费者的健康构成潜在威胁。因此,探究有效去除矿泉…

包头网站建设兼职营销运营推广服务

A We Got Everything Covered! 思路 可以采用划分区域的思想。 共划分为 n 个区域每一个区域含有所包含的前 k 个字母 证明: 正确性:无论所要求的字符串str为什么,只需要在区域i中取出 s t r [ i ] str[i] str[i]即可最优性&#xff1a…

厦门市建设局综合业务平台网站淮南发布app下载

一、什么是B/S架构 BS架构(Browser-Server架构)是一种常见的软件架构模式,其中系统的核心业务逻辑和数据处理都发生在服务器端(Server),而客户端(Browser)主要负责显示和用户交互。…

做网站找哪家好?聚禄鼎科技是一家给企业做网站的公司不封号的电销系统

机械臂的运动 工业机器人的运动,根据其运动轨迹可分为点到点的运动和路径跟踪运动。点到点的运动只关心特点的位置点,而路径跟踪运动关心整个运动路径。 点到点运动 点到点的运动根据目标点的机器人位姿,利用逆向运动学求取机器人各个关节…

网站后台管理产品排序石狮市网站建设

写在前面 这学期选了ACM课,但平时缺乏练习,不怎么刷题,因此期末考试成绩并不理想。考虑到之后的考研复试中包含机试,且计试可以算是非常重要的印象分,因此我打算寒假刷一下算法笔记,备战3月初的PAT甲级和3…

网站更换空间 收录慢县区网站集约化建设

webpack打包速度太慢 优化 1.多线程打包 js压缩和loader 2.优化启动速度 hard-source-webpack-plugin 3.删除无用的 分析类插件 4.DllPlugin通道打包 1.webpack多线程打包 loader loader 使用 thread-loader 将他放置你要使用的loader前面就行,不过这个lorder例如s…

zencart网站地图插件网站建设能解决哪些问题

org-mode的标记语法 Grey 全部学习汇总: GitHub - GreyZhang/g_org: my learning trip for org-mode 交互式模式 emacs的交互式模式让我对emacs的生命力有了更进一步的认识,但是我并没有找到什么特别丰富的资料做这方面的学习与分析。尤其是理论与实…

注册一个网站要多少钱怎么做一淘宝客网站

PWM驱动舵机 接线图如上图所示。注意,舵机的5V 线不能接到面包板上的正极,面包板上的正极只有3.3V,是STM32提供的,所以要接到STLINK的5V, 我们如何驱动舵机呢?由之前我们介绍原理知道,要输出如下图对应的PWM波形才行…

软工第二次作业--王腾

论文查重系统设计与实现 项目信息课程:计科23级12班 作业要求:[https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13468] GitHub链接:[https://github.com/littseadol/littseadol/tree…

大连房地产网站开发wordpress 中文企业主题

不专心开车 Description 小硕开车经过一条公路&#xff0c;这条路线总共由n 1个不同海拔的点组成。小硕从海拔为0的点0开始骑行。 给小硕一个长度为n的整数数组arr&#xff0c;其中arr[i]是点i和点i 1的净海拔高度差&#xff08;0≤i < n&#xff09;。请你返回最高点的海…

郑州网站建设专注乐云seo共享办公商业租赁网站模板

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

如何创做网站阿里营销网站建设

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES, Version 4.2为基础的对象关系型数据库管理系统(ORDBMS)。POSTGRES开创的许多概念在很久以后才出现在商业数据库中。PostgreSQL是最初伯克利代码的一个开放源码的继承者。它支持大部分SQL标准并且提供了许多其它现代特…

自己做网站卖东西需要交税吗天津网站建站推广

文章目录 技术栈踩坑记录 技术栈 JavaFX 11MavenJDK 11 踩坑记录 这些坑对于初学者很容易踩&#xff0c;JavaFX经常会报错空指针异常遇到其中一个问题可能就会消耗好几天的时间。 JavaFX 采用的是MVC架构设计&#xff0c;页面设计使用 fxml文件&#xff1b;业务逻辑采用Con…

手机网站自助建站常见的简单的营销软件

牛客题霸 [比较版本号] C题解/答案 题目描述 如果version1 > version2 返回1&#xff0c;如果 version1 < version2 返回-1&#xff0c;不然返回0. 输入的version字符串非空&#xff0c;只包含数字和字符.。.字符不代表通常意义上的小数点&#xff0c;只是用来区分数字…

出名的网站建设软件wordpress登录 跳转

1 声明和定义 声明就是告诉编译器有这个东西的存在&#xff0c;而定义则是这个东西的实现。 对于变量来说&#xff0c;声明就是告诉编译器存在这个名称的变量&#xff0c;定义则是给这个变量分配内存并赋值&#xff1a; // 变量声明&#xff0c;声明时不能赋值&#xff0c;如…

网站建设外包公司容易被客户投诉吗成都零起飞网站建设

工业高速发展的背后&#xff0c;离不开与之匹配的高端设备作为科研的支撑。品质检测仪器也在随着现代科技的发展而不断变化&#xff0c;随着科技的进步&#xff0c;各种大口径的管材、管道被生产制造出来&#xff0c;而对其外径尺寸的检测则因口径范围大而使得很少有仪器能进行…

牛客周赛 Round 110 E,F题解

E、小苯的数字变换 题意: 小苯在研究一种特殊的数字变换。对于一个正整数 \(x\),定义一个数字的“根”为不断将其各位数字相加直到得到个位数。例如: \[\text{根}(38) = 3 + 8 = 11 \rightarrow 1 + 1 = 2 \]\[\tex…

第5章:路由(Routing)与直连交换机(Direct Exchange)

本章目标理解直连交换机(Direct Exchange)的工作原理。掌握基于路由键(Routing Key)的消息过滤机制。学习多重绑定(Multiple Bindings)的概念。实现一个可以根据日志级别进行过滤的智能日志系统。一、理论部分 1…

网站做的好的tkd培训机构怎么做线上推广

原文 http://www.cnblogs.com/BoyceYang/archive/2013/06/15/3138142.html 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概述 在比较大的范围内找出能够大幅提高性能的区域&#xff0c;并且专注于分析…