人工智能老师教AI,AI审核人工智能领域 横批:百度飞桨

2024-02-01 08:38

本文主要是介绍人工智能老师教AI,AI审核人工智能领域 横批:百度飞桨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

       不觉”百度7日打卡Python+AI“学习已经过去5天,也该发点心得 了,收获颇丰啊

中间也踏过了很多小坑坑。分享一下了。

我的学习来源于百度AI aistudio。

https://aistudio.baidu.com/bdcpu6/user/281958/436937/notebooks/436937.ipynb?redirects=1

第五天的作业要求如下:

综合大作业

第一步:爱奇艺《青春有你2》评论数据爬取(参考链接:https://www.iqiyi.com/v_19ryfkiv8w.html#curid=15068699100_9f9bab7e0d1e30c494622af777f4ba39)

  • 爬取任意一期正片视频下评论
  • 评论条数不少于1000条

第二步:词频统计并可视化展示

  • 数据预处理:清理清洗评论中特殊字符(如:@#¥%、emoji表情符),清洗后结果存储为txt文档
  • 中文分词:添加新增词(如:青你、奥利给、冲鸭),去除停用词(如:哦、因此、不然、也好、但是)
  • 统计top10高频词
  • 可视化展示高频词

第三步:绘制词云

  • 根据词频生成词云
  • 可选项-添加背景图片,根据背景图片轮廓生成词云

第四步:结合PaddleHub,对评论进行内容审核

 

1、需要的配置和准备

  • 中文分词需要jieba
  • 词云绘制需要wordcloud
  • 可视化展示中需要的中文字体
  • 网上公开资源中找一个中文停用词表
  • 根据分词结果自己制作新增词表
  • 准备一张词云背景图(附加项,不做要求,可用hub抠图实现)
  • paddlehub配置

2、字体安装

#!wget https://mydueros.cdn.bcebos.com/font/simhei.ttf # 下载中文字体 

 1 坑

如果下载不下来,可以去第2天作业中下载该字体

!cp simhei.ttf /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/

# #创建字体目录fonts

#!mkdir .fonts

# # 复制字体文件到该路径

!cp simhei.ttf .fonts/

以上字体拷贝也要做,否则如下图

 3、模型安装

#安装模型

#!hub install porn_detection_lstm==1.1.0

#!pip install --upgrade paddlehub

不安装,内容分析时会报错。

#!pip install wordcloud  #云词库安装 不安装云词库运行时报错

 

4、准备爬评论

2坑

 &callback=jsonp_15xxxxxxxxxxxxxxxxxxx这个要去掉,否则返回的数据不是标准json,分析时出错。

5、可以正确完成作业的代码展示

5.1 引入所需要库

 

#请求爱奇艺评论接口,返回response信息
def getMovieinfo(url):'''请求爱奇艺评论接口,返回response信息参数  url: 评论的url:return: response信息'''session=requests.Session()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','Accept':'Application/json',}#url='https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&content_id=15068699100&hot_size=0&last_id=240883095621&page=&page_size=20&types=time&callback=jsonp_1587991085438_40156'                         try:#response = requests.get(url,headers=headers)response=session.get(url,headers=headers)#print(response.status_code)if response.status_code==200:return response.textexcept Exception as e:print(e)return Nonereturn None#解析json数据,获取评论
def saveMovieInfoToFile(lastId,txtlst):'''解析json数据,获取评论参数  lastId:最后一条评论ID  arr:存放文本的list:return: 新的lastId'''url='https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&content_id=15068699100&hot_size=0&last_id='url=url+str(lastId)responseTxt=getMovieinfo(url)#pdb.set_trace()responseJson=json.loads(responseTxt)comments=responseJson['data']['comments']for var  in comments:if 'content' in var.keys():#print(var['content'])txtlst.append(var['content'])lastId=str(var['id'])return str(lastId)
#去除文本中特殊字符
def clear_special_char(content):'''正则处理特殊字符参数 content:原文本return: 清除后的文本'''#正则表达式过滤非中英文和数字的字符串s=re.sub(r'</?(.+?)>|&nbsp;|\t\r',"",content)s=re.sub('[^\u4e00-\u9fa5^a-z^A-Z^0-9]', '', content)s=re.sub(r'\n',' ',s)s=re.sub(r'\*','\\*',s)s=re.sub('a-zA-Z','',s)#s=re.sub('^\d+(\.\d+)?$','',s)s = re.sub('^\d+(\.\d+)?$', '', s)  # 去掉纯数字#去掉控制字符s = re.sub('[\001\002\003\004\005\006\007\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a]+', '', s)  # 去除不可见字符 noqareturn s

 

def fenci(text):'''利用jieba进行分词参数 text:需要分词的句子或文本return:分词结果'''jieba.load_userdict('self_words.txt') #自定义分词seg=jieba.lcut(text,cut_all=False)return seg
def stopwordslist(file_path):'''创建停用词表参数 file_path:停用词文本路径return:停用词list'''stopwords=[line.strip() for line in open(file_path,encoding='utf-8').readline()]return stopwordsdef movestopwords(sentence,stopwords,counts):'''去除停用词,统计词频参数 file_path:停用词文本路径 stopwords:停用词list counts: 词频统计结果return:None'''out=[]for word in sentence:if word not in stopwords:if len(word)!=1:counts[word]=counts.get(word,0)+1return Nonedef drawcounts(counts,num):'''绘制词频统计表参数 counts: 词频统计结果 num:绘制topNreturn:none'''x_aixs=[]y_axis=[]c_order=sorted(counts.items(),key=lambda x:x[1],reverse=True)for c in c_order[:num]:x_aixs.append(c[0])y_axis.append(c[1])#设置中文显示#matplotlib.rcParams['font.sans-serif']=['SimHei'] #默认字体#matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为SimHei显示中文plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为SimHei显示中文plt.rcParams['axes.unicode_minus']=False # 解决图像是负号‘-’显示为方块的问题plt.figure(figsize=(20, 15))plt.bar(range(len(y_axis)),y_axis,color='r',tick_label=x_aixs,facecolor='#9999ff',edgecolor='white')# 这里是调节横坐标的倾斜度,rotation是度数,以及设置刻度字体大小plt.xticks(rotation=45, fontsize=20)plt.yticks(fontsize=20)plt.legend()#plt.bar(x_aixs,y_axis)plt.title('词频统计结果表')plt.savefig('high_words_pic.jpg')plt.show()#return Nonedef drawcloud(word_f):'''根据词频绘制词云图参数 word_f:统计出的词频结果return:none'''# 加载背景图片cloud_mask = np.array(Image.open('/home/aistudio/cloudBg.png'))# 忽略显示的词st = {'不是', '还是', '什么', '那么', '怎么', '就是', '没有'}font = r'/home/aistudio/.fonts/simhei.ttf'#pdb.set_trace();# 生成wordcloud对象wc = WordCloud(font_path=font,background_color='white',margin=5,mask=cloud_mask,max_words=200,min_font_size=10,max_font_size=100,width=800,height=600,relative_scaling=0.3,random_state=20,stopwords=st)wc.fit_words(word_f)  # 这种方式也可以#wc.generate_from_frequencies(word_f)# 显示生成的词云plt.imshow(wc)plt.axis("off")plt.show()wc.to_file('pic.png')def text_detection(text,file_path):'''使用hub对评论进行内容分析text:返回列表 file_path:评论文件路径return:分析结果'''porn_detection_lstm=hub.Module('porn_detection_lstm')with open(file_path,'r',encoding='utf-8') as f:for Line in f:if len(Line.strip())==1:continueelse:text.append(Line)f.close()input_dict={"text":text}result=porn_detection_lstm.detection(data=input_dict,use_gpu=False,batch_size=1)#print(result)for index,item in enumerate(result):if item['porn_detection_key']=='porn':print(item['text'],item['porn_probs'])return result#评论是多分页的,得多次请求爱奇艺的评论接口才能获取多页评论,有些评论含有表情、特殊字符之类的
#num 是页数,一页10条评论,假如爬取1000条评论,设置num=100  主程序
if __name__ == "__main__":txlst=[] #评论内容列表num=111lastId='0' # 接口最后一个人员idwith open('aqytl.txt','a',encoding='utf-8') as f: #追加方式打开文件for i in range(num):saveMovieInfoToFile(lastId,txlst)time.sleep(0.5) #sleep 0.5sfor item in txlst:item=clear_special_char(item)if item.strip()!='':try:f.write(item+'\n')except Exception as e:print('评论内容有特殊字符未清理')print('共爬取评论:'+str(len(txlst)))with open('aqytl.txt','r',encoding='utf-8') as fn:counts={}for Line in fn:words=fenci(Line)stopwords=stopwordslist('cn_stopwords.txt')movestopwords(words,stopwords,counts)drawcounts(counts,10) #top 10 高频词drawcloud(counts)fn.close()'''user hub 内容分析'''file_path='aqytl.txt'test_text=[]text_detection(test_text,file_path)display(Image.open('high_words_pic.jpg')) #显示生成的高频柱状图像display(Image.open('pic.png')) #显示生成的词云图像

6 最后的输出结果 

6.1 柱状图 

 

6.2 云词图 

总结: 

匆匆忙忙,学了很多,但还不牢固,需要再多练习,才能由Python小白升级。欢迎大家交流学习。

本次学习所得主要来自百度AI学习,谢谢各位老师及班班,还有同学的帮助!

https://aistudio.baidu.com/

这篇关于人工智能老师教AI,AI审核人工智能领域 横批:百度飞桨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666712

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti