本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法。分享给大家供大家参考,具体如下:

目标:

1.导入一个文本文件

2.使用jieba对文本进行分词

3.使用wordcloud包绘制词云

环境:

Python 3.6.0 |Anaconda 4.3.1 (64-bit)

工具:

jupyter notebook

从网上下载了一篇小说《老九门》,以下对这篇小说进行分词,并绘制词云图。

或点击此处本站下载jieba库。

这两个包都不是anaconda自带的,需要按官网的步骤安装。

import wordcloud as wc

import jieba

import matplotlib.pyplot as plt

from scipy.misc import imread

%matplotlib inline

plt.rc('figure', figsize=(15, 15))

首先读取文件,保存到一个字符串对象中。

all_text = open(file='老九门.txt', encoding='utf-8').read()

查看一下字符串的内容,发现其中有很多多余的字符:'\n'、'\u3000'。

all_text

'\ufeff《盗墓笔记》中,一段与二月红有关的故事。\n《老九门》壹:二月红①\n丝帐许久没有换过了。\n\u3000\u3000她半夜入不了眠,睁开眼睛,便看到床边垂下的帐面,在月光下看着有一死暗淡。原来可是丝丝的带着光亮,好像最白的银拉出来的丝一般。\n\u3000\u3000果然再好的东西,也总是由好往坏了去。\n\u3000\u3000以往一过立秋,... ...

在分词之前先把这些多余字符剔除掉。

all_text = all_text.replace('\n', '' )

all_text = all_text.replace('\u3000', '')

下面先尝试做一次分词,把所有分词用空格分开,输出看一下分词的结果:

seg_list = jieba.cut(all_text, cut_all=False)

words =' '

for seg in seg_list:

words = words + seg + ' '

print(words)

 《 盗墓 笔记 》 中 , 一段 与 二月 红 有关 的 故事 。 《 老 九门 》 壹 : 二月 红 ① 丝帐 许久 没有 换过 了 。 她 半夜 入 不了 眠 , 睁开眼睛 , 便 看到 床边 垂下 的 帐面 , 在 月光 下 看着 有 一死 暗淡 。 原来 可是 丝丝 的 带 着 光亮 , 好像 最白 的 银拉 出来 的 丝 一般 。 果然 再 好 的 东西 , 也 总是 由 好 往坏 了 去 。 以往 一过 立秋 , 她 就 会 亲自 拆 下 这块 帐头 , 亲自 去 漂洗 , 她 知道 这 东西 的 脾气 , 得 小心 伺候 着 , 一寸 一寸 地过 水 。 如今 不让 她 下床 , 这 东西 没 人 伺候 了 , 倒 也 显得 越来越 不值 当 被 这么 细心 对待 起来 。 也许 , 下 一个 立秋 的 时候 , 才 有人 敢动 这个 东西 , 但 那个 人 , 必然 不是 自己 了 。 中午 大夫 和 他 说 的 那些 话 , 虽然 是 在 屋外 , 但是 她 还是 听到 了 几分 , 自己 的 病 , 不 知道 还有 多少 日子 可熬 。 她 舒 了 口气 , 胸中 的 那丝 痛楚 似乎 好 了 一些 。 多少 日

... ...

从分词结果里可以发现,有一些固定词语,例如“盗墓笔记”、“老九门”、“二月红”、“张大佛爷”、“齐铁嘴”等书名、人名被分开了。在这篇小说的环境下,这些才成为固定词语,而默认的分词策略根据通常的认识来分词的。

针对这个情况,jieba有一个“用户词典”的机制,把用户认为应该成为整词的,放到词典里,在分词的时遇到它们,就会当作一个整体。

在目录下新建一个文本文件dick.txt,输入以下词语:

老九门

二月红

盗墓笔记

张大佛爷

解九爷

解九

狗五

以下为jieba引入这个词典文件,再做一次分词:

jieba.load_userdict('dict.txt')

all_seg = jieba.cut(all_text, cut_all=False)

all_word =' '

for seg in all_seg:

all_word = all_word + seg + ' '

print(all_word)

 《 盗墓笔记 》 中 , 一段 与 二月红 有关 的 故事 。 《 老九门 》 壹 : 二月红 ① 丝帐 许久 没有 换过 了 。 她 半夜 入 不了 眠 , 睁开眼睛 , 便 看到 床边 垂下 的 帐面 , 在 月光 下 看着 有 一死 暗淡 。 原来 可是 丝丝 的 带 着 光亮 , 好像 最白 的 银拉 出来 的 丝 一般 。 果然 再 好 的 东西 , 也 总是 由 好 往坏 了 去 。 以往 一过 立秋 , 她 就 会 亲自 拆 下 这块 帐头 , 亲自 去 漂洗 , 她 知道 这 东西 的 脾气 , 得 小心 伺候 着 , 一寸 一寸 地过 水 。 如今 不让 她 下床 , 这 东西 没 人 伺候 了 , 倒 也 显得 越来越 不值 当 被 这么 细心 对待 起来 。 也许 , 下 一个 立秋 的 时候 , 才 有人 敢动 这个 东西 , 但 那个 人 , 必然 不是 自己 了 。 中午 大夫 和 他 说 的 那些 话 , 虽然 是 在 屋外 , 但是 她 还是 听到 了 几分 , 自己 的 病 , 不 知道 还有 多少 日子 可熬 。 她 舒 了 口气 , 胸中 的 那丝 痛楚 似乎 好 了 一些 。 多少 日子 了 ?

... ...

从这个结果来看,就不会再把人名、书名分开了。

以下开始制作词云。

制作词云,使用的是wordcloud包,由两个参数需要特别注意,一个是字体,一个是背景图片。字体好理解,就不解释了。背景图片,是词云显示的背景形状。这里选用了一个心形图案。

以下是词云制作过程:

# 引入字体

font=r"C:\WINDOWS\Fonts\simhei.ttf"

#读取背景图片,生成矩阵

color_mask = imread("love.jpg")

# 生成词云对象,设置参数

cloud = wc.WordCloud( font_path=font,#设置字体

background_color="black", #背景颜色

max_words=2000,# 词云显示的最大词数

mask=color_mask,#设置背景图片

max_font_size=100, #字体最大值

random_state=42)

# 绘制词云图

mywc = cloud.generate(all_word)

plt.imshow(mywc)

# 把词云图保存到磁盘文件中

mywc.to_file('老九门wordcloud.png')

以上就是使用python进行分词,并绘制词云图的简单操作。对于jieba和wordcloud的更高级的使用方法,还需要进一步研究和学习。

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法相关推荐

  1. python微信加人_Python 基于wxpy库实现微信添加好友功能(简洁)

    Python 基于wxpy库实现微信添加好友功能(简洁) 更新时间:2019年11月29日 10:21:29 作者:帅鸽水煮鱼 这篇文章主要介绍了Python 基于wxpy库实现微信添加好友功能,本文 ...

  2. python提取pdf文字_python基于pdfminer库提取pdf文字代码实例

    安装pdfminer 库 windows 下安装pdfminer3k pip install pdfminer3k Liunx 下安装pdfminer pip install pdfminer 代码 ...

  3. python怎么建立画板_Python基于opencv实现的简单画板功能示例

    本文实例讲述了Python基于opencv实现的简单画板功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np drawing = False # true ...

  4. python界面gui随机生成器_Python 实现的、带GUI界面的词云生成器

    详细说明: "词云"就是数据可视化的一种形式,给出一段文本,根据文本中词语的出现频率而生成的一幅图像,从而过滤掉大量的文本信息,人们只要扫一眼就能够明白文章主旨,使得数据分析的结果 ...

  5. ICCV 2021 | PMF: 基于视觉感知的多传感器融合点云语义分割方法

    作者丨月明星稀风萧萧@知乎 来源丨https://zhuanlan.zhihu.com/p/419187044 编辑丨3D视觉工坊 今天,我将分享一个 ICCV 2021 中的工作,基于视觉感知的多传 ...

  6. PMF: 基于视觉感知的多传感器融合点云语义分割方法(ICCV2021)

    作者丨月明星稀风萧萧 来源丨https://zhuanlan.zhihu.com/p/419187044 编辑丨3D视觉工坊 今天,我将分享一个 ICCV 2021 中的工作,基于视觉感知的多传感器融 ...

  7. python的jieba统计西游记_python运用jieba库统计《西游记》中相关分词出现次数最高的20个...

    import jieba txt = open("西游记.txt", "r", encoding='utf-8').read() words = jieba.l ...

  8. python jieba库下载_Python中jieba库安装步骤及失败原因解析

    Python 中 jieba 库安装步骤及失败原因解析 作为计算机小白, Python 的流行也让我蠢蠢欲动, 在请教计算机 专业同学后,开始上网课自学 Python 基础知识.今天老师简单的一 句话 ...

  9. python加密库_python基于pyDes库实现des加密的方法

    本文实例讲述了python基于pyDes库实现des加密的方法.分享给大家供大家参考,具体如下: 下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要 ...

最新文章

  1. JS三种简单排序算法
  2. 计算硼原子基态能级B---动能和势能
  3. python字典中append_零基础入手!Python中字典与集合的使用指南
  4. AcWing 3208. Z字形扫描
  5. CSU 1112 机器人的指令
  6. 关于Gateway的几个问题
  7. 纯英文换行的css,利用CSS实现纯英文数字自动换行
  8. 横流式冷却塔计算风量_10T-1000T冷却塔厂家批发零售
  9. 微服务升级_SpringCloud Alibaba工作笔记0011---Gateway常用的predicate
  10. 为什么用Ghost备份后会有两个文件?
  11. 实战 Windows Server 2012 群集共享卷
  12. 南方cass计算表面积_CASS在工程中的应用“计算表面积”的方法
  13. QT 打开选择文件对话框
  14. 海康云台摄像机 ISAPI 的签名机制与语音传输
  15. excel工作表合并
  16. php__file__用法,PHP 的常量__FILE__的用法图解
  17. android手机8g内存够用嘛,安卓旗舰机8GB运行内存到底够不够用?有必要上12GB吗?...
  18. 20194616 第一次作业
  19. git apply 打补丁
  20. 晓说2017-定期持续更新

热门文章

  1. Leetcode 581.最短无序连续子数组
  2. Cocos2d-x 3.0修改Android平台帧率fps - 解决游戏运行手机发热发烫问题
  3. Axis2联接WCF(比较完整的版本)
  4. RK3288的GTxx触摸屏驱动调试
  5. 年轻人“躺平”的生活方式,引起不少争议
  6. Android Studio查看aar文件内容
  7. 802.11 monitor模式
  8. Android input keyevent命令
  9. C#之根据域名获取IP地址
  10. pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换