小白从零开始勇闯人工智能:Python初级篇(8-第三方库)
引言
在前面的学习中,我们会发现Python程序只能在安装了Python的电脑上运行,处理中文文本比较困难,今天,我们将了解Python的第三方库并学习其中的PyInstaller和jieba库。PyInstaller库:它能将Python程序打包成独立的可执行文件,在任何电脑上都能运行。Jieba库则可以帮助我们处理中文文本,中文分词,它是专门为中文分词设计的强大工具。
一、第三方库 - Python的"超级市场"
1、什么是第三方库
第三方库是由Python社区广大开发者创建和维护的、提供各种专业功能的代码集合,它们并不是Python安装包自带,因此需要用户自己通过包管理工具(如pip)进行额外安装。这些库扩展了Python的应用领域,例如,numpy为科学计算提供了强大的多维数组支持,pandas是进行数据分析和处理的利器,matplotlib用于创建静态、交互式和动画可视化,requests让处理HTTP网络请求变得异常简单,beautifulsoup4专门用于从HTML和XML文档中解析和提取数据,而tensorflow和pytorch这样的框架则成了机器学习和深度学习项目的基础。
2、第三方库的镜像地址
为了提升在国内下载第三方库的速度,我们可以使用国内的镜像源,通过 -i 参数指定镜像如果希望设置默认镜像以避免每次手动指定,可以使用 pip config set global.index-url 命令一次性配置,这样后续的所有安装命令都会自动从该镜像源高速下载。
# 使用清华镜像
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名
# 使用阿里云镜像
pip install -i https://mirrors.aliyun.com/pypi/simple/ 库名
# 使用豆瓣镜像
pip install -i https://pypi.douban.com/simple/ 库名
3、第三方库的安装方法
要安装Python第三方库,我们主要使用名为pip的包管理工具,所有的安装命令都需要在系统的命令行终端中执行,而非Python解释器内部。其基本用法包括使用 pip install 库名`来安装最新版本的指定库;可以通过 pip install 库名==版本号来安装某个特定版本;使用 pip install --upgrade 库名来将已安装的库升级到最新版;当需要移除某个库时,则使用 pip uninstall 库名;此外,通过运行 pip list 可以方便地查看当前环境中所有已安装的库及其版本信息。
# 查看pip版本
pip --version
# 安装库(以requests为例)
pip install requests
# 安装多个库
pip install requests beautifulsoup4 pandas
# 从requirements.txt安装
pip install -r requirements.txt
# 查看已安装的库
pip list
# 查看某个库的详细信息
pip show requests
# 生成requirements.txt文件
pip freeze > requirements.txt
# 卸载库
pip uninstall requests
二、PyInstaller库 - 将Python程序变成独立应用
1、PyInstaller库的介绍和安装
PyInstaller是一个用于将 Python 程序打包成独立可执行文件的第三方工具。它能将程序代码、Python 解释器以及所有相关的依赖库“封装”在一起,从而生成一个无需预先安装 Python 环境或任何第三方库、在对应操作系统上可直接双击运行的应用程序。
安装PyInstaller:
# 使用pip安装
pip install pyinstaller
# 如果速度慢,可以使用国内镜像
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
# 验证安装是否成功,如果看到版本号,则安装成功。
pyinstaller --version

2、PyInstaller库的使用
我们如果想要使用PyInstaller库的话首先:
第一步:创建一个简单的Python程序
# hello.py
name = input("请输入你的名字:")
print(f"你好,{name}!这是一个打包后的Python程序。")
第二步:使用PyInstaller打包
Pyinstaller 代码文件路径+代码文件名
# 基本打包命令
pyinstaller D:\python\PythonProject1 a2.py

PyInstaller会分析hello.py,找出所有依赖的库,创建一个build文件夹存放临时文件,创建一个dist文件夹存放最终的可执行文件,在dist/hello文件夹中(Windows是dist/hello文件夹),你会找到可执行文件。

第三步:运行打包后的程序
Windows:双击dist/hello/hello.exe,Mac/Linux:在终端中运行./dist/hello/hello。现在即使电脑上没有安装Python,程序也能正常运行。

3、PyInstaller的高级用法
PyInstaller提供了许多有用的参数来自定义打包过程:
# 生成单个可执行文件(所有内容打包成一个exe)
pyinstaller -F hello.py
# 优点:只有一个文件,便于分发
# 缺点:启动速度稍慢
# 生成单文件且不显示命令行窗口(适合GUI程序)
pyinstaller -F -w calculator.py
# -w 表示不显示控制台窗口
# 添加图标
pyinstaller -F -i myicon.ico hello.py
# 程序会使用myicon.ico作为图标
# 隐藏导入的模块(减少打包体积)
pyinstaller -F --hidden-import module_name hello.py
# 打包时排除某些模块
pyinstaller -F --exclude-module unnecessary_module hello.py
# 指定输出文件名
pyinstaller -F --name "我的程序" hello.py
# 生成的可执行文件名为"我的程序.exe"
# 清理之前的打包文件
pyinstaller --clean hello.py
二、Jieba库 - 中文分词的利器
1、Jieba库的原理分析
中文分词是将连续的中文中文字符序列切分成具有独立意义的词语,中文文本的词与词之间没有像英文空格那样的显式分隔符,且常存在组合歧义。而 Jieba 库是解决这一问题的核心工具,其工作原理是:首先,用内置的“词典”快速找出句子中所有可能的词语组合;然后,像选择最佳路线一样,从中挑出最合理的切分方式;最后,即使遇到词典里没有的新词(比如网络热词),它也能根据上下文猜出正确的切分结果。
2、jieba库的解析
1)、Jieba库的安装
# 打开命令行,输入以下命令:
pip install jieba
# 如果下载慢,可以用国内镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
2)、jieba库的解析
在jieba库的安装目录中,最重要的是__init__.py文件,因为其中包含了用于创建分词对象的类Tokenizer。ayalyse文件夹里是用于设计算法以实现分析词语的相关代码,finalseg文件夹中是用于分词完成后处理的相关代码。lac_small文件夹中是用于创建词法分析模型和模型数据读取器的相关代码,__main__.py文件可以实现用命令的形式运行jieba库中函数的功能,dict.txt文件时jieba库中的词典用于保存所有词语。
3、jieba库的使用
Jieba提供了三种不同的分词模式,就像切蛋糕的三种方式:
模式1:精确模式(只切出最合理的词语,不会多切。)
import jieba
text = "我今天吃了沙县小吃的鸡腿饭"
result = jieba.cut(text, cut_all=False) # cut_all=False表示精确模式
print("精确模式:", "/".join(result))

模式2:全模式(切得最细)
import jieba
text = "我今天吃了沙县小吃的鸡腿饭"
result = jieba.cut(text, cut_all=True) # cut_all=True表示全模式
print("全模式:", "/".join(result))

模式3:搜索引擎模式(适合搜索)
import jieba
text = "我今天吃了沙县小吃的鸡腿饭"
result = jieba.cut_for_search(text)
print("搜索引擎模式:", "/".join(result))

4、添加自定义词典
Jieba 库提供了扩展词典的机制,可以有效识别新词或专业术语,以提升分词的准确性。我们可以通过 jieba.add_word()临时添加单个新词,使 Jieba 在后续分词中将其作为一个整体处理。
import jieba
text = "我买了沙县小吃的鸡腿饭"
result = list(jieba.cut(text))
print("没教之前:", "/".join(result))
jieba.add_word("沙县小吃") # 告诉Jieba这是一个词
jieba.add_word("鸡腿饭") # 告诉Jieba这是一个词
result = list(jieba.cut(text))
print("教了之后:", "/".join(result))

到这里我们就基本学完了第三方库中的内容了,现在 运用我们所学的知识完成一个小案例:实现判断评论为好评或差评。
import jieba
# 添加自定义词语
jieba.add_word('智商税')
jieba.add_word('不推荐')
jieba.add_word('纯纯') # 如果需要的话
good = ['好评', '好看', '性价比高', '值得']
bad = ['垃圾', '差评', '智商税', '不推荐']
a = '衣服很好看'
b = '性价比高,值得购买'
c = '纯纯智商税,不推荐购买'
def cc(sentence):
good_value = bad_value = 0
d = list(jieba.cut(sentence))
print(f"分词结果: {d}")
for i in d:
if i in good:
good_value += 1
elif i in bad:
bad_value += 1
print('好评词数量:', good_value, '差评词数量:', bad_value)
if good_value > bad_value:
print('该评论为好评')
elif good_value == bad_value:
print('无法判断')
else:
print('该评论为差评')
print() # 添加空行分隔
cc(a)
cc(b)
cc(c)

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)