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

文章目录

🍔jieba库

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

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

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

java 复制代码
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库

python 复制代码
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.导入必要的库:

python 复制代码
from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba

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

python 复制代码
text = open("a.txt", encoding="utf-8").read()
text = ' '.join(jieba.cut(text))

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

3.使用蒙版生成词云:

python 复制代码
mask = np.array(Image.open("ikun.png"))

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

4.生成词云对象:

python 复制代码
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.显示词云图:

python 复制代码
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

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

6.保存词云图到文件:

python 复制代码
wc.to_file("2.2wordcloud2.png")

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

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

相关推荐
小小小新人1212310 分钟前
C语言 ATM (4)
c语言·开发语言·算法
Two_brushes.18 分钟前
【linux网络】网络编程全流程详解:从套接字基础到 UDP/TCP 通信实战
linux·开发语言·网络·tcp/udp
weixin_4188138719 分钟前
Python-可视化学习笔记
笔记·python·学习
小白学大数据21 分钟前
R语言爬虫实战:如何爬取分页链接并批量保存
开发语言·爬虫·信息可视化·r语言
争不过朝夕,又念着往昔24 分钟前
Go语言反射机制详解
开发语言·后端·golang
Azxcc035 分钟前
C++异步编程入门
开发语言·c++
Danceful_YJ36 分钟前
4.权重衰减(weight decay)
python·深度学习·机器学习
Biaobiaone39 分钟前
Java中的生产消费模型解析
java·开发语言
我命由我123451 小时前
前端开发问题:SyntaxError: “undefined“ is not valid JSON
开发语言·前端·javascript·vue.js·json·ecmascript·js
特立独行的猫a1 小时前
11款常用C++在线编译与运行平台推荐与对比
java·开发语言·c++