1.jieba库的基本介绍
(1)、jieba是优秀的中文分词第三方库
- 中文文本需要通过分词获得单个的词语
- jieba是优秀的中文分词第三方库,需要额外安装
- jieba库提供三种分词模式,最简单只需掌握一个函数
(2)、jieba分词的原理
Jieba
分词依靠中文词库利用一个中文词库,确定汉字之间的关联概率
汉字间概率大的组成词组,形成分词结果除了分词,用户还可以添加自定义的词组
2.jieba库使用说明
(1)、jieba
分词的三种模式
- 精确模式、全模式、搜索引擎模式
精确模式:把文本精确的切分开,不存在冗余单词
全模式:把文本中所有可能的词语都扫描出来,有冗余
搜索引擎模式:在精确模式基础上,对长词再次切分
3、wordcloud
wordcloud
是优秀的词云展示第三方库,以词语为基本单位,通过图形可视化的方式,更加直观和艺术的展示文本。
基本使用
wordcloud 库把词云当作一个WordCloud对象
wordcloud.WordCloud()代表一个文本对应的词云
可以根据文本中词语出现的频率等参数绘制词云
绘制词云的形状、尺寸和颜色均可设定
以WordCloud对象为基础,配置参数、加载文本、输出文件
常规方法
w.generate ('分割后的分词') | 向WordCloud 对象中加载文本txt。w.generate('python and WordCloud') |
w.to_file(filename) | 将词云输出为图像文件,png或jpg格式 |
import wordcloud
c=wordcloud.WordCloud() #1.配置对象参数
c.generate("wordcloud by python") #2.加载词云文本
c.to_file("pywordcloud.png") #3.输出词云文件
wordcloud如何将文本转化为词云
- 1.分隔:以空格分隔单词
- 2.统计:单词出现次数并过滤
- 3.字体:根据统计配置字号
- 4.布局:颜色环境尺寸
配置对象参数
w= wordcloud.WordCloud(<参数>)
width | 指定词云对象生成图片的宽度,默认400像素w=wordcloud.WordCloud(width=600) |
height | 指定词云对象生成图片的高度,默认200像素w=wordcloud.WordCloud(height=400) |
min_font_size | 指定词云中字体的最小字号,默认4号w=wordcloud.WordCloud(min_font_size=10) |
max_font_size | 指定词云中字体的最大字号,根据高度自动调节w=wordcloud.WordCloud(max_font_size=20) |
font_step | 指定词云中字体字号的步进间隔,默认为1w=wordcloud.WordCloud(font_step=2) |
font_path | 指定文体文件的路径,默认Nonew=wordcloud.WordCloud(font_path="msyh.ttc") |
max_words | 指定词云显示的最大单词数量,默认200w=wordcloud.WordCloud(max_words=20) |
stop_words | 指定词云的排除词列表,即不显示的单词列表w=wordcloud.WordCloud(stop_words="Python") |
mask | 指定词云形状,默认为长方形,需要引用imread()函数from scipy.msc import imread mk=imread("pic.png") w=wordcloud.WordCloud(mask=mk) |
background_color | 指定词云图片的背景颜色,默认为黑色w=wordcloud.WordCloud(background_color="white") |
实例
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# from scipy.misc import imread
from imageio import imread
import jieba
f = open('火影忍者.txt','r',encoding='utf-8')
data = f.read()
res = jieba.lcut(data)
result = ''.join(res)
color_mask = imread('鸣人.jpg')
wc = WordCloud(
mask = color_mask,
font_path=r'search-ms:displayname=“本地磁盘%20(C%3A)”中的搜索结果&crumb=location:C%3A%5C\Fonts\ygyxsziti2.0.ttf',
background_color='yellow',
height=1300,
width=2600,
max_font_size=50,
min_font_size=1,
)
wc.generate(result)
wc.to_file('火影忍者.png')
plt.imshow(wc)
plt.show()