Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。

这篇具有很好参考价值的文章主要介绍了Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、引言

小鱼:小屌丝,你在干啥呢?
小屌丝:鱼哥,你看, 我的PPT写的 高大尚不。
小鱼:这有啥高大尚的啊,
小屌丝:你仔细看, 往下翻一页
小鱼:额。你这那是PPT,就是浴皇大帝、昂科旗等车系的测评吗。
Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。
小屌丝:别管内容了, 鱼哥,你就说,这个样式怎么样, 帅不帅气吧。
小鱼:嗯,样式嘛, 还可以的。
小屌丝:鱼哥,你这么淡定, 你的意思, 你也会?
小鱼:额… 我可没说, 休想套路我。
小屌丝:鱼哥,我这就要说到公道话了, 独乐乐不如众乐乐。
小鱼:有的时候,需要独乐乐。
小屌丝:鱼哥,别整没用的, 你就说分不分享吧?
小鱼:额… 这个… 你说啥?
小屌丝:我说,你把这个代码分享出来呗。
小鱼:你说分享什么啊?
小屌丝:分享词云生成器的代码
小鱼:分享什么代码啊?
小屌丝:去泡温泉…
小鱼:好嘞,早说不就完事了嘛。

2、代码实战

2.1 库介绍

说到词云的制作, 不得不提的第三方库, stylecloud简洁易用的词云库
当然仅仅有stylecloud 还是不够的, 还需要一个库,即 jieba:中文分词库
所以, 今天我们就用stylecloudjieba来完成本次的代码实战。
接下来, 我们先了解 这两个库。

2.1.1 jieba

jieba: 中文分词库

1、运行原理

  • 初始化:加载词典文件,获取每个词语和它出现的词数
  • 切分短语:利用正则,将文本切分为一个个语句,之后对语句进行分词
  • 构建DAG:通过字符串匹配,构建所有可能的分词情况的有向无环图,也就是DAG
  • 构建节点最大路径概率,以及结束位置:计算每个汉字节点到语句结尾的所有路径中的最大概率,并记下最大概率时在DAG中对应的该汉字成词的结束位置。
  • 构建切分组合:根据节点路径,得到词语切分的结果,也就是分词结果。
  • HMM新词处理:对于新词,也就是jieba词典中没有的词语,我们通过统计方法来处理,jieba中采用了HMM(隐马尔科夫模型)来处理。
  • 返回分词结果:通过yield将上面步骤中切分好的词语逐个返回。yield相对于list,可以节约存储空间。

2、主要模式

  • 精确模式:把文本精确的切分开,不存在冗余单词
  • 全模式:把文本中所有可能的词语都扫描出来,有冗余
  • 搜索引擎模式:在精确模式基础上,对长词再次切分

3、主要功能

  • jieba.cut 方法接受四个输入参数:

    • 需要分词的字符串;
    • cut_all 参数用来控制是否采用全模式;
    • HMM 参数用来控制是否使用 HMM 模型;
    • use_paddle 参数用来控制是否使用paddle模式下的分词模式,
      • paddle模式采用延迟加载方式,通过enable_paddle接口安装paddlepaddle-tiny,并且import相关代码;
  • jieba.cut_for_search 方法接受两个参数

    • 需要分词的字符串;
    • 是否使用 HMM 模型。
      • 该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
  • jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用 jieba.lcut 以及 jieba.lcut_for_search 直接返回 list

  • jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。

  • jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

2.1.2 stylecloud

关于词云生成工具, 常用的无非这3种:

  • pyecharts
    • 简单易用;
    • 上手快;
    • 不够美观;
  • wordcloud
    • 使用频次最高;
    • 使用最广泛;
  • stylecloud
    • 简单易用
    • 最接近完美

接下来,我们就使用 sytlecloud第三方库,看看它完美到什么程度。

2.2 库安装

涉及到第三方库,肯定就需要安装
老规矩,pip 安装

pip install jieba
pip install stylecloud

然后就是等待着安装。

其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。

2.2 代码实战

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-01-10
# @Author : Carl_DJ

'''
实现功能:
    词云生成器
'''

import json
import stylecloud
import codecs
import jieba
from collections import Counter

#过滤掉高频出现的词汇
passwords = set()
#读取词汇文档
content = [line.strip() for line in open('./data/passwords.txt', 'r',encoding='utf8').readlines()]
passwords.update(content)

#获取文档词汇, 并截取长度为3个
def make_words(txt):
    make_list = jieba.cut(txt)
    c = Counter()
    words_list = []
	#获取词汇文本
    for x in make_list:
    	#长度为3,超过截取
        if len(x) ==  3 and x !='\r\n':
            c[x]  += 1
            words_list.append(x)

    for k,v in c.most_common(50):
        if k not in passwords:
            # print(f'{k,v}')
    #组合词云内容
    return " ".join(words_list)

#读取中大型suv测评.txt内容
with codecs.open('./data/中大型suv测评.txt','r','utf8') as f: #格式需要utf8 否则会报错
    txt = f.read()
#
words_txt = make_words(txt)
#设置词云展示的样式,字体,生成文件名称等,
stylecloud.gen_stylecloud(text=words_txt,custom_stopwords=content,
                          background_color='#1A1A1A',
                          colors=['#dd4444', '#fec42c', '#fac858'],
                          max_font_size=100,
                          output_name='xt6测评.jpg',
                          font_path="C:/Windows/Fonts/FZSTK.TTF"
                          )

结果展示
Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。


这里需要准备两个文件

  • password.txt : 过滤文本中出现太多次数的词汇;
  • suv测评.txt:词云的主要显示的文本内容;

文本内容示例
Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。
这里强调一点

  • 文本的内容,你可以一行写很多字,
  • 但是,为了词云展示的内容更丰富, 列数,一定要多。

当然,文档内容, 也可以是下载的小说,或者你自己写的任何内容。

3、总结

看到这里, 今天的分享就要结束了。
回头看一下,
其实词云生成器,并不难。
主要就是对 jieba、stylecloud 这两个库的使用。
这里我仅仅列举了 stylecloud 第三方库,
当然,如果你有兴趣,也可以使用 pyechartswordcloud ,看看生成的词云如何。
也就当是你自己的练手了。

好了,就唠叨这里了。
我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 51认证讲师
  • 金牌面试官

关注小鱼,带你学习更多更有趣的python知识。

当然,

  • 如果你想晋升自己的技能,;
  • 如果你想提升自己的面试成功率;
  • 如果你现在处在职业迷茫期,想重新规划职业生涯;

都可以找小鱼聊聊的。

CSDN 私信留言, 或者扫描小鱼主页的二维码,都可以找到的。文章来源地址https://www.toymoban.com/news/detail-456680.html

到了这里,关于Python3,我只用一段代码,就写了个词云生成器,功能强大到怀疑人生。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 写了个辅助学习vite的小工具(mini-vite)

      话不多说先贴上仓库地址 mini-vite 封装的方法太多,不知道从哪个方法看起 随便一个文件就是一两千行代码,看得头皮发麻 不知道该怎么去debug,到底应该在哪个方法里面debug 没关系,这些问题在我这都能解决 移除了vite仓库中的所有注释和其他对于所要学习的vite功能用不

    2024年02月08日
    浏览(42)
  • 俩小伙一晚上写了个 AI 应用,月入两万??(文末附开发教程)

    开发出一款能够与 AI 对话生成和编辑思维导图的工具,听起来似乎只能是一群专业的 AI 背景团队花费大量的时间和精力训练模型,打磨应用才能完成的事情。 但是,两名大学生却在一夜之间完成了,就像炼金术士将庸俗的材料转化成黄金一样,他们将代码转化为了神奇的工

    2024年02月03日
    浏览(46)
  • 基于文心一言AI大模型,编写一段python3程序以获取华为分布式块存储REST接口的实时数据

    本文尝试基于文心一言AI大模型,编写一段python3程序以获取华为分布式块存储REST接口的实时数据。 一、用文心一言AI大模型将需求转化为样例代码 1、第一次对话:“python3写一段从rest服务器获取数据的样例代码” 同时生成了以下注解  这段代码首先定义了一个函数  get_da

    2024年02月03日
    浏览(46)
  • ChatGPT自动写了个AI办公office word插件,低配copilot,程序员看了焦虑。

            最近公司文案同事提出一个需求,希望在文案编辑工作上使用AI工具,提高生产效率,当然也受ChatGPT这波潮流影响。ok,既然需求来了,作为技术部门那只能接下需求了。省略需求调研过程N个字...。总结起来:1、希望工具整合到Word中(文案编辑嘛);2、AI写作功能

    2024年02月06日
    浏览(45)
  • 软件工程师,要么不写代码,要么就写优雅的代码

    何为优雅的代码         优雅的代码,至少需要遵循以下几个原则:          遵守规范         优雅的代码,首先让人看起来就是很整洁的。而这种整洁,则来源于代码规范。严格地遵守代码规范,是提高且保证代码质量的最有效方法。从个人开发的角度来看,一

    2024年02月06日
    浏览(55)
  • Python之路—200行Python代码搞了个打飞机游戏!!

    早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序。 很有意思,跟大家分享下。 先看一下项目结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \\\"\\\"\\\" PlayPlane/ |-- bin/ |   |-- main.py         程序运行主体

    2023年04月08日
    浏览(60)
  • 【python】只需一段代码,剪辑一个视频——Moviepy详解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 知道吗,用moviepy一行代码就能够快速剪辑视频中某个区间的片段: clip = VideoFileClip(“videoplayback.mp4”).subclip(50,60) 这一段代码,能够在3秒内将videoplayback.mp4的50秒-60秒的视频片段提取出来,非常方便。

    2023年04月16日
    浏览(39)
  • 一段代码理解Python异步函数async的基本用法

    异步函数的使用规则 正常情况下我们的函数时串行的运行的,这里称之为主函数. 异步函数:与主函数并行运行. Python异步函数即async必须在普通函数的命名前加上 async 示例: 执行async函数 async函数内等待:只阻塞当前async函数 m_mock安装 通过上述代码示例可以发现case_a和case_b通过

    2024年02月15日
    浏览(51)
  • 使用 Python3 获取网页源代码

            爬虫的数据爬取量非常大,显然不可能对每个页面都手动复制源代码,因此就有必要使用自动化的方式来获取网页源代码。requests是Python的一个第三方HTTP(Hypertext Transfer Protocol,超文本传输协议)库,它比Python自带的网络库urllib更加简单、方便和人性化。使用re

    2023年04月16日
    浏览(52)
  • 十七、Jenkins(centos7系统)运行python3代码

    source /usr/python/envs/everyday/bin/activate #激活python3 虚拟环境 创建虚拟环境:https://blog.csdn.net/qq_42846555/article/details/131579627

    2024年02月12日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包