- 博客(170)
- 资源 (25)
- 收藏
- 关注
原创 AI编程方法第六弹:高效编码离不开编程者经验引导
因此,合理的引导提示AI编程工具进行编程,才能写出更为合理高效的代码,这在一定程度上也说明AI编程并不意味着编程人员无需再学习编程,相反,熟练的编程人员才会更好的引导AI快速实现高效的代码。该代码相较于以前,确实已有改进,采用了滑窗切片的for循环实现了有效的简化处理,但是其自动去除了连续输入的功能,后期还需要自己替换上去。这次我们会发现AI灵巧的使用了一个NumPy的卷积函数convolve,自动实现了for循环的滑窗切片,具体对该函数的了解可以直接询问AI。请不要使用函数,去除main代码。
2025-04-26 14:50:02
562
原创 AI编程方法案例:决策树的生成
③AI编程工具在整个开发过程中的应用面很广,再如对于表格数据,据此得到X特征列表,编写工作量既大又容易出错,可以在附加数据内容后使用提示词“将下面数据转换为一个Python的二维列表”即可自动生成Python列表代码。如果要得到纯粹的文本说明,还可以使用提示词“使用200字的汉字、不使用任何公式和字母来描述gini_impurity实现思路”等等,都可以取得良好的效果。②实现最佳分割点,通过遍历每个特征所有可能的分割点,计算每个分割点的基尼不纯度,并选择基尼不纯度最低的分割点作为最佳分割点。
2025-04-22 10:50:21
673
原创 AI编程方法第五弹:测试很重要
事实上,造成这一问题的原因很简单,AI复制文本生成代码时,并没有完整的复制全部内容,导致代码中文档包含的单词次数并不对。其中TF是指词频,即文档中包含词语的个数,IDF是指倒文档频率,计算公式为:IDF=log(N/n(i)) 其中N表示文档总数,n(i)表示含有关键词i的文档总数。对于代码工作,细心的测试工作不必可少,甚至在将大部分代码开发工作转移过去的同时,留给我们的更多工作就是仔细测试AI生成的代码,确保其质量和效果。利用上面的TF和IDF,通过乘积,计算每个词语在每个文档句子中的TF-IDF权值。
2025-04-18 19:41:23
618
原创 AI编程方法案例:PageRank算法实现
请根据标准的PageRank算法思路,无需考虑阻尼系数,具体方法是对于每个网页权值初始设为0.2,在第一轮迭代中,如果有其他网页指向,就将其权值累加过来,但是该累加值会被其他链入网页的出度均分,最后每个网页再将自身的权值和其他链入网页传入的权值累加,并最终以全部网页权值总和做分母规范化所有权值,完成第一轮迭代,再进行第二轮迭代,方法同前,反复进行,直到先后两次迭代同一网页的权值差值小于0.00001即可停止迭代,最后输出最终全部网页的权值。网页2有2个链接指向网页1和网页3,网页1有1个链接指向网页2,
2025-03-18 20:13:50
630
原创 AI编程方法第四弹:向它提问
和传统搜索引擎一样,AI编程工具也是一种很好的信息检索工具。不同于搜索引擎,AI编程工具是直接生成最终的答案,而且可以采取自然语言提问的方式。但是不可否认一点,我们不能完全迷信它的结果,大语言模型存在幻觉的可能性,尤其对于一些较为罕用的方法。比如对于问题“汉字最小的Unicode编码是多少”,在AI编程工具给出答案后,可以直接提问为“”,更为合理的方法是通过建议它生成有效的测试代码来观察其真正的合理性。1)可以尝试多种不同的AI编程工具来提示,大多数相同的答案应该合理。
2025-03-10 17:58:10
245
原创 AI编程方法第三弹:让它改错
很多情况下,我们自己还是可以完成代码的,不过会遇到很多错误。在发生错误时,可以充分利用AI编程工具帮助我们调试错误,加快处理速度。当然,对于初学者并不建议,还是等自己掌握了基础知识,再去考虑智能化处理:)运行时输入了“a”,结果显示错误为:ValueError: invalid literal for int() with base 10: 'a'可以直接将代码和错误信息完整的构造成一个提示词来询问。该提示词综合使用了多种提示技巧,比如增加了角色扮演“”,同时在内容上尽可能的详细和完整,实际效果较好。
2025-03-10 17:51:11
276
原创 AI编程方法第二弹:边提问边调整
让用户输入一个整数长度,在“Python”中各个字符之间填充空格,使得总体字符串长度等于或者接近于输入的整数长度,请不要超过10行代码,使用字符串join函数来实现该功能,不必考虑输入数值小于现有字符串长度等特殊情况处理,如果空格分配导致整体长度也并不完全符合要求也行,不要使用任何自定义函数、循环遍历等复杂操作,力求代码简化。不过,该代码虽然略显复杂,但是稳健性更强,可以适应诸如输入数值小于现有字符串长度等特殊情况的处理,其主体逻辑功能基本一致。对于这样一个问题,初始的用户提问可能是“
2025-03-10 17:42:10
355
原创 AI编程方法第一弹:基本提问方法
再如如果问题有所变化,要求让用户输入两个数的加法计算式,如“1+2=”,并输出最终的加法计算式及其结果,如“1+2=3”。让用户输入两个数的加法计算式,如“1+2”,并输出最终的加法计算式及其结果,如“1+2=3”,请只使用字符串自带函数实现。让用户输入两个数的加法计算式,如“1+2=”,并输出最终的加法计算式及其结果,如“1+2=3”,请只使用字符串切片实现。功能是让用户输入两个数的加法计算式,如“1+2=”,并输出最终的加法计算式及其结果。我们从一个最简单的Python程序开始。
2025-03-06 19:49:46
444
原创 关于2023新版PyCharm的使用
一是修改代码后运行发现没有变化,这极可能是建立了多个Python文件,要注意观察当前运行的文件是否为当前正在编辑的文件。先安装Python解释器,即python-3.11.4-amd64.exe,在出现下面界面时,点选最下方的“Add python.exe to PATH(添加python.exe到快捷路径中)”,这一步切记要做!在首次启动后出现的界面中,可以进行诸如设置主题、安装插件和新建项目等操作。其中新建项目时,可以注意到默认选择的Python解释器,必要时也可以进行更换所需的其他版本。
2025-03-05 10:01:02
821
原创 使用Flux以文生图
其中有flux1-schnell.safetensors文件,下载后放入ComfyUI解压目录ComfyUI/models/unet文件夹中,ae.safetensors放入ComfyUI解压目录ComfyUI/models/vae文件夹中。t5xxl_fp16.safetensors,下载后放入ComfyUI解压目录ComfyUI/models/clip文件夹中。下载后放入ComfyUI解压目录ComfyUI/models/checkpoints文件夹中。4)下载ckpt推理文件(很多说明没有介绍)
2024-09-15 08:54:28
431
原创 文本转自己人声的实践
5)全部完成后可以在当前文件夹下看到一个dataset文件夹,里面有刚才设定名称的文件夹,再里面就是处理好的多个音频文件和一个名称为”dataset_mapping.list“的文件。里面有三个页面,分别是“0-前置数据集获取工具“、“1-GPT-SoVITS-TTS“、“2-GPT-SoVITS-变声“。5)实验模型名称任意(英文),下面还有三个子页面,分别是”1A-训练集格式化工具”、”1B-微调训练”、”1C-推理”。最终得到两个文件,一个是wav格式的声音文件,一个是同名的srt字幕文件。
2024-09-02 14:27:21
792
原创 常见的推荐系统框架
TagRec是一个使用Java编写的简单通用标签(Tag)推荐器模块,还同时提供了包含处理数据集的算法(如p核修剪、留一或80/20分割、LDA主题创建和为其他推荐算法创建输入文件等)。CaseRecommender是一个基于Python的开源推荐系统算法模块,提供了很多流行推荐算法的Python实现,用于隐式和显式反馈。
2024-05-12 11:30:04
963
转载 2015年1月-2024年2月全球移动搜索引擎市场份额
全球方面,根据StatCounter数据,2024年1月谷歌搜索的桌面、移动端市占率分别为82%、95%,均大幅领先,2024年1月,桌面端市占率第二为微软的Bing,市占率为11%,移动端第二为YANDEX,市占率为2%。国内方面,根据StatCounter数据,2024年4月国内搜索引擎市占率第1-3名分别为百度、Bing、搜狗,市占率分别为62%、18%、4%。
2024-05-12 11:27:59
756
原创 解决无法在PyCharm中创建项目
这种问题的原因比较多,最为常见的原因就是在安装Python解释器时没有选择“Add Python 3.7 to PATH”复选框,此时创建项目的按钮会呈现灰色而无法点击,或者在PyCharm项目建立好后无法运行Python代码。或者也可以在“添加Python解释器(Add Python Interpreter)”界面选择其他左边其他的选项,包括其他版本的Python。一般正常情况下,此时该解释器有对应的Python解释器,如果该项为空,可以点击右侧的方块按钮,即可手工选择Python解释器。
2023-12-27 14:04:42
5398
原创 在PyCharm快速加载第三方模块的设置方法
1)打开“File”——“Settings”,选择“Project Interpreter”,点击右上角的加号,这个和一般加载第三方模块没有区别。5)此时再搜索,可以发现这些搜索到的模块都在国内的服务器上了,再次点击左下方的“Install Package”,下载安装会非常快,而且稳定!第一行是在Terminal中设置国内镜像站点,此行语句运行一次后,以后在Terminal中安装模块就无需指定国内镜像,也可以默认国内下载。6)有时也会出现部分异常,这主要是需要升级Python的加载模块的pip程序。
2022-11-27 18:02:19
2304
原创 关于如何拷贝数据文件到PyCharm项目中
1)找到下载的数据文件,一般位于“下载”目录中。直接选中该文件,右击选择“复制”。此时的错误信息往往为 “FileNotFoundError: [Errno 2] No such file or directory”,意思是文件找不到错误,没有这个文件或者目录。
2022-09-13 10:58:32
12524
1
原创 修改PyCharm的快捷键
有的电脑系统中,按下一些PyCharm组合键可能会无法起作用,这是因为可能和当前系统的其他软件快捷键发生了冲突。大家有需要可以更改下默认的快捷键,下面以Ctrl+空格的自动代码补齐快捷键为例,方法是选择File——Settings,选择keymap,并在右边的搜索框中输入“completion”表示自动完成代码的意思,你会看到右边下面有很多快捷键:选择那个Code下面的Completion的Basic,右击即可删除当前的默认快捷键:然后再右击它,新建快捷键:此时只需直接按下组合快
2022-03-24 20:05:59
5344
原创 如何理解 0.1 + 0.2 不等于 0.3
首先明确一点,Python的浮点数存在着精度误差,因此浮点数不能也不应该进行等于的判断。首先看下代码:print(0.1 + 0.2 == 0.3)运行结果为:为什么会输出 False 呢?我们可以使用精度更高的 Decimal 类型来看下这些数据实际存储的状态:import decimalprint(decimal.Decimal(0.1))print(decimal.Decimal(0.2))print(decimal.Decimal(0.3))输出为:0
2022-03-06 17:20:31
3846
原创 Mac系统中复制site-packages安装库文件的方法
1)下载所需的模块压缩文件:https://www.njcie.com/python/mooc2-data/1/site-packages-Full-Mac.ziphttps://www.njcie.com/python/mooc2-data/1/site-packages-Full-Mac.zip2)解压,得到一个完整的site-packages文件夹及其里面的所有模块,此时选择这个文件夹,可以按下Command+C或者右击选择“拷贝”:3)新建Mac系统中PyCharm的项目,右击项目名称,
2022-03-06 15:12:09
2071
原创 关于Mac系统中无法正常使用tushare库的问题
在安装了tushare慕课后,可以使用下面的代码测试是否正常使用:import tushare as tsframe = ts.get_k_data('600339', start='2010-01-01', end='2020-10-31')print(frame)正常输出为: date open close high low volume code0 2010-01-04 8.512 8.867 8.994 8....
2022-03-06 14:02:16
3602
原创 7.3 投票文件数据统计
这是一个经典练习,主要涉及对字典和文件处理的综合技能。主要目的是实现投票文件数据统计,比如有数据文件 count.txt,内容为每个候选人及其选票,可能一个候选人会出现多次:张三 6李四 8王二 3张三 5王二 4张三 3要求读取文件,并统计汇总结果为: {'张三': 14, '李四': 8, '王二': 7}1)建立数据文件可以在PyCharm中直接建立数据文件,右击当前项目,选择New——File,如:然后即可输入新的文件...
2022-02-28 16:02:31
1649
3
原创 7.2 文件夹操作
文件夹也叫文件目录,可以存放、组织多个文件。os模块提供了一组常见函数,可以方便进行文件夹管理。比如:mkdir 创建文件夹 chdir 改变当前文件夹 rmdir 删除文件夹 listdir 罗列文件夹内容我们通过一个练习来了解下相关操作。自动生成姓名文件夹,即根据已有的学生学号,自动生成相应的各个文件夹,每个文件夹对应一个学号。首先先来根据姓名列表建立文件夹:import osstus = ['202010001', '202010002', '...
2022-02-28 15:33:14
403
原创 7.1 文件操作
所谓文件是指存储在硬盘上的各种文件,Python所读取的数据文件通常为文本格式,即可以使用文本编辑器来打开阅读。对于数据分析任务而言,数据文件是最为常见的数据获取途径。在讲解数据文件处理之前,先需要对数据文件做下说明。由于数据文件通常都很大,因此不建议大家直接使用Windows系统自带的记事本来打开,而可以尝试使用Sublime或者Editplus等专业文本编辑器。尤其是后者是免费软件,可以直接下载:Sublime Text - Text Editing, Done RightSublime T
2022-02-28 14:57:14
530
原创 6.4 词语统计
主要练习字典的使用方法,包括字符串的常见操作方法。比如对于下面的字符串文本,实现文本中词语个数的统计。如:方法1:遍历文本中的字符串,依次将每个词语添加到现有字典结构中。对于新的词语,新增节点并置个数为1。对于已有的词语,则只增加个数。为此,首先需要分割出各个词语,常见的方法可以使用字符串自带的split方法:text = 'to be or not to be'words = text.lower().split()print(words)输出为:['to', 'be',
2022-02-28 08:56:14
766
原创 6.3 高级操作
这里主要介绍几个常见组合数据的练习:1)查找元素,可以查找一个数值在列表中是否出现,如果出现,输出为:True。num = [1, 2, 3, 4, 5]for i in num: if i == 2: print(True)输出为:True代码思路很简单,循环遍历每个列表元素,并不断判断是否等于需要查找的数,一旦有即输出结果。这里有无无需获取查找元素所在的位置,因此可以不使用序号采取直接获取每个元素的循环遍历方法。如果需要返回位置,就应该使用带有序号的遍历
2022-02-27 20:37:36
627
原创 6.2 字典、集合
字典(dictionary)名称虽然奇怪,其实该种组合类型提供了一种通过名称(键)来访问元素(值)的方法。前面已经介绍过列表和元组,他们只能通过序号来访问每个元素。但是在一些应用场景下,序号方式并不方便。做个比喻,就像点名,可以使用一号二号来进行,但是有时更需要直接根据姓名点名,更有针对性,也易于记忆。因此,字典的应用很广,非常实用。1)字典的创建data = {'ID': '000001', 'name': '黎明', 'age': 16, '
2022-02-27 11:02:26
843
原创 6.1 列表、元组
Python对于数据处理,专门提供了一些组合数据类型,他们是指同时可以存储多个数据的一种集合型数据。比如列表可以存放若干个整数,在访问时,可以通过序号下标来读取不同的元素。num = [1, 2, 3, 4, 5]for i in range(len(num)): print(num[i])除此以外,Python还提供了其他几种:这次重点介绍下列表(List)。1)列表的创建下面演示了一些常见的创建方法:num = [0] * 10num = [8,
2022-02-27 09:43:51
483
原创 5.5 时钟屏保
这是一个综合时间获取和窗体绘图的练习,可以在屏幕上显示当前时间,并且其位置可以随机移动,实现时钟屏保的效果。先从最简单的开始,即在屏幕上先输出一个当前时间:import turtle as timport timet.setup(1000, 600)now = time.ctime()t.write(now, font=("Times", 36, "bold"))t.done()输出为:其中获取当前时间是通过time模块的ctime方法来实现,并通过write方法结.
2022-02-26 21:22:30
834
原创 5.4 文本处理
这里主要介绍常见分词和词云的制作方法。无论是英文文本还是中文文本,都可以把它们看成是由很多词语组成的句子。通常处理文本的第一步就是需要进行分词,也就是从句子中拆分出各个词语。对于英文文本,不同的词语一般空格分隔,因此分词比较简单:strs = 'to be or not to be'print(strs.split())输出为:['to', 'be', 'or', 'not', 'to', 'be']而对于中文文本,不同的词语之间没有天然的分隔符:因此需要一些第三方的模块来
2022-02-25 21:12:31
1695
原创 5.3 窗体绘图
这里主要介绍利用turtle模块来进行窗体绘图,它提供一种非常类似于现实手工绘图的图形绘制方式。说到turtle为什么叫turtle,源于早期的一个面向儿童的计算机绘图语言就是turtle,因此Python这个模块在很大方面学习和参考了以前的绘制模式。...
2022-02-25 19:29:57
676
原创 5.2 时间处理
时间处理非常常见,时间在各种数据分析中也是一种重要的分析依据。下面围绕着几个常见问题来介绍:1)获取当前时间所谓当前时间,其实是指你运行代码的电脑上的时间。计算机系统每时每刻都在计时,可以通过专门的函数来获取这些当前时间信息。方法1:使用datetime模块中的datetime类型from datetime import datetimeprint(datetime.now())输出为:2022-02-22 17:49:26.474330前面的内容很好理解,分别是年月日
2022-02-22 19:12:55
717
原创 5.1 随机数
随机数在各种应用编写中很常见,这里主要介绍Python自带的random模块中常见随机函数的使用方法。下面的练习以掷骰子为例,随机生成1到6中任意一个整数,以此介绍各种常见产生随机数的函数使用方法。1)方法1:import randomnum = random.randint(1, 6)print(num)输出为1到6(包括1和6)的一个随机整数。randint返回两个参数之间的一个随机整数, 该数值包括参数指定的下限和上限。2)方法2:import randomnu
2022-02-22 17:42:30
2151
原创 4.6 素数函数
这里介绍一个素数函数的练习。首先需要解决如何判断素数。素数也称质数,指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。那么具体的判断思路是什么?这是编程写代码的基础。比如对于7这个数,我们可以使用2到7之前的所有整数(即2到6),分别去除这个7,比如先使用2:如果不能整除,就继续下一个3:还不能,就继续,直到6为止:如果在全部的除法运算中,没有发生一次整除,就表明这个7就是素数。反之,有些数,可能就会发生被整数的情况,如8在除以2时发生整除,就表明8不是素.
2022-02-19 15:30:56
2720
原创 4.5 模块和包
函数虽然提供了一种复用代码的能力,但是前面所介绍的各种函数使用方法都只能在一个代码文件中进行,如何实现更为灵活的复用效果呢?比如就像print和input函数那样,无需在当前代码中书写函数的定义即可使用。这就需要使用模块和包进行封装。我们先看看模块。所谓模块,其实就是把函数单独放在一个独立的py文件中。我们现在一直编写代码的所在就是一个称为“Exec.py”的文件。我们不妨在PyCharm中再新建一个Python文件,将新文件名称设置为“myFuncs.py”。此时,当前项目共有两个P.
2022-02-19 10:44:36
794
原创 4.4 特殊的函数定义和使用
1)先来看看匿名函数。函数的使用虽然方便,但是往往需要大量的格式定义,即使是很简单的功能,也往往需要很多语句,而且还需要我们给它起个名称。有时在函数定义非常多的场合,这是个很大的负担。所以,匿名函数应运而生。我们看个例子。比如我们还是获取两个数值中的最大值,这是我们在前面章节定义的函数:def max(num1, num2): if num1 > num2: return num1 else: return num2print(ma
2022-02-19 10:05:26
787
原创 4.3 变量的作用域
作用域代表着一个影响范围,作用域可以理解为变量的有效范围有了函数的定义,代码结构会逐渐变得复杂起来,此时经常遇到的一个问题就是变量名称的冲突问题。我们不妨从一个例子开始:def func(num): num = 2 print(num)num = 1func(num)print(num)输出为:21大家能看出输出结果为什么是这个吗?这里面虽然出现了很多个num变量(这里是为了练习,其实这种写法并不可取),但是它们并非是一个变量。我们按照代码的执行次序来
2022-02-19 09:39:27
440
原创 4.2 函数参数的灵活使用
1)先来看看默认值参数。函数参数虽然提供了可以改变函数功能与行为的可能性,但是它也给调用函数的代码提出了基本要求,那就是,对于有参数的函数而言,必须在调用时指定参数。比如上述的max函数,如果直接调用,系统会提示“TypeError: max() missing 2 required positional arguments: 'num1' and 'num2'”,含义就是说遗漏了两个必需的参数。显然,这样有时也并不方便,比如我们通过参数来设置按国家,对于国内用户而言,默认都是中国,但是仍然
2022-02-18 15:54:50
1452
3
原创 4.1 函数的定义和调用
我们回忆一下,在前面章节里,我们使用最多的有两个函数,一个是print,一个是input,两者分别解决了我们最为常见的输出和输入功能。但是我们知道这些函数是怎么实现的吗?我们其实也不必知道,只需使用它们就行了。而且对它们的使用也比较灵活,给它们不同的参数,它就会做不同的事情,比如:print('Hello!')print('Bye!')输出为:Hello!Bye!你传递给print不同的字符串,它就会输出不同的字符串,这个跟在函数名称后圆括号中的数据被称为参数,所以函数通过参数实现定制化
2022-02-18 15:40:14
527
原创 3.7 星号菱形
这主要练习for循环语句,练习目标是输出指定行数的星号菱形,如:为了能介绍清楚,我们可以从最简单的开始。比如先简化思路,输出三角形:甚至可以再简单些,以输出星号矩形:最后最简单的方式就是先输出一行星号:这个一行星号虽然简单,但是仅仅凭借目前学习的内容还真不能完成,如:cols = 5for i in range(cols): print('*')输出为:正常的print函数会在输出完内容后自动换行。因此,可以通过在print函数中设置end参
2022-02-18 11:08:20
1375
推荐系统相关重要外文电子图书
2016-02-24
eclipse3.3.2的中文语言包.rar
2008-11-19
Eclipse3.3的Web插件压缩包之五
2008-12-30
Eclipse3.3的Web插件压缩包之一
2008-12-30
Eclipse3.3的Web插件压缩包之二
2008-12-30
Eclipse3.3的Web插件压缩包之三
2008-12-30
Eclipse3.3的Web插件压缩包之四
2008-12-30
Eclipse3.3的Web插件压缩包之六
2008-12-30
信息检索类的著名外文图书电子版
2009-02-16
信息检索类的著名外文图书电子版
2009-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人