暑假开始了,除了要出去转转祖国大好山河旅游以外,还要在编程的世界中旅游一番。
上个寒假已经给他培训过python的基础知识,认识了变量、列表、函数、类,但孩子最感兴趣的还是turtle模块,可以画各种有趣的图形。
这个暑假,就要用python做点实际小项目了,打算做数据分析、画图和做游戏的案例。首先从数据分析开始,了解什么是自然语言处理,简单来说,就是让计算机具备文字阅读能力,可以帮助人们处理各种文档,提高效率,降低成本。比如分析海量的商品评论,可以挖掘用户对本商品哪里不满意,帮助商家提高产品品质。如果靠人工分析商品评论得到商品满意度和具体哪里需要改进,那成本可就太大了。还比如可以用户画像,匹配招聘者与用人单位。还比如可以机器翻译,使计算机能够理解文本含义达到意译的程度。
接着是自然语言处理工具的介绍,国内的有哈工大语言云LTP,中科院的NLPIR,国外的有结巴分词,snownlp。但综合起来,还是jieba工具更简单易用。本次案例分析就以jieba工具为主。
最后,给他介绍了jieba模块的导入import jieba,jieba模块的分词模式jieba.cut(),让他自己照着模板敲了几句代码,可以把任何几句话分成词语的组合。
看到他自己敲代码还挺兴奋的。时间大概30min,以闲扯的方式讲解,就当玩了。下次课做李白诗词的数据分析。
上次课已经简单介绍了自然语言处理的有力工具jieba。这次课以李白的诗词为数据源,进行分析和统计字频。
首先准备好李白写过的所有诗词,放在一个txt文件中,起名为libai.txt,我找到了700多首放在了TXT中。据说李白写过1000多首诗,他活了61岁,平均一年20首左右,产量实在太惊人了。
接着,了解本次课要讲得读文件(open(filenamer, "r").read()),写文件(open(filenamew, "w"))和字典知识{"李白":775,"万里":25,"云":540}。
基础知识有了,本次程序实现的步骤是:1读文件,把李白诗词读取到一个变量中;2把李白诗词按字拆分,拆分的结果是字和字频,以字典形式存储;3字典按照字频排序;4把这个字典写入到txt文中。
最后开始敲代码,关键代码如下:
#1读取文件
article = open(filenamer, "r").read()
#2拆分字,按字典形式存储
for i in article: resoult[i]=article.count(i)
#3保存结果
for k in resoult1: output_0.write(str(k))
全部敲完,大概13句代码。但要理解意思,并学会修改不是那么容易。不过步骤和代码都有了,孩子可以明天再试试对杜甫或者王维的诗歌继续分字,统计字频了。
结果如下:
这些时间大概1个多小时。从结果看,李白很自恋啊,白这个字出现那么多次,接着就是云、天、山和风等。看来以景抒情挺多的,浪漫主义诗人吗。
孩子学习刚开始还有困难,但慢慢理解了,就能越做越快了。世上任何旅程都得一步一个脚印的走下去,走远了,回首才有意义,不知不觉走了那么多路,经过了那么多地方,领略了那么多风景。
今天在李白诗词分析字频基础上,让孩子准备好杜甫诗词txt,然后修改昨天代码,得出杜甫诗词常用字和字频。
结果尴尬了,打开杜甫txt文件,居然读取不了,说编码错误。我开始找问题,李白诗词没有问题,杜甫的就出问题了?一点一点找,发现有个字,“”出问题了,识别不了。我估计这个字没有被中文编码,删除这个字,读文件也修改了一下,把编码错误全忽略掉:
with open('dufu.txt', encoding='gb18030', errors='ignore') as fr:
别的也没有时间说了,又给他简单介绍下,用列表怎么保存字和字频,选择排序是怎么回事,今天草草结束。
留言与评论(共有 0 条评论) “” |