时间:2021/09/04
1.python第三方库的获取和安装
1.1 pip工具安装
- 最常用且最高效的python第三方库安装方式是采用pip工具安装。
- pip是python官方提供并维护的在线第三方库安装工具。
- 使用pip安装第三方库需要联网
- 安装语法:
pip install 库名
- 安装路径中的pip.exe实际上就是需要安装的工具
- win+R打开,输入cmd
- 输入安装语法 pip install 库名
1.2 自定义安装
- 自定义安装指按照第三方库提供的步骤和方式安装。
- 第三方库都有主页用于维护库的代码和文档。
- 自定义安装一般适用于在pip中尚无登记或安装失败的第三方库
1.3 文件安装
- 由于python某些第三方库仅提供源代码,通过pip下载文件后无法在windows系统编译安装,会导致第三方库安装失败。
2.pip工具使用
-
除了进行第三方库安装之外,pip工具能对第三方库进行基本的维护。 -
执行 pip -h 将列出pip常用的子命令 -
pip支持安装(install)、下载(download)、卸载(uninstall)、列表(list)、查看(show)、查找(search)等一系列安装和维护子命令。 -
pip的uninstall子命令可以卸载一个已经安装的第三方库 -
语法格式:
pip uninstall 模块名称
2.1 Pyinstaller库概述
- Pyinstaller是一个十分有用的python第三方库,能够在windows、linux、macOS等操作系统下将python源文件打包,变成直接可运行的可执行文件。
- 通过对源文件打包,python程序可以在没有安装python的环境中运行,也可以作为一个独立文件方便传递和管理。pyinstaller需要在命令行下用pip工具安装。
pip install PyInstaller
- pip指令可以将pyinstaller库自动安装到python解释器目录,与pip或pip3命令路径相同,可以直接在命令行调用。
- pyinstaller针对不同操作系统打包生成的可执行文件都不同。
2.2 pyinstaller库与程序打包
- 使用pyinstaller库对python源文件打包十分简单。
- 语法结构:
Pyinstaller 源文件名
-
执行完毕后,源文件所在目录将生成dist和build两个文件夹。 -
build目录是pyinstaller存储临时文件的目录,可以安全删除。 -
最终的打包程序在dist内部与源文件中的目录 -
目录中其它文件是可执行文件的动态链接库 -
可以通过 -F参数对python源文件生成一个独立的可执行文件
pyinstaller -F a.py
print('hello')
input()
参数 | 功能 |
---|
-h、-help | 查看帮助 | –clean | 清理打包过程中的临时文件 | -D,–onedir | 默认值,生成dist目录 | -F,–onefile | 在dist文件夹中只能生成独立的打包文件 | -i<图标文件名.ico> | 指定打包程序使用的图标icon文件(以下演示) |
1.下载一个.ico后缀的图标
2.-i加图标路径及名称 -F加源码路径及名称
3.生成一个包含图标的可执行文件
2.3 jieba库概述
- 由于中文文本的单词不是通过空格或标点符号分割,中文及类似语言存在一个重要的“分词”问题。
- jieba是python中一个重要的第三方中文分词函数库,能够将一段中文文本分割成中文词语的序列。jieba库需要通过pip指令安装。
pip install jieba
-
jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。 -
除了分词,jieba还提供增加自定义中文单词的功能。 -
jieba库支持三种分词模式:
- 精确模式,将句子最精确地切开,适合文本分析
- 全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义
- 搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
-
对中文分词来说,jieba只需要一行代码。(英文文本不存在分词问题)
2.3.1 jieba库与中文分词
- jieba库主要提供中文分词功能,可以辅助自定义分词词典
- jieba库常用的分词函数
函数 | 功能 |
---|
jieba.lcut(s) | 精确模式,返回一个列表类型 | jieba.lcut(s,cut_all=True) | 全模式,返回一个列表类型 | jieba.lcut_for_search(s) | 搜索引擎模式,返回一个列表类型 | jieba.add_word(w) | 向分词字典中增加新词w |
1.jieba.lcut(s)是最常用的中文分词函数,用于精确模式,即将字符串分割成等量的中文词组,返回结果是列表类型。
import jieba
ls=jieba.lcut('全国计算机等级考试python科目')
print(ls)
2.jieba.lcut(s,cut_all=True)用于全模式,即将字符串的所有分词可能均列出来,返回结果是列表类型,冗余性最大。
import jieba
ls=jieba.lcut('全国计算机等级考试python科目',cut_all=True)
print(ls)
注:相比精确模式,全模式会找到所有分词可能,比如“计算机”被分词为3个可能词语“计算”、“计算机”、“算机”
3.jieba.lcut_for_search(s)返回搜索引擎模式,该模式首先执行精确模式,然后再对其中长词进一步切分获得最终结果。
import jieba
ls=jieba.lcut_for_search('全国计算机等级考试python科目')
print(ls)
注:相比于精确模式,其中长词“计算机”被再次分词成“计算”、“算机”、“计算机”三个词语,存在一定冗余
- 提示:
- 精确模式因为不产生冗余,最为常用。
- 搜索引擎模式更倾向于寻找短词语,这种方式具有一定冗余,但相较于全模式较少。
4.jieba.add_word()函数,用来向jieba词库增加新的单词。
import jieba
jieba.add_word('python科目')
ls=jieba.lcut('全国计算机等级考试python科目')
print(ls)
注:增加新词后,当遇到该词语时将不再被分词
2.4 wordcloud库概述
- 数据展示的方式多种多样,传统的统计图尽管很“科学”,但略显古板。
- 尤其对于文本来说,更加直观、带有一定艺术感的展示效果需求很大。对于这类需求,wordcloud特有的展示方式深得人心。
- wordcloud以词语为基本单元,根据其在文本中出现的频率设计不同大小以形成视觉上的不同效果,形成“关键云层”或“关键词渲染”,从而使读者可以速读
- wordcloud库是专门用于根据文本生成词云的python第三方库,十分常用且有趣。
- 提示:词去
- 安装wordcloud库在windows的cmd命令行:
pip install wordcloud
from wordcloud import WordCloud
txt='I like Python,I am learning Python'
wd=WordCloud().generate(txt)
wd.to_file('python.jpg')
2.4.1 wordcloud库与可视化词云
- 在生成词云时,wordcloud默认会以空格或标点分隔符对目标文件进行分词处理。
- 对于中文文本,分词处理需要由用户来完成。
- 一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
- 处理中文时还需要指定中文字体。例如,选择了微软雅黑(msyh.ttc)作为显示效果。需要将该字体文件与代码存放在同一目录下,或在字体文件名前加上完整路径。
import jieba
from wordcloud import WordCloud
txt='程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定的规则、组织计算机指令,使得计算机能够自动进行各种运算处理'
words=jieba.lcut(txt)
newtxt=' '.join(words)
wordcloud=WordCloud(font_path='毛ze东字体.ttc').generate(newtxt)
wordcloud.to_file('Chinese.png')
- Wordcloud库的核心是WordCloud类,所有的功能都封装在WordCloud类中。
- 使用时需要实例化一个WordCloud类的对象,并调用generate(text)方法将text文本转化为词云。
- WordCloud在创建时有一系列可选参数,用于配置词云图片。
参数 | 功能 |
---|
font_path | 指定字体文件的完整路径,默认None | width | 生成图片宽度,默认400像素 | height | 生成图片高度,默认200像素 | mask | 词云形状,默认None,即方形图 | min_font_size | 词云中最小的字体字号,默认4号 | font_step | 字号步进间隔,默认1 | max_font_size | 词云中最大的字体字号,默认None,根据高度自动调节 | max_words | 词云图中最大词数,默认200 | stopwords | 被排除词列表,排除词不再词云中显示 | background_color | 图片背景色,默认黑色 |
方法 | 功能 |
---|
generate(text) | 由text文本生成词云 | to_file(filename) | 将词云图保存为名为filename的文件 |
import jieba
from wordcloud import WordCloud
from scipy.misc import imread
f=open('文本文件.txt','r',encoding='utf-8')
txt=f.read()
txt=' '.join(jieba.lcut(txt))
mask=imread('读取图片名称.png')
wordcloud=WordCloud(background_color='white',\
width=800\
height=600\
max_words=100\
max_font_size=80\
font_path='字体文件.ttc',\
mask=mask).generate(txt)
wordcloud.to_file('输出图片.jpg')
|