计算机二级python备考笔记(十)

Python第三方库

第三方库安装:pip安装,自定义安装,文件安装
pip install
pip uninstall
pip list
pip show
pip download
pip search

PyInstaller库

将Python程序打包,变成可执行文件,可以在没有安装python的环境中运行
使用PyInstaller对源程序打包十分简单
PyInstaller <文件名>
执行完毕之后,源文件所在目录生成dist和build两个文件夹,最终打包程序在dist内部
通过-F对源文件生成可执行文件
PyInstaller -F
-clean 清理打包过程中临时文件
-D 生成dist目录
-F 只生成独立打包文件
-i 指定使用的图标icon文件

jieba库

中文文本中的单词不是通过空格和标点分隔,重要的分词问题
jieba库的分词原理是利用一个中文词库,将待分词的内容和分词库比对,通过图结构和动态规划的方法找到最大概率词组,还提供自定义中文单词的功能
jieba库支持三种分词模式:
准确模式:将句子最精确分开,适合文本分析
全模式:将句子中所有成词的词语扫描出来,速度快,不解决歧义
搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合做引擎

import jieba
jieba.lcut('计算机二级考试')

jieba.lcut()用于精准模式,将字符串切割为等量中文词组,返回列表
jieba.lcut(s,cut_all=True) 用于全模式,将所有的可能列出来,出现冗余
jieba.lcut_for_search(s)返回搜索引擎模式,首先执行精准模式,再进一步分切得到结果
jieba.add_word(‘aaa’)向jieba库中增加新的单词

wordcloud库

根据文本中出现的频率设计关键词云层

from wordcloud import WordCloud

txt  = 'i like python'
wc = WordCloud().generate(txt)
wc.to_file('a.png')

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:指定文字文件的完整路径
width:图片宽度,默认400
height:图片高度,默认200
mask:词云形状,默认方形图
min_font_size:最小字体,默认4
font_step:字体间隔,默认1
max_font_size:最大字体,根据高度自动调节
max_words:最大词数,默认200
stopwords:排除词
background_color

WordCloud类的常用方法:
generate(text) 由text文本生成词云
to_file(filename) 保存

人形可视化词云

from wordcloud import WordCloud
from imageio import imread
import jieba

mask = imread('kongzi.png')
with open('lunyu.txt', 'r', encoding='utf-8') as file:
    text = file.read()
    ls = jieba.lcut(text)
    txt = ' '.join(ls)
    wordcloud = WordCloud(background_color='white', width=800, height=600,font_path = 'C:/Users/Windows/fonts/simhei.ttf', max_words=200, max_font_size=80, mask=mask).generate(txt)
    wordcloud.to_file('lunyuword.png')

注意:只能使用白底图片,在非白色地方填上数字

红楼梦出场人物统计

import jieba
from wordcloud import WordCloud

f = open('honglou.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(50):
    word, count = items[i]
    print('{0:<10}{1:>5}'.format(word, count))	#词频统计

excludes = {'什么','一个','我们','那里','如今','你们','说道','知道','这里','起来','姑娘','出来',
'他们', '众人','奶奶','老太太','自己','太太','一面','两个','只见','没有','怎么','不是','不知','这个',
'听见','这样','进来','咱们','告诉','就是','东西','大家','老爷','只是','只得','不敢','这些'}
f = open('honglou.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
words = jieba.lcut(txt)
newt = ' '.join(words)
wordcloud = WordCloud(background_color='white',
                        width=800,
                        height=600,
                        font_path='msyh.ttc',
                        max_words=200,
                        max_font_size=80,
                        stopwords=excludes).generate(newt)
wordcloud.to_file('honglou.png')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值