jieba分词与wordcloud词云

一.导入用到的模块

import jieba
import jieba.posseg as posseg
import jieba.analyse as analyse
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from scipy.misc import imread

 

二.jieba分词

2.1三种分词模式:精确、全、搜索分词

txt='现在就该用电脑了。把“MicroMsg”文件夹复制到电脑上,打开之前要装到电脑上的软件(微信聊天记录备份恢复助手)。' \
    '这时会弹出下面这个对话框,选择安卓版本微信。并把数据目录和资源目录都设置为“MicroMsg”文件夹。' \
    '设置好之后点击获取数据,这时下面的表格中会出现用户名。选中后点击查看记录就能看到消息记录了。' \
    '初次使用的时候功能授权那栏是空的,这个我之后会解释'

print(' '.join(jieba.cut(txt)))#精确模式
print(' '.join(jieba.cut(txt,cut_all = True)))#全模式
print(' '.join(jieba.cut_for_search(txt)))#搜索模式

结果如下:

现在 就 该 用 电脑 了 。 把 “ MicroMsg ” 文件夹 复制到 电脑 上 , 打开 之前 要 装到 电脑 上 的 软件 ( 微信 聊天记录 备份 恢复 助手 ) 。 这时 会弹 出 下面 这个 对话框 , 选择 安卓 版本 微信 。 并 把 数据 目录 和 资源 目录 都 设置 为 “ MicroMsg ” 文件夹 。 设置 好 之后 点击 获取数据 , 这时 下面 的 表格 中 会 出现 用户名 。 选中 后 点击 查看 记录 就 能 看到 消息 记录 了 。 初次 使用 的 时候 功能 授权 那栏 是 空 的 , 这个 我 之后 会 解释
现在 就 该 用电 电脑 了   把  MicroMsg  文件 文件夹 件夹 复制 复制到 电脑 上   打开 之前 要 装到 电脑 上 的 软件   微 信 聊天 聊天记录 记录 备份 恢复 助手    这时 时会 会弹 弹出 出下 下面 这个 对话 对话框   选择 安 卓 版本 微 信   并 把 数据 目录 和 资源 源目录 目录 都 设置 为  MicroMsg  文件 文件夹 件夹   设置 好 之后 后点 点击 获取 获取数据 数据   这时 时下 下面 的 表格 中会 出现 现用 用户 用户名 户名   选中 后点 点击 查看 记录 就 能 看到 消息 记录 了   初次 使用 的 时候 功能 授权 那 栏 是 空 的   这个 我 之后 后会 解释
现在 就 该 用 电脑 了 。 把 “ MicroMsg ” 文件 件夹 文件夹 复制 复制到 电脑 上 , 打开 之前 要 装到 电脑 上 的 软件 ( 微信 聊天 记录 聊天记录 备份 恢复 助手 ) 。 这时 会弹 出 下面 这个 对话 对话框 , 选择 安卓 版本 微信 。 并 把 数据 目录 和 资源 目录 都 设置 为 “ MicroMsg ” 文件 件夹 文件夹 。 设置 好 之后 点击 获取 数据 获取数据 , 这时 下面 的 表格 中 会 出现 用户 户名 用户名 。 选中 后 点击 查看 记录 就 能 看到 消息 记录 了 。 初次 使用 的 时候 功能 授权 那栏 是 空 的 , 这个 我 之后 会 解释

2.2结巴分词并获取对应的词性

print([(x.word,x.flag) for x in posseg.cut(txt)])

结果如下:

[('现在', 't'), ('就', 'd'), ('该', 'r'), ('用', 'p'), ('电脑', 'n'), ('了', 'ul'), ('。', 'x'), ('把', 'p'), ('“', 'x'), ('MicroMsg', 'eng'), ('”', 'x'), ('文件夹', 'n'), ('复制到', 'v'), ('电脑', 'n'), ('上', 'f'), (',', 'x'), ('打开', 'v'), ('之前', 'f'), ('要', 'v'), ('装到', 'v'), ('电脑', 'n'), ('上', 'f'), ('的', 'uj'), ('软件', 'n'), ('(', 'x'), ('微信', 'vn'), ('聊天记录', 'nz'), ('备份', 'n'), ('恢复', 'v'), ('助手', 'n'), (')', 'x'), ('。', 'x'), ('这时', 'r'), ('会弹', 'n'), ('出', 'v'), ('下面', 'f'), ('这个', 'r'), ('对话框', 'n'), (',', 'x'), ('选择', 'v'), ('安卓', 'nr'), ('版本', 'n'), ('微信', 'vn'), ('。', 'x'), ('并', 'c'), ('把', 'p'), ('数据', 'n'), ('目录', 'n'), ('和', 'c'), ('资源', 'n'), ('目录', 'n'), ('都', 'd'), ('设置', 'vn'), ('为', 'p'), ('“', 'x'), ('MicroMsg', 'eng'), ('”', 'x'), ('文件夹', 'n'), ('。', 'x'), ('设置', 'vn'), ('好', 'a'), ('之后', 'f'), ('点击', 'v'), ('获取数据', 'l'), (',', 'x'), ('这时', 'r'), ('下面', 'f'), ('的', 'uj'), ('表格', 'n'), ('中', 'f'), ('会', 'v'), ('出现', 'v'), ('用户名', 'n'), ('。', 'x'), ('选中', 'v'), ('后', 'f'), ('点击', 'v'), ('查看', 'v'), ('记录', 'n'), ('就', 'd'), ('能', 'v'), ('看到', 'v'), ('消息', 'n'), ('记录', 'n'), ('了', 'ul'), ('。', 'x'), ('初次', 'd'), ('使用', 'v'), ('的', 'uj'), ('时候', 'n'), ('功能', 'n'), ('授权', 'v'), ('那栏', 'r'), ('是', 'v'), ('空', 'a'), ('的', 'uj'), (',', 'x'), ('这个', 'r'), ('我', 'r'), ('之后', 'f'), ('会', 'v'), ('解释', 'v')]

2.3打开本地文件,分词,获得出现频率靠前的20个词

doupo = open('doupo_train.txt').read()
print(len(doupo))
print("  ".join(analyse.extract_tags(doupo, topK=20, withWeight=False, allowPOS=())))

结果如下:

5404008
萧炎  便是  目光  旋即  强者  斗气  却是  之中  有些  之上  火焰  能够  有着  实力  微微  脸庞  能量  而出  手掌  一道

 

三.词云制作

words=" ".join(jieba.cut(doupo))

img = imread('LOVE.png')
wordcloud = WordCloud(font_path = "simfang.ttf",background_color='white',mask=img).generate(words)

plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

首先将导入的斗破文本分词,读入背景图片(此处可以不设置背景,默认背景为四边形)

此处特别说明,如果做的是中文词云,一定要读入中文字体,因为wordcloud默认字体不支持中文

背景色不设置的话,默认是黑的

之后就是用matplotlib将图片显示出来了

结果如下:

我在将没有什么个性化设置的样例放出来:

 

希望对大家有帮助,开心编程。

嗯,今天我才知道原来程序员还有个1024节日(o´・ェ・`o)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值