Python wordcloud 库 自学3

1、中文分词第三方模块 jieba

  1. 首先导入 jieba 模块
  2. 利用 jieba 模块的 lcut 方法将一串字符串进行分词
  3. 分词得到的结果是一个列表
import jieba
textlist1 = jieba.lcut("你是一头小猪猪")
print(textlist1)

# output:['你', '是', '一头', '小猪猪']
  1. 利用字符串的 .join 方法将一个列表重新拼接成一个字符串
import jieba
textlist1 = jieba.lcut("你是一头小猪猪")
textlist2 = " ".join(textlist1)
print(textlist2)

# output:你 是 一头 小猪猪

2、中文分词库 jieba 的常用方法

精确模式

  • 每个词只用一遍,不存在冗杂词汇
import jieba
textlist1 = jieba.lcut("你是一头小猪猪")
print(textlist1)

# output:['你', '是', '一头', '小猪猪']

全模式

  • 把每个词可能形成的词汇都提取出来,可能形成冗杂
import jieba
textlist1 = jieba.lcut("你是一头小猪猪", cut_all=True)
print(textlist1)

# output:['你', '是', '一头', '小猪', '小猪猪', '猪猪']

搜索引擎模式

  • 将全模式分词的结果从短到长排列好
import jieba
textlist1 = jieba.lcut_for_search("你是一头小猪猪")
print(textlist1)

# output:['你', '是', '一头', '小猪', '猪猪', '小猪猪']

3、中文分词(不需要写 open 方法)程序举例

3.1、源代码

import wordcloud
import jieba
# 导入词云制作第三方库 wordcloud 和中文分词库第三方库 jieba

w = wordcloud.WordCloud(width=400, height=200, background_color="white", font_path="msyh.ttc")
# 构建词云对象 w、设置词云图片宽、高、字体、背景颜色等参数

txt = "其实乌鸦和人有一种共生关系,它们热爱人类,循其足迹,蹭吃蹭喝。有人类的弱点,怕孤独,呼啸成群。"\
      "它们肯定有自己的社会结构,只不过人对此没有耐心罢了:天下乌鸦一般黑。"
# 创建一个文本变量、用来存储一段文本

txtlist = jieba.lcut(txt)
# 利用 jieba 将文本 txt 进行分词、并形成一个列表传递给变量 txtlist

string = " ".join(txtlist)
# 利用字符串的 .join 方法将列表重新转换成字符串

w.generate(string)
# 将分词后的文本 string 变量传入 w 的 generate() 方法

w.to_file("wordcloud4.png")
# 将生成的词云保存为 wordcloud3.png 图片文件、保存出到当前文件夹中

3.2、导出图片

在这里插入图片描述

4、中文分词(需要写 open 方法)程序举例

4.1、源代码

import wordcloud
import jieba
# 导入词云制作第三方库 wordcloud 和中文分词库第三方库 jieba

w = wordcloud.WordCloud(width=400, height=200, background_color="white", font_path="msyh.ttc")
# 构建词云对象 w、设置词云图片宽、高、字体、背景颜色等参数

f = open("北岛 《蓝房子》.txt", encoding="utf-8")
txt = f.read()
# 创建一个文本变量、用来存储一段文本

txtlist = jieba.lcut(txt)
# 利用 jieba 将文本 txt 进行分词、并形成一个列表传递给变量 txtlist

string = " ".join(txtlist)
# 利用字符串的 .join 方法将列表重新转换成字符串

w.generate(string)
# 将分词后的文本 string 变量传入 w 的 generate() 方法

w.to_file("wordcloud4.png")
# 将生成的词云保存为 wordcloud3.png 图片文件、保存出到当前文件夹中

4.2、导出图片

在这里插入图片描述

5、对导出图片文字横竖排版的介绍

  1. 此处涉及到另一个参数 prefer_horizontal
  2. 参数默认值为 0.9(是一个浮点数)
  3. 表示在水平方向放置不合适,那么就竖着排
  4. 水平放置的词数占比 90%
  5. 当参数取 1 的时候,全是横着排版的
  6. 当参数取 0 的时候,基本是竖着排版的
  7. 以此类推,基本竖着排版(0)——全是横着排版(1)

prefer_horizontal 参数取 1

  • 源代码
import wordcloud
import jieba
# 导入词云制作第三方库 wordcloud 和中文分词库第三方库 jieba

w = wordcloud.WordCloud(width=400, height=200, background_color="white", font_path="msyh.ttc", prefer_horizontal=1)
# 构建词云对象 w、设置词云图片宽、高、字体、背景颜色等参数

f = open("北岛 《蓝房子》.txt", encoding="utf-8")
txt = f.read()
# 创建一个文本变量、用来存储一段文本

txtlist = jieba.lcut(txt)
# 利用 jieba 将文本 txt 进行分词、并形成一个列表传递给变量 txtlist

string = " ".join(txtlist)
# 利用字符串的 .join 方法将列表重新转换成字符串

w.generate(string)
# 将分词后的文本 string 变量传入 w 的 generate() 方法

w.to_file("wordcloud4.png")
# 将生成的词云保存为 wordcloud4.png 图片文件、保存出到当前文件夹中
  • 导出图片
    在这里插入图片描述
    prefer_horizontal 参数取 0
  • 源代码
import wordcloud
import jieba
# 导入词云制作第三方库 wordcloud 和中文分词库第三方库 jieba

w = wordcloud.WordCloud(width=400, height=200, background_color="white", font_path="msyh.ttc", prefer_horizontal=0)
# 构建词云对象 w、设置词云图片宽、高、字体、背景颜色等参数

f = open("北岛 《蓝房子》.txt", encoding="utf-8")
txt = f.read()
# 创建一个文本变量、用来存储一段文本

txtlist = jieba.lcut(txt)
# 利用 jieba 将文本 txt 进行分词、并形成一个列表传递给变量 txtlist

string = " ".join(txtlist)
# 利用字符串的 .join 方法将列表重新转换成字符串

w.generate(string)
# 将分词后的文本 string 变量传入 w 的 generate() 方法

w.to_file("wordcloud4.png")
# 将生成的词云保存为 wordcloud4.png 图片文件、保存出到当前文件夹中
  • 导出图片

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是我来晚了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值