第十章 Python第三方库概览

您所在的位置:网站首页 python语言程序设计教程课后答案第三章 第十章 Python第三方库概览

第十章 Python第三方库概览

2023-06-07 02:18| 来源: 网络整理| 查看: 265

文章目录 第十章 Python第三方库概览10.1 Python第三方库的获取和安装10.1.1 pip工具安装10.1.2 自定义安装10.1.3 文件安装10.1.4 pip工具使用 10.2 PyInstaller库概述10.3 PyInstaller库与程序打包10.4 jieba库概述10.5 jieba库与中文分词10.6 wordcloud库概述10.7 wordcloud库与可视化词云10.8 实例解析——《红楼梦》人物出场词云10.8.1 《红楼梦》人物出场统计10.8.2 《红楼梦》人物出场词云 习题10一、选择题二、编程题

第十章 Python第三方库概览 10.1 Python第三方库的获取和安装

Python第三方库依照安装方式灵活性和难易程度有三个方法:pip工具安装、自定义安装和文件安装。

10.1.1 pip工具安装

最常用且最高效的Python第三方库安装方式是采用pip工具安装。pip是Python官方提供并维护的在线第三方库安装工具。

使用pip安装第三方库需要联网。语法格式如下:

pip install

pip是Python第三方库最主要的安装方式,可以安装超过90%以上的第三方库。然而还有一些第三方库无法暂时用pip安装,此时需要其他的安装方法。

pip工具与操作系统也有关系,在Mac OS X和Linux等操作系统中,pip工具几乎可以安装任何Python第三方库,在Windows操作系统中,有一些第三方库任然需要用其他方式尝试安装。

10.1.2 自定义安装

自定义安装指按照第三方库提供的步骤和方式按照。第三方库都有主页用于维护库的代码和文档。以科学计算用的numpy为例,

开发者维护的官方主页是:https://numpy.org/

10.1.3 文件安装

由于Python某些第三方库仅提供源代码,通过pip下载文件后无法在Windows系统编译安装,会导致第三方库安装失败。在Windows平台下所遇到无法安装第三方库的问题大多属于这类。

为了解决这类第三方库安装问题,美国加州大学尔湾分校提供了一个页面,帮助Python用户获得Windows可直接安装的第三方库文件,链接地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/

10.1.4 pip工具使用

列出常用的子命令,语法格式如下:

pip -h

卸载已安装的第三方库,语法格式如下:

pip uninstall

列出已经安装的第三方库,语法格式如下:

pip list

查看已经安装库的详细信息,语法格式如下:

pip show

下载第三方库的安装包,语法格式如下:

pip download

联网搜索库名或摘要中关键字,语法格式如下:

pip search 10.2 PyInstaller库概述

PyInstaller是一个十分有用的Python第三方库,它能够在Windows、Linux、Mac OS X等操作系统下将Python源文件打包,变成可直接运行的可执行文件。

通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立文件方便传递和管理。

PyInstaller需要在命令行下用pip工具安装,安装命令如下:

pip install PyInstaller 10.3 PyInstaller库与程序打包

使用PyInstaller库对Python源文件打包十分简单,语法格式如下:

PyInstaller

执行完毕后,源文件所在目录将生成dist和build两个文件夹。其中build目录是PyInstaller存储临时文件的目录,可以安全删除。最终的打包程序在dist内部与源文件同名的目录中。目录中其他文件是可执行文件的动态链接库

可以通过-F参数对Python源文件生成一个独立的可执行文件,语法格式如下:

PyInstaller -F

执行后在dist目录中出现了文件,没有任何依赖库,执行它即可显示相应效果。

PyInstaller常用参数:

参数功能-h,–help查看帮助–clean清理打包过程中的临时文件-D,–onedir默认值,生成dist目录-F,–onefile在dist文件夹中只生成独立的打包文件-i指定打包程序使用的图标(icon)文件 10.4 jieba库概述

由于中文文本中的单词不是通过空格或者标点符号分割,中文及类似语言存在一个重要的“分词”问题。

jieba(“结巴”)是Python汇总给一个重要的第三方中文分词函数库,能够将一段中文文本分割成中文词语的序列。

jieba库需要通过pip指令安装,安装命令如下:

pip install jieba

jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词,jieba还提供增加自定义中文单词的功能。

jieba库支持三种分词模式:

精确模式,将句子最精确的切开,适合文本分析。全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。搜索引擎模式:在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 10.5 jieba库与中文分词

jieba库常用的分词函数如下:

函数描述jieba.lcut(s)精确模式,返回一个列表jieba.lcut(s,cut_all=Ture)全模式,返回一个列表类型jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型jieba.add_word(w)向分词词典中增加新词w

搜索引擎模式更倾向于寻找短词语,这种方式具有一定冗余度,但冗余度相比全模式较少。

如果希望对文本准确分成,不产生冗余,只能选择jieba.lcut(s)函数,即精确模式。如果希望对文本分词更准确,不漏掉任何可能的分词结果,请选用全模式。如果没想好怎么用,可以使用搜索引擎模式。

10.6 wordcloud库概述

词云以词语为基本单元,根据其文本中体现的频率设计不同大小以形式视觉上不同效果,形成“关键词云层”或“关键词渲染”,从而使读者只要“一瞥”即可领略文本的主旨。

wordcloud库是专门用于根据文本生成词云的Python第三方库,十分常用且有趣。安装命令如下:

pip install wordcloud

wordcloud库的使用非常简单,以一个字符串为例。其中产生词云只需要一行语句,在第三行,并可以将词云保存为图片。

from wordcloud import WordCloud txt = "I like python. I'm learning python!" wordcloud = WordCloud().generate(txt) wordcloud.to_file("testcloud.png") 10.7 wordcloud库与可视化词云

在生成词云时,wordcloud默认会以空格或标点为分隔符对目标文本进行分词处理。对于中文文本,分词处理需要由用户完成。一般步骤是先将文本分词处理,然后以空格拼接,在调用wordcloud库函数。处理中文时还需要指定中文字体。

例如:选择了微软雅黑字体(msyt.ttc)作为显示效果,需要将该字体文件与代码存放在同一目录下或在字体文件名前增加完整路径。

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库的核心是WordCloud类,所有功能都分装在WordCloud类中。使用时需要实例化一个WordCloud类的对象,并调用其generate(text)方法将text文本转化为词云。

WordCloud对象创建的常用参数:

参数功能font_path指定字体文件的安政路径,默认Nonewidth生成图片宽度,默认400像素height生成图片高度,默认200像素mask词云形状,默认None,即方形图min_font_size词云中最小的字体号,默认4号font_step字号步进间隔,默认1max_font_size词云中最大的字体号,默认None,根据高度自动调节max_words词云图中最大词数,默认200stopwords被排除词列表,排除词不在词云中显示backgroung_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", mode="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") 10.8 实例解析——《红楼梦》人物出场词云 10.8.1 《红楼梦》人物出场统计 import jieba excludes = {"什么", "一个", "我们", "那里", "你们", "如今", "说道", "知道", "老太太", "起来", "姑娘", "这里", "出来", "他们", "众人", "自己", "一面", "太太", "只见", "怎么", "奶奶", "两个", "没有", "不是", "不知", "这个", "听见"} f = open("红楼梦.txt", "r", encoding="utf-8") txt = f.read() f.close() words = jieba.lcut(txt) counts = {} for word in words: if len(word) == 1: # 排除单个字符的分词结果 continue else: counts[word] = counts.get(word, 0) + 1 for word in excludes: del (counts[word]) items = list(counts.items()) items.sort(key=lambda x: x[1], reverse=True) for i in range(5): word, count = items[i] print("{0:5}".format(word, count)) 10.8.2 《红楼梦》人物出场词云 import jieba from wordcloud import WordCloud excludes = {"什么", "一个", "我们", "那里", "你们", "如今", "说道", "知道", "老太太", "起来", "姑娘", "这里", "出来", "他们", "众人", "自己", "一面", "太太", "只见", "怎么", "奶奶", "两个", "没有", "不是", "不知", "这个", "听见"} f = open("红楼梦.txt", "r", encoding="utf-8") txt = f.read() f.close() words = jieba.lcut(txt) newtxt = ' '.join(words) wordcloud = WordCloud(background_color="white", width=800, height=600, font_path="msyh.ttc", max_words=5,max_font_size=80, stopwords=excludes,).generate(newtxt) wordcloud.to_file('红楼梦基本词云.png') 习题10 一、选择题

下面关于pip安装方式的说法中错误的是:______

A pip工具几乎就可以安装任何Python第三方库

B pip的download子命令可以下载第三方库的安装包并安装

C pip可以安装已经下载的.whl安装文件

D Python第三方库有三种安装方式,其中pip是最常用的方式

正确答案:B

下面关于jieba库的描述中错误的是:______

A jieba库是一个中文分词工具

B jieba库利用基于概率的分词方法

C jieba库提供增加自定义单词的功能

D jieba库的分词模式分为模糊模式、精确模式、全模式和搜索引擎模式

正确答案:D

jieba库中各搜索引擎分词模式的作用是:______

A 精确地切开句子,适合文本分析

B 将句子中给所有成词的词语都扫描出来

C 对长词再次切分,提高召回率

D 速度快,清除歧义

正确答案:D

下面关于wordcloud库的描述中错误的是:______

A wordcloud库是一个用于生成词云的库

B wordcloud库默认分词方法是根据空格分词

C wordcloud库生成中文词云时输出乱码,故无法用于制作中文词云

D wordcloud库的大多数方法都封装在WordCloud类里面

正确答案:C

使用PyInstaller打包程序时,想要在dist文件夹中只生成一个单独的exe文件,所需参数是:______

A -version B -clean C -onedir D -F

正确答案:D

使用PyInstaller打包程序时,–path命令的作用是:______

A 指定代码文件所在目录

B 指定PyInstaller所在目录

C 指定代码所依赖非标准库的路径

D 指定生成exe文件的目录

正确答案:C

关于PyInstaller,下列说法中错误的是:______

A PyInstaller是用于将Python脚本打包成可执行文件的工具

B PyInstaller使用起来非常方便,在IDLE交互式环境下输入相应命令即可

C 使用-p添加多个非标准库的路径信息时,既可以多次使用-p,也可以用分号分割路径

D --clean参数用于清理打包过程中的临时文件

正确答案:B

jieba库函数jieba.lcut()返回值的类型是:______

A 列表 B 迭代器 C 字符串 D 元组

正确答案:A

以下不是pip合法命令的是:______

A install B hash C help D update

正确答案:B

使用PyInstaller打包含有中文字符的代码文件时,关于代码文件编码方式的说法中正确的是:______

A 必须是UTF-8,无BOM编码格式

B 必须是UTF-8,无BOM编码格式或者ANSI编码格式

C 可以是任何合法的编码格式

D 必须是GBK编码格式

正确答案:A

二、编程题

使用jieba.cut()对“Python是最有意思的编程语言”进行分词,输出结果,并将该迭代器转换为列表类型。

import jieba txt = "Python是最有意思的编程语言" word = jieba.cut(sentence, cut_all=Flase) word_list = list(words) print(word_list) # 运行结果 ['Python', '是', '最', '有意思', '的', '编程语言']

使用jieba.cut()对“今天晚上我吃了意大利面”进行分词,输出结果,并使“意大利面”作为一个词出现在结果在。

import jieba txt = "今天晚上我吃了意大利面" jieba.add_word("意大利面") words = jieba.cut(sentence, cut_all=False) print(" ".join(words)) # 运行结果 今天 晚上 我 吃 了 意大利面

自选一篇报告或者演讲稿,利用jieba分析出其词频排前5的关键词。

import jieba f = open("example.txt", "r", encoding="utf-8") txt = f.read() f.close() words = jieba.lcut(txt) counts = {} for word in words: if len(word) == 1: #排除单个字符的分词结果 continue else: counts[word] = counts.get(word,0) + 1 items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(15): word, count = items[i] print ("{0:5}".format(word, count))


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3