自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 【山东大学软件学院创新项目实训】(二)环境配置

写一个前端的测试界面,并且在router文件夹下的index.js配置了一下路由。测试成功,至此,已经完成了前后端开发环境的配置与链接,数据库与后端的连接,可以准备进一步的开发。先创建一个创建一个spring boot框架的项目。在UserController里调用这个方法,并命名请求路径。先在vue.app里配上动态路由。在UserService里写获取所用用户的方法。先创建一个基础的VUE项目。至此,前端开发环境已经创建完成。在前端测试页面调用这个方法并将结果展示出来。在pom.xml引入依赖。

2026-04-11 21:56:58 167

原创 【力扣56】合并区间

在机试的时候我在思考两个不相交的区间被一个新加入的区间连接起来的情况,这样要讨论的东西非常多;只有两个区间的情况是比较简单的,但是不知道谁左谁右还是比较麻烦,按照左端点对区间排序确实是一个非常好的方法,一下子确定了比较的顺序,并且不存在两个分割的区间被新区间连接的情况。以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。

2025-08-14 21:50:30 311

原创 【力扣322】零钱兑换

动态规划方程:dfs(i, n) = min(dfs(i-1, n), dfs(i, n-coins[i]) + 1);计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。dfs(i, n):前i种面额的硬币凑成金额n的最少硬币个数;选第i种:dfs(i, n-coins[i]) + 1。不选第i种:dfs(i-1, n);你可以认为每种硬币的数量是无限的。

2025-08-14 18:32:48 204

原创 【力扣494】目标和

有t = p-(s-p) = 2p-s,即p = (s+t)/2;这里的s和t都是固定值;用子集法,选or不选变成了正or负,BFS执行所有情况,判断恰好为目标和。设所有数的和为s,取正的和为p,则和为p-(s-p);dfs(i, c):前i个数中恰好和为c的方案数;选第i个,前i-1个和c-nums[i];这样把问题转换为了选or不选。不选第i个,前i-1个和为c;暂时没看出来哪错了,,,

2025-08-12 23:35:33 198

原创 【力扣198】打家劫舍

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。偷第i家,第i-1家不能偷,第i-2家偷不偷都无所谓,即dp[i-2]+nums[i];dp[i-1]如果偷了第i-1家,则dp[i]不能偷第i家;如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。不偷第i家,第i-1家偷不偷都无所谓,即dp[i-1];设dp(i) 表示偷窃前i个房屋得到的最高金额。

2025-08-10 18:17:02 215

原创 【力扣46】全排列非递归实现

由于最小字典序是数字按照从小到大按从左到右的顺序排列,左边的数位是高位,会带来更大的影响,因此要得到不那么大的数要从右边的低位开始,但不能选择左边高位放置的小数,因为一旦选了,左边的高位会被大数替换,带来更大的影响,因此只能从右到左寻找下一个不同的数,并且选择的数位要尽可能接近,尽可能靠右。全排列中第二大的数:在最小字典序基础上,交换最低两位(不同的数);(i右边至少是降序,找到可替换使得高位更大的最小数)最小字典序:将最小的数放在最低位,递增地向后排列;(将替换的高位后面的部分转换成最小字典序)

2025-08-10 17:17:12 237

原创 【力扣46】全排列

给定一个不含重复数字的数组nums,返回其所有可能的全排列。或者可以用标记数组,标记已选择的位置。按照灵神思路分析 选择 和 子问题。选择x以后,在s-{x}中继续选择。

2025-08-09 22:18:18 193

原创 【力扣22】括号生成

数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。❌ 嵌套的情况应该是在剩余部分最外侧嵌套,这种写法会导致下次递归会在嵌套外侧修改。path设置为string类型,排列的情况只需path = () + path;嵌套的情况:front = front+(;嵌套的情况:path = ( + path + );设置前front,待定path,后back三段;排列的情况:front = front+();括号的两种关系:排列,嵌套;无法构造 (())();

2025-08-08 20:55:35 386

原创 【力扣216】组合总和3

可以结合之前的子集dfs,只将满足长度为k且sum为n的path加入ans。重要的依然是sum+i作为参数传递给dfs进行下次递归,不能改变sum的值。返回所有可能的有效组合的列表。从k的角度构造,思考起来很复杂。每个数字最多使用一次。

2025-08-08 17:10:40 271

原创 【力扣77】组合

1 可以在dfs定义的for循环中设置指针变量的不同结束位置,2 也可以直接判断长度=k时才将path加入ans,2这种情况我们关注若用完了n个数但长度未达到k该如何处理,我们选择直接return;给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。供选择的有n个数,n-k+1是最后一个长度为k个数的区间的左端点;第二层dfs(选择组合中的第二个数)最多选择n-(k-1)+1;以此类推,第n层dfs最多选择我n-(k-n+1)+1;dfs,终止条件是长度达到k;

2025-08-08 15:07:08 278

原创 【力扣131】分割回文串

边界:start from 0 to str.size()-1 每次切后,0-start归左半部分,start+1-end归右半位置。讨论第二刀时应从start+1开始;我们希望在讨论过所有位置以后终止,即完全不切,第n刀切后,s.size()-1位于左半部分末尾,而右半部分为空,此时下次调用dfs传入的start是s.size()。start是每次切后左半部分的末尾,下一次的start会是start+1,即右半部分开头;循环中递归dfs是在第一刀的基础上讨论第二刀,从start+1开始,直到末尾;

2025-08-07 22:05:40 227

原创 【力扣78】DFS构造子集

给你一个整数数组 nums ,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。还是得吃点细糠,难得的明白人写出来的好教程。

2025-08-07 00:48:13 216

原创 【力扣17】DFS构造序列

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。太他吗难了,不会写。

2025-08-07 00:19:40 347

原创 【力扣814】二叉树剪枝

父节点收到左右孩子的标志以后,若某个孩子所在的子树不含1,则将这一路设置为nullptr,再检查自己的val是否为1,若不为1,则给自己的父节点返回不含1的标志,否则告诉自己的父节点自己有1,此时这个节点的左右孩子中不含1的子树已经设置为nullptr,达到了一种传递的效果。注意节点的val是0或1的区别:在左右子树都不包含1的情况下,若父节点不为1,则一起删除,否则保留父节点。父节点同样给自己的父节点返回一个类似的标志,这个操作对所有节点都是一样的;左右子树都为0,自己为0,返回nullptr √。

2025-08-06 18:16:30 223

原创 【山东大学软件学院创新项目实训】(十三)个人总结

由于完全没有接触过大语言模型,微调这些东西,所以上半学期做的非常难受,在网上各种调研看教学视频,最终选择了北理开发的llama-factory微调平台,以及在HuggingFace上下载的deepseek-r1-7B-distrill蒸馏版本作为模型本体。我在autoDL上租了3090服务器用来放模型本体,微调平台并利用显卡来进行微调训练。

2025-06-14 21:13:37 572

原创 【山东大学创新项目实训】(十二)公众号功能开发

本文介绍了基于微信公众号开发的学习辅助系统设计方案。为解决个人公众号功能限制问题,采用微信接口测试号进行开发,主要实现四大功能:今日学习查询、学习进度追踪、用户信息管理和帮助系统。技术实现方面,系统采用Retrofit进行网络请求,结合XStream处理XML数据,利用Guava缓存机制优化微信access_token管理。文章详细说明了后端架构设计,包括微信API接口封装、数据格式转换和缓存策略配置,为开发微信公众号功能提供了可参考的技术方案。

2025-06-14 09:06:10 369

原创 【山东大学创新项目实训】(十一)前后端开发

词境星云项目开发了基于AI的交互式英语学习故事生成系统。后端采用StoryGenerationService实现故事树生成,支持递归创建3层深度的分支故事,并设计了StoryTemplate、StoryPage和UserStoryProgress三个核心数据表管理故事模板、分支页面和用户进度。系统通过AI接口生成英文/中文内容及选项,并解析为结构化数据存储。前端实现了分步打字动画、关键词高亮、中英切换、分支选择等功能,支持语音朗读和历史回溯,形成完整的交互式英语学习体验。整体架构实现了从故事生成到用户交互的

2025-06-14 09:05:00 368

原创 【山东大学软件学院创新项目实训】(十)故事“预”生成功能开发优化

故事预生成功能开发优化

2025-06-14 08:33:16 554

原创 【山东大学软件学院创新项目实训】(九)微调图像生成优化

本功能为用户提供了基于每日学习单词自动生成英语互动故事的能力。用户可通过点击按钮生成专属故事,并在故事发展过程中进行分支选择,体验沉浸式英语学习。系统支持中英文双语、关键词高亮、语音朗读、图片展示等多种交互方式,极大提升了学习趣味性和主动性。

2025-06-01 17:25:40 624

原创 【山东大学软件学院创新项目实训】(八)故事模块改进-prompt工程实现多分支互动故事

AAA

2025-06-01 14:24:30 904

原创 【山东大学软件学院创新项目实训】(七)autoDL端口映射/本地调用故事生成与图片生成

ASDASD。

2025-05-25 23:57:40 454

原创 【山东大学软件学院创新项目实训】(六)扩散模型微调故事场景图像生成

123

2025-05-18 16:40:23 1057

原创 【山东大学软件学院创新项目实训】(五)测试指标

JH Kim,

2025-04-20 20:13:57 397

原创 【山东大学软件学院创新项目实训】(四)数据处理

可以看出模型已经建立了自我认知,“你是一个擅长创作富有情节和趣味性的英文学习故事的助手,故事需自然地融合指定单词,帮助记忆。但模型并不能稳定地产生正确输出(有时会在故事的5句话中会有重复的句子,并且一旦出现这种状况之后就会频繁发生),并且有时故事的逻辑性并不强,只是把每个单词的句子强行拼接。我们尝试基于ROCStory构造数据集用于在微调过程中增加LLM生成故事的逻辑性和连贯性,这需要两方面的能力,对故事的理解(逻辑性)以及生成故事的能力(连贯性)。例如: {X 扔出,拉出 X,告诉 X,?

2025-04-12 23:03:47 91

原创 【山东大学软件学院创新项目实训】(三)大模型微调调研

SFT有监督微调Supervised Fine-Tuning:通过提供⼈⼯标注的数据,进⼀步训练预训练模型,让模型能够更加精准地处理特定领域的 任务 除了 “ 有监督微调 ” ,还有 “ ⽆监督微调 ”“ ⾃监督微调 ” ,当⼤家提到 “ 微调 ” 时通常是指有监督微调。通常⽤于通过将⼤模型(教师模型)的知识转移到⼩模型(学⽣模型)中,使得⼩ 模型能够在尽量保持性能的同时,显著减少模型的参数量和计算需求。提⾼模型对企业专有信息的理解、增强模型在特定⾏业领域的知识、获取和⽣成最新的、实时的信息。

2025-04-06 21:09:14 314

原创 【山东大学软件学院创新项目实训】(二)云服务器,微调平台llama-factory以及微调过程

大模型微调

2025-03-30 22:59:37 1175

原创 【山东大学软件学院创新项目实训】(一) 项目介绍

然而,现有的英语学习工具普遍存在一些明显的缺陷,难以满足用户的多样化需求:依赖固定的模板和通用内容,缺乏个性化定制,无法根据用户的学习进度、职业背景或兴趣提供针对性的学习内容;基于DeepSeek的上述优势,结合大模型的英语学习助手项目应运而生,旨在利用其强大的语言处理能力和深度思考功能,为用户提供更加智能化、个性化的英语学习体验,帮助用户在学术和商业领域都能“大显身手”,让更多人受益于AI技术的进步。该功能摒弃了传统固定词书的局限性,实现了智能化、定制化的学习内容推送,显著提升了用户的学习效率与体验。

2025-03-16 23:11:21 709

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除