百度paddlepaddle七天打卡之青你实战

Oria ·
更新时间:2024-11-13
· 960 次阅读

心得

七天虽短,但是在知识迅速增加的今天显得十分必要。七天的课程总体来说,阶段性的进步让我们有机会在短时间内接触到先进的知识体系。这离不开百度paddlepaddle的努力,课程阶梯难度的设置效果很好,作业反馈体系也很充分,主教班班老师都是超级好(吹爆xxxxxxxxxxx)。Paddle-hub的推出真的让我感觉paddle很有希望。
给后来者的建议是:看直播紧跟老师的脚步,多看群里讨论,充分利用paddle给的demo资源,有时候做一下代码的搬运工的确是可以提高效率。实战就是实战,不是考验你是否能自己写出来。而是看你如何利用别人的成果改善后创新。

总述一下7天课程的流程:
python基础,python爬虫基础爬取选手信息,matplotlib对爬取的数据进行分布上的可视化,paddlehub自制数据集选手分类,大作业完成评论内容的分析、绘制词云、审核内容。虽然是阶梯性的进步,但是有个小的建议给paddle:可以适当延长下训练营的周期(不过感觉7天很合适,可以考虑难度分级)。其实感觉如果完全没基础的话7天打卡很难跟下来。

之后话不多说,进行技术内容上的分析。

技术内容分析: Day1

个人认为就是扫盲,剔除完全不想学习一门新语言的同学。但也考验一部分细节吧,或者根本称不上细节的基本操作。没什么好讲,直接上代码。

def table(): #在这里写下您的乘法口诀表代码吧! for i in range(0, 10): for j in range(1, i+1): print('{}*{}={:<4}'.format(j, i, i*j), end='') print('') if __name__ == '__main__': table() #导入OS模块 import os #待搜索的目录路径 path = "Day1-homework" #待搜索的名称 filename = "2020" #定义保存结果的数组 result = [] def findfiles(): #在这里写下您的查找文件代码吧! for relpath, dirs, files in os.walk(path): for name in files: if filename in name: full_path = os.path.join(relpath, name) result.append(full_path) for i in range(0, len(result)): print([i+1, result[i]]) if __name__ == '__main__': findfiles() Day2

爬虫基本的操作,requests,BeautifuSoup,感觉模式性都十分强,直接套用模板即可。之前在群里看到有人爬了2万多张,有点可笑。当然本人第一次也是这种傻,本质上就是没有清空你保存图片链接的列表,仅此而已。要弄清楚是根据每个明星生成的链接的列表,生成完直接下载,下载完到下一个明星时记得清空就好。上代码:

def crawl_pic_urls(): ''' 爬取每个选手的百度百科图片,并保存 ''' with open('work/'+ today + '.json', 'r', encoding='UTF-8') as file: json_array = json.loads(file.read()) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } count=0 for star in json_array: pic_urls=[] name = star['name'] link = star['link'] #!!!请在以下完成对每个选手图片的爬取,将所有图片url存储在一个列表pic_urls中!!! response = requests.get(link, headers=headers) # 使用headers避免访问受限 soup = BeautifulSoup(response.content, 'lxml') tables=soup.find_all('div',class_="summary-pic") #print(tables) for table in tables: Ahref=table.a['href'] album_url='https://baike.baidu.com'+Ahref response = requests.get(album_url, headers=headers) soup = BeautifulSoup(response.content, 'lxml') pic_div=soup.find('div',class_="pic-list") img_album=pic_div.find_all('img') for img in img_album: pic_urls.append(img['src']) #!!!根据图片链接列表pic_urls, 下载所有图片,保存在以name命名的文件夹中!!! down_pic(name,pic_urls) Day3

任务就是画出体重分布的饼图,前三天我也没看视频,都是自己上网找找文档和现成的代码。“我们不做代码的生产者,我们是代码的搬运工”说的就是我,毕竟有学校任务压在头上,不能只顾这边。建议就是:大概理解为什么这么些,具体细节看文档,一定要学会看文档!贴代码:

%matplotlib inline with open('data/data31557/20200422.json', 'r', encoding='UTF-8') as file: json_array = json.loads(file.read()) countA=countB=countC=countD=0 for star in json_array: weight=star['weight'] weight=int(weight[0:2]) if weight in range(30,46): countA+=1; elif weight in range(46,51): countB+=1; elif weight in range(51,56): countC+=1; else: countD+=1; weight_list=[countA,countB,countC,countD] labels=['55'] colors=['green','orange','blue','red'] plt.pie(weight_list,labels=labels,colors=colors, labeldistance = 1.1,autopct = '%3.1f%%',shadow = False, startangle = 90,pctdistance = 0.6) plt.axis('equal')

这里插一句:每天学的真的是会作用到最后一天的大作业,尤其是今天的matplotlib中文字体的调整,最后一天的第一道坎就是这样,卡住了不少人。但是好多人不知道解决方法就在第三天写好的代码里面。用这些虚拟环境和别人写好的,不要无脑的运行,好歹看一下做了什么,有个印象。

Day4

就是paddlehub的简单应用,教你自定义数据集。这种预训练好的模型其实非常适合我们非研究型人员使用,提高了效率,减少了计算资源的消耗。Paddle也明白,这是生态上的构建这几天使用modelarts和hilens那边的实现也发现生态是个大问题需要多少人员一点点地构建,我们这些使用者也终将有一天将要成为生态构筑的一员。话这么多是因为day4我觉得不需要贴代码。用来填充字数(手动狗头)。

Day5

终于来到了过五关斩六将的终极超级无敌大作业。简单来讲就是把前几天所学综合,说是综合,还是让你把不同模块写出来,然后拼接一下就好。这里详细分析一下:
任务分解:爬取评论、清理数据、分词、词频统计、绘制词云、内容审查。

难点一matplotlib中文字体

之前说了,解法就在day3藏着(明白着放着),看你是不是无脑了。我做的时候就直接把字体文件复制到matplot里面的ttf文件结束(具体看报错然后百度)。
在这里插入图片描述
(一种报错)
爆出上面的错误,请仔细读下,发现这个路径没有字体,所以解决方案就是直接喂给它

# 将字体文件复制到matplotlib字体路径 !cp simhei.ttf /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/

难点二、如何找评论接口、更新lastID多次请求评论
承认本人之前也不会,老师教了一个很好的方法:F12里面
原创文章 2获赞 11访问量 302 关注 私信 展开阅读全文
作者:·空感自诩”



paddlepaddle 实战

需要 登录 后方可回复, 如果你还没有账号请 注册新账号