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指定词云中字体字号的步进间隔,默认为1
w=wordcloud.WordCloud(font_step=2)
font_path指定文体文件的路径,默认None
w=wordcloud.WordCloud(font_path="msyh.ttc")
max_words指定词云显示的最大单词数量,默认200
w=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()
01-05 07:00