
(一)Python第三方库的获取和安装
Python第三方库依照安装方式灵活性和难易程度有三个方法:pip工具安装、自定义安装和文件安装。
pip工具安装
最常用且最高效的Python第三方库安装方式是采用pip工具安装。pip是Python官方提供并维护的在线第三方库安装工具。
pip install <拟安装库名>
pip是Python第三方库最主要的安装方式,可以安装超过90%以上的第三方库。然而,还有一些第三方库无法暂时用pip安装,此时,需要其他的安装方法。
pip工具与操作系统也有关系,在Mac OS X和Linux等操作系统中,pip工具几乎可以安装任何Python第三方库,在Windows操作系统中,有一些第三方库仍然需要用其他方式尝试安装。
自定义安装指按照第三方库提供的步骤和方式安装。第三方库都有主页用于维护库的代码和文档。以科学计算用的numpy为例,开发者维护的官方主页是:
http://www.numpy.org/
浏览该网页找到下载链接,如下:
http://www.scipy.org/scipylib/download.html
进而根据指示步骤安装。
执行pip -h将列出pip常用的子命令
Usage:
pip <command> [options]
Commands:
install Install packages.
download Download packages.
uninstall Uninstall packages.
freeze Output installed packages in requirements format.
list List installed packages.
show Show information about installed packages.
search Search PyPI for packages.
wheel Build wheels from your requirements.
hash Compute hashes of package archives.
completion A helper command used for command completion
help Show help for commands.
pip的uninstall子命令可以卸载一个已经安装的第三方库,格式如下:
pip uninstall <拟卸载库名>
pip的list子命令可以列出当前系统中已经安装的第三方库,格式如下:
pip list
PyInstaller是一个十分有用的Python第三方库,它能够在Windows、Linux、Mac OS X等操作系统下将Python源文件打包,变成直接可运行的可执行文件。
通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立文件方便传递和管理。
:\>pip install PyInstaller
(二)PyInstaller库与程序打包
使用PyInstaller库对Python源文件打包十分简单,使用方法如下:
:\>PyInstaller <Python源程序文件名>
执行完毕后,源文件所在目录将生成dist和build两个文件夹。最终的打包程序在dist内部与源文件同名的目录中。
可以通过-F参数对Python源文件生成一个独立的可执行文件,如下:
:\>PyInstaller -F <Python源程序文件名>
:\>PyInstaller -F SnowView.py
执行后在dist目录中出现了SnowView.exe文件,没有任何依赖库,执行它即可显示雪景效果。
PyInstaller有一些常用参数
参数 | 功能 |
-h, --help | 查看帮助 |
--clean | 清理打包过程中的临时文件 |
-D, --onedir | 默认值,生成dist目录 |
-F, --onefile | 在dist文件夹中只生成独立的打包文件 |
-i <图标文件名.ico > | 指定打包程序使用的图标(icon)文件 |
(三 )jieba库概述
由于中文文本中的单词不是通过空格或者标点符号分割,中文及类似语言存在一个重要的“分词”问题。
jieba(“结巴”)是Python中一个重要的第三方中文分词函数库。
:\>pip install jieba
jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词,jieba还提供增加自定义中文单词的功能。
jieba库支持三种分词模式:精确模式,将句子最精确地切开,适合文本分析;全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
对中文分词来说,jieba库只需要一行代码即可。
>>>import jieba
>>>jieba.lcut("全国计算机等级考试")
Building prefix dict from the default dictionary ...
Loading model from cache C:\AppData\Local\Temp\jieba.cache
Loading model cost 1.001 seconds.
Prefix dict has been built succesfully.
['全国', '计算机', '等级', '考试']
jieba库与中文分词
jieba.lcut(s)是最常用的中文分词函数,用于精准模式,即将字符串分割成等量的中文词组,返回结果是列表类型。
>>>import jieba
>>>ls = jieba.lcut("全国计算机等级考试Python科目")
>>>print(ls)
['全国', '计算机', '等级', '考试', 'Python', '科目']
jieba.lcut(s, cut_all = True)用于全模式,即将字符串的所有分词可能均列出来,返回结果是列表类型,冗余性最大。
>>>import jieba
>>>ls = jieba.lcut("全国计算机等级考试Python科目", cut_all=True)
>>>print(ls)
['全国', '国计', '计算', '计算机', '算机', '等级', '考试', 'Python', '科目']
jieba.lcut_for_search(s)返回搜索引擎模式,该模式首先执行精确模式,然后再对其中长词进一步切分获得最终结果。
>>>import jieba
>>>ls = jieba.lcut_for_search("全国计算机等级考试Python科目")
>>>print(ls)
['全国', '计算', '算机', '计算机', '等级', '考试', 'Python', '科目']
搜索引擎模式更倾向于寻找短词语,这种方式具有一定冗余度,但冗余度相比全模式较少。
如果希望对文本准确分词,不产生冗余,只能选择jieba.lcut(s)函数,即精确模式。如果希望对文本分词更准确,不漏掉任何可能的分词结果,请选用全模式。如果没想好怎么用,可以使用搜索引擎模式。
jieba.add_word()函数,顾名思义,用来向jieba词库增加新的单词。
>>>import jieba
>>>jieba.add_word("Python科目")
>>>ls = jieba.lcut("全国计算机等级考试Python科目")
>>>print(ls)
['全国', '计算机', '等级', '考试', 'Python科目']
(四)wordcloud库概述
词云以词语为基本单元,根据其在文本中出现的频率设计不同大小以形成视觉上不同效果,形成“关键词云层”或“关键词渲染”,从而使读者只要“一瞥”即可领略文本的主旨。
wordcloud库是专门用于根据文本生成词云的Python第三方库,十分常用且有趣。
装wordcloud库在Windows的cmd命令行使用如下命令:
:\>pip install wordcloud
wordcloud库的使用十分简单,以一个字符串为例。其中,产生词云只需要一行语句,在第三行,并可以将词云保存为图片。
wordcloud库的使用十分简单,以一个字符串为例。其中,产生词云只需要一行语句,在第三行,并可以将词云保存为图片。
wordcloud库与可视化词云
在生成词云时,wordcloud默认会以空格或标点为分隔符对目标文本进行分词处理。对于中文文本,分词处理需要由用户来完成。一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
import jieba
from wordcloud import WordCloud
txt = '程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。'
words = jieba.lcut(txt) # 精确分词
newtxt = ' '.join(words) # 空格拼接
wordcloud = WordCloud(font_path="msyh.ttc").generate(newtxt)
wordcloud.to_file('词云中文例子图.png') # 保存图片
WordCloud对象创建的常用参数
参数 | 功能 |
font_path | 指定字体文件的完整路径,默认None |
width | 生成图片宽度,默认400像素 |
height | 生成图片高度,默认200像素 |
mask | 词云形状,默认None,即,方形图 |
min_font_size | 词云中最小的字体字号,默认4号 |
font_step | 字号步进间隔,默认1 |
min_font_size | 词云中最大的字体字号,默认None,根据高度自动调节 |
max_words | 词云图中最大词数,默认200 |
stopwords | 被排除词列表,排除词不在词云中显示 |
background_color | 图片背景颜色,默认黑色 |
WordCloud类的常用方法
方法 | 功能 |
generate(text) | 由text文本生成词云 |
to_file(filename) | 将词云图保存为名为filename的文件 |
下面以Alice梦游仙境为例,展示参数、方法的使用。


from wordcloud import WordCloud
from scipy.misc import imread
mask = imread('AliceMask.png')
with open('AliceInWonderland.txt', 'r', encoding='utf-8') as file:
text = file.read()
wordcloud = WordCloud(background_color="white", \
width=800, \
height=600, \
max_words=200, \
max_font_size=80, \
mask = mask, \
).generate(text)
# 保存图片
wordcloud.to_file('AliceInWonderland.png')
其中,from scipy.misc import imread一行用于将AliceMask.png读取为nd-array类型,用于后面传递给mask参数使用。(这个库函数隶属于scipy库,pip在安装wordcloud库时会自动安装依赖库。)
实例解析:《红楼梦》人物出场词云
《红楼梦》人物出场统计
《红楼梦》是一本鸿篇巨著,里面出现了几百个各具特色的人物。每次读这本经典作品都会想一个问题,全书这些人物谁出场最多呢?一起来用Python回答这个问题吧。
人物出场统计涉及对词汇的统计。中文文章需要分词才能进行词频统计,这需要用到jieba库。
(略)

