【Python篇】python库讲解(wordcloud | jieba)

文章目录

  • 🍔jieba库
  • 🍔wordcloud库
    • 🌹解释

在这里插入图片描述

🍔jieba库

jieba库是一个流行的中文分词工具,它基于统计算法和词频字典,能够将连续的汉字序列切割成有意义的词语。下面是对jieba库的简要理论说明:

  1. 分词原理:jieba库使用了基于前缀词典的最大匹配算法来进行中文分词。该算法从文本的开头开始,根据词典中的词语长度依次匹配文本,选择最长的匹配词语作为分词结果,然后继续在未匹配部分进行匹配,直到整个文本被分词完毕。
  2. 词典和词频:jieba库内置了一个词典,其中包含了常见的词语和词频信息。词典中的词语按照词频从高到低排列,以保证在分词时优先选择常见的词语。
  3. 分词模式:jieba库提供了三种分词模式:
    精确模式:尽可能地将文本切分为最精确的词语。
    全模式:将文本中所有可能的词语都切分出来,可能会产生冗余的词语。
    搜索引擎模式:在精确模式的基础上,对长词再进行切分,增加词语的召回率。
  4. 用户自定义词典:jieba库允许用户根据需要添加自定义词典,这样可以解决一些特定领域或专业术语的分词问题。用户自定义词典可以手动添加,也可以通过文本文件导入。
  5. 去除停用词:jieba库提供了停用词功能,可以过滤掉一些常见的无意义词语,如“的”、“是”等。用户可以根据需求自定义停用词列表。
  6. 并行分词:jieba库支持多线程并行分词,能够提高分词速度。

jieba库具有简单易用、分词效果良好等特点,广泛应用于中文文本处理、自然语言处理和机器学习等领域。通过使用jieba库,可以方便地进行中文文本的分词处理。

import jieba
import wordcloud
f = open("E:\\word.txt", "r", encoding="utf-8")t=f.read()
f.close()
ls=jieba.lcut(t)txt="".join(ls)
w = wordcloud.WordCloud(width=1000, height=700, background_color="white")
w.generate(txt)
w.to_file("E:\\a.png")

🍔wordcloud库

from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba# 打开文本
text = open("a.txt", encoding="utf-8").read()
# 中文分词
text = ' '.join(jieba.cut(text))   # 利用jieba进行分词形成列表,将列表里面的词用空格分开并拼成长字符串。#使用蒙版生成词云
mask = np.array(Image.open("ikun.png"))
# 生成对象
wc = WordCloud(mask = mask,font_path="SimHei.ttf", width=800, height=600, mode="RGBA", background_color=None).generate(text)# 显示词云
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")     #关闭坐标轴
plt.show()# 保存到文件
wc.to_file("2.2wordcloud2.png")

🌹解释

这段代码使用了Python的wordcloud库来生成词云图,并结合了jieba库进行中文分词,同时使用了PIL、numpy和matplotlib.pyplot等库进行图像处理和展示。

代码的主要步骤如下:

1.导入必要的库:

from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba

2.打开文本文件并进行中文分词:

text = open("a.txt", encoding="utf-8").read()
text = ' '.join(jieba.cut(text))

这里通过open函数打开名为"a.txt"的文本文件,并使用utf-8编码读取其中的内容。然后使用jieba库对文本进行中文分词,将分词结果拼接成一个空格分隔的长字符串。

3.使用蒙版生成词云:

mask = np.array(Image.open("ikun.png"))

这里通过PIL库的Image模块打开名为"ikun.png"的图像文件,并将其转换为numpy数组作为词云的蒙版。
4.生成词云对象:

wc = WordCloud(mask=mask, font_path="SimHei.ttf", width=800, height=600, mode="RGBA", background_color=None).generate(text)

这里通过WordCloud类创建一个词云对象,传入参数包括蒙版(mask)、字体路径(font_path)、宽度(width)、高度(height)、模式(mode)、背景颜色(background_color)和分词后的文本(text)。
5.显示词云图:

plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

这里使用matplotlib.pyplot库的imshow函数来显示词云图,interpolation参数指定插值方法,axis函数关闭坐标轴,最后调用show函数展示图像。

6.保存词云图到文件:

wc.to_file("2.2wordcloud2.png")

这里使用词云对象的to_file方法将生成的词云图保存到名为"2.2wordcloud2.png"的文件中。

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算基础、Issa、Pssa、Saas区别

一、了解云计算 云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算…

复数值神经网络可能是深度学习的未来

一、说明 复数这种东西,在人的头脑中似乎抽象、似乎复杂,然而,对于计算机来说,一点也不抽象,不复杂,那么,将复数概念推广到神经网络会是什么结果呢?本篇介绍国外的一些同行的尝试实践,请我们注意观察他们的进展。

【机组期末速成】指令系统|机器指令概述|操作数类型与操作类型|寻址方式|指令格式

🎥 个人主页:深鱼~🔥收录专栏:计算机组成原理🌄欢迎 👍点赞✍评论⭐收藏 目录 前言: 一、本章考点总览 二、考点分析 1、以下有关指令系统的说法中错误的是( )。 2…

python将Excel的每一个sheet页生成PDF文件

这里我们使用Excel应用导出PDF 使用win32com.client.Dispatch("Excel.Application")启动Excel使用excel.Workbooks.Open(excel文件的绝对路径)打开文件循环每一个sheet,使用.ExportAsFixedFormat(0, os.path.join(parent, f"pdf_data/{_sheet.Name}…

idea远程开发环境搭建

idea远程开发环境搭建 一、安装包下载二、环境准备2.1服务器端jdk、maven安装,代码下载略2.2JetBrainsClients下载配置 三、远程环境配置3.1 创建项目3.2 填写服务器连接信息![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4aa09073af5e4a66a5e83e7c5d1…

Unity 通过鼠标框选绘制矩形区域

鼠标拖动的同时绘制一块同等大小的区域&#xff1a;如下 using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 通过鼠标框选绘制矩形区域 /// </summary> /// public enum MouseType {left 0,right 1,middle 2 …

MySQL线上慢SQL问题分析处理小记

相同数据量表结构&#xff0c;线上执行12s 本地执行0.1s过程分析 1. 慢SQL信息 SELECT t1.id,t2.idFROM t_platform_target_standard_target_index t1LEFT JOIN t_platform_target_standard t2 ON t1.target_number t2.target_numberWHERE t1.delete_flag 0 AND t2.user_num …

基于STM32的光电传感器应用开发实例

基于STM32的光电传感器应用开发是一种常见的嵌入式系统应用&#xff0c;光电传感器可以用于检测物体的有无、位置、颜色、亮度等信息&#xff0c;被广泛应用于工业自动化、机器人技术、智能家居等领域。本文将介绍如何在STM32上进行光电传感器应用开发&#xff0c;并提供相应的…

Word 将页面方向更改为横向或纵向

文章目录 更改整个文档的方向更改部分页面的方向方法1&#xff1a;方法2&#xff1a; 参考链接 更改整个文档的方向 选择“布局”>“方向”&#xff0c;选择“纵向”或“横向”。 更改部分页面的方向 需要达到下图结果&#xff1a; 方法1&#xff1a; 选:中你要在横向页面…

基于vim的开发编辑器配置

整体的vim的设置是在 /etc/vim/vimrc 文件中。如果想设置所有用户的配置&#xff0c;在里面设置就可以了,配置和.vimrc是一样的&#xff0c;在最后面添加下面2中的语句。 不建议修改/etc/vimrc 文件&#xff0c;每个用户可以在用户根目录中设置vim&#xff0c;新建.vimrc。命令…

在 Ubuntu 上安装 pip的方法

下面是在Ubuntu上安装pip的完整攻略&#xff1a; 一、安装pip前的准备工作 在开始安装pip之前&#xff0c;我们需要先进行一些准备工作&#xff0c;包括更新软件源和安装必要的依赖。 更新软件源 使用以下命令更新软件源&#xff1a; sudo apt-get update安装必要的依赖 …

VSCode的介绍和入门

VSCode简介 跨平台&#xff1a;VSCode支持Windows、macOS和Linux等多种操作系统。开源&#xff1a;VSCode使用MIT许可协议&#xff0c;允许用户自由修改和分发源代码。支持多种编程语言&#xff1a;VSCode支持C、C、JavaScript、TypeScript、Python、Java、PHP、Go、HTML/CSS等…

探索 Node.js 与 C++ 的绑定:使用 node-addon-api

在 Node.js 中使用 C 进行绑定是一种强大的方式&#xff0c;可以充分利用 C 的性能优势。在本文中&#xff0c;我们将探讨如何使用 node-addon-api 来实现这一目标。 1. 为什么选择 C 绑定&#xff1f; Node.js 是一个基于 JavaScript 的平台&#xff0c;它使得开发人员能够使…

GPT系列概述

OPENAI做的东西 Openai老窝在爱荷华州&#xff0c;微软投资的数据中心 万物皆可GPT下咱们要失业了&#xff1f; 但是世界不仅仅是GPT GPT其实也只是冰山一角&#xff0c;2022年每4天就有一个大型模型问世 GPT历史时刻 GPT-1 带回到2018年的NLP 所有下游任务都需要微调&#x…

Pycharm 切换interpreter---python的环境和第三方库问题

这篇回答两个问题&#xff1a; 1.为什么在 pycharm中打开新的project&#xff0c;切换interpreter 之后发现自己之前装的库消失了&#xff1f; 2.为什么 interpreter 切换到python3.8了&#xff0c; terminal 还是在 3.9&#xff1f;&#xff1f; 问题的关键&#xff1a;搞懂什…

编程笔记 html5cssjs 012 HTML分块

编程笔记 html5&css&js 012 HTML分块 一、HTML 块级元素二、HTML 内联元素三、HTML <div> 元素四、HTML <span> 元素五、HTML<article>元素六、<article>元素和<div>元素的区别与联系小结 像报纸排版一样&#xff0c;很多时候需要把平面…

LTPI协议的理解——2、LTPI实现的底层架构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LTPI协议的理解——2、LTPI实现的底层架构 前言一、体系结构三、实现细节四、物理接口信号传输方法总结 前言 前面讲了LTPI的定义和大概结构&#xff0c;接下来继续理解LTPI…

【百度前端三面面试题】

在某乎看到的《百度前端三面面试题全部公开&#xff0c;三面的最后一个问题令我窒息》 其中下面三个问题没有给出答案&#xff0c;我虽然是前端出身&#xff0c;但也面试过一些人&#xff0c;大概分析一下这些问题。 面试中问这几个问题的目的是什么 &#xff0c;怎么回答 上…

理解开源协议GPL、MIT、BSD、Apache License

开源协议是一种法律文件&#xff0c;规定了使用、修改和分享开源软件的规则和条件。以下是一些常见的开源协议及其相同点和区别&#xff1a;GPL&#xff08;GNU General Public License&#xff09;&#xff1a;GPL 是一种比较严格的开源协议&#xff0c;要求使用者如果对开源软…

MySQL 数值函数,字符串函数与多表查询

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可. 数值函数 三角函数 指数与对数函数 进制间的转换函数 字符串函数 注:LPAD函数是右对齐,RPAD函数是左对齐 多表查询 注:如果为表起了别名,就…