Python入门与词频分析初步

一、python与其他语言的区别

1.python作为一门解释性语言,与java、C等语言相比,第一个特点就是python不用编译,可以像脚本一样直接运行。前几天咱们工作室有同学问我,他的编程界面为什么跟别人的不一样,是因为他使用的是shell,而别人使用的是IDE。python有四种运行方式,第一种是通过python自带的IDLE,利用shell命令行提示符,输入后按回车就会有输出,是交互式的;如:

《Python入门与词频分析初步》

第二种是以脚本方式运行,写好python脚本后,在py脚本所在目录下输入python hello.py即可执行,如:

《Python入门与词频分析初步》

第三种方式是直接在命令提示符下运行,输入python,回车就进入python环境 ,这种方式跟第一种差不多,如果要退出使用Ctrl+Z,然后回车;

第四种是直接使用python的IDE,推荐使用的是pycharm。

2.python不同与其他语言的第二个特点是用缩进来区分语句块,而不是用{},所以编程习惯不好的同学在这里就会吃亏了;

3.python目前有两个版本,Python2和python3,两个版本除了语法有不同之外,还有很大的区别;你要问我学习哪个版本比较好,我只能说对于新手来说想学数据分析最好用2,学姐就吃过苦头啦,因为python3不兼容很多2 的库,并且很多数据分析的包还没有,据悉,python2至少到2020年还不会消失,可以学2入门,再转到3也不迟;我一个小白就不在这里装大佬啦,给大家提供一个学习python的网址:菜鸟教程,大家可以先在这里学再转到数据分析;

4.python的最大特点,它具有强大的大三方库,也就是说,很多东西不需要你编写,别人已经替你写好啦,你就只需要下载,导入,调用就行了,这也是为什么现在python这么流行的原因之一。

好,说了这么多终于可以进入我们的词频分析啦,在分析之前先介绍一下环境,安装我们今天例子所需要的包

二、环境介绍

1.想学数据分析必须要了解Anaconda,Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda,numpy,scipy在内的超过180个科学包及其依赖项。由于python2和python3不兼容的问题,环境的管理变得尤为重要,大家作为初学者先不用安装anaconda,用不到1000多个库,毕竟要占几G的空间,但必须要了解 。

2.pip:用于安装和管理软件包的包管理器,请确保你的环境中有pip,执行python –version查看,如没有,windows环境下需要下载,下载地址:https://pypi.python.org/pypi/pip#downloads ,下载解压后,进入到解压目录,执行如下命令:

python setup.py install

如果下载安装后执行python –version报错,则需要配环境变量。

3.pip装好后就可以安装其他的科学包啦,我们今天用到的第一个包:wordcloud,用它可以将文本中的关键词进行总结,并根据出现的频率生成词云 ,安装命令如下:

pip install wordcloud

在安装的过程中已经自动地帮我们把 大名鼎鼎的matplotlib和numpy装好啦,如图:《Python入门与词频分析初步》

可能有些同学安装的过程中会报错,这时候你需要在https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud根据你电脑系统下载,如果是32位系统,下载后输入命令: pip install wordcloud‑1.4.1‑cp36‑cp36m‑win32.whl

《Python入门与词频分析初步》

4.jieba:中文分词工具,因为中文不像英文那样用空格可以区分单词,用jieba可以将中文文本分成若干个词组,安装 命令如下:

pip install jieba

三、词频分析案例

所有的准备工作都做完后就可以开始做词云分析啦!给大家讲一种最简单的词云,用几行代码就可以生成!

1.生成英文词云

请准备好一篇txt文档,我用的是自己的一篇有关python爬虫调查的英文论文 ,把文档放在demo_wordcloud文件夹里,打开控制台,进入demo_wordcloud文件夹,输入python后回车,首先我们输入如下语句:

filename = "bigdata.txt"
mytext = open(filename).read()  #读取文件,并存放在mytext变量中
mytext #看看输出是否正常

这时我们就可以在控制台看到我们的文章啦

《Python入门与词频分析初步》

但是我们会发现不太美观,并且一堆文字不知道重点是什么,没关系,马上我们呼唤词云包,让它来帮我们找文章重点与关键词,并可视化输出 ,输入如下语句:

from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)

这时词云已经生成了,你没有看错,制作词云的核心代码就是这两行,但你会说,学姐,在哪呢?怎么没看见呢?骗人的吧?别着急,马上可视化出来,这时我们导入python中大名鼎鼎的matplotlib绘图工具包中的pyplot模块

import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation=’bilinear’)
plt.axis(“off”)

接下来就是见证奇迹的时刻了,输入plt.show()后,词云图就出来啦!

《Python入门与词频分析初步》

是不是很激动?通过这张图,我们可以看到高频词出现的字号比较大,且颜色对比也很明显,其实字体颜色甚至词云的形状我们都可以设置,这里我们就不讲了,有兴趣的同学可以自己研究。接下来讲第二个例子,生成中文词云。

2.生成中文词云

看了上面的例子是不是有同学想照葫芦画瓢做中文了?那你肯定会遇到很多问题,中文要麻烦一点,首先需要下载一种中文字体,不然会出现方框没有字,学姐使用的是simsun.ttf,请在这里下载,下载好后同样放在demo_wordcloud下,中文使用jieba分词工具,代码如下:

#-*-coding:utf-8-*-    
import matplotlib.pyplot as plt  
from wordcloud import WordCloud  
import jieba  
  
text = open("大数据.txt","rb").read()  
#结巴分词  
mytext = jieba.cut(text,cut_all=False)  #采用精准模式,true为全模式
wt = " /".join(mytext)  
  
#设置词云  
wc = WordCloud(background_color = "black", #设置背景颜色  
               max_words = 1000, #设置最大显示的字数  
               font_path = "simsun.ttf",  #设置中文字体,词云默认字体是“DroidSansMono.ttf字体库”,不支持中文 
               max_font_size = 50,  #设置字体最大值  
               random_state = 30, #设置有多少种随机生成状态,即有多少种配色方案  
    )  
mycloud= wc.generate(wt)#生成词云  
  
#展示词云图  
plt.imshow(mycloud)  
plt.axis("off")  
plt.show() 

效果图如下:

《Python入门与词频分析初步》

到现在为止我们就完成了两个简单的例子啦,但是不知道大家发现没有,中文词云图里面像“因此”这种词出现的频率较多,所以图里面就比较明显,那怎么才能去掉这种停用词呢?怎样才能生成形状不一样的词云图呢?留给大家去思考。

    原文作者:joychun
    原文地址: https://blog.csdn.net/joychun/article/details/80700489
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞