【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"的文件中。

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

相关推荐
Yhame.1 小时前
深入理解 Java 中的 ArrayList 和 List:泛型与动态数组
java·开发语言
Dovir多多2 小时前
Python数据处理——re库与pydantic的使用总结与实战,处理采集到的思科ASA防火墙设备信息
网络·python·计算机网络·安全·网络安全·数据分析
mazo_command3 小时前
【MATLAB课设五子棋教程】(附源码)
开发语言·matlab
IT猿手3 小时前
多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
开发语言·人工智能·算法·机器学习·matlab
青春男大3 小时前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
88号技师3 小时前
几款性能优秀的差分进化算法DE(SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin)-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
Zer0_on3 小时前
数据结构栈和队列
c语言·开发语言·数据结构
一只小bit3 小时前
数据结构之栈,队列,树
c语言·开发语言·数据结构·c++
沐霜枫叶4 小时前
解决pycharm无法识别miniconda
ide·python·pycharm
一个没有本领的人4 小时前
win11+matlab2021a配置C-COT
c语言·开发语言·matlab·目标跟踪