当前位置:   article > 正文

jieba分词与wordcloud词云_jieba和wordcloud制作词云

jieba和wordcloud制作词云

一.导入用到的模块

  1. import jieba
  2. import jieba.posseg as posseg
  3. import jieba.analyse as analyse
  4. from wordcloud import WordCloud
  5. import matplotlib.pyplot as plt
  6. from scipy.misc import imread

 

二.jieba分词

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

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

结果如下:

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

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

结果如下:

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

 

三.词云制作

  1. words=" ".join(jieba.cut(doupo))
  2. img = imread('LOVE.png')
  3. wordcloud = WordCloud(font_path = "simfang.ttf",background_color='white',mask=img).generate(words)
  4. plt.imshow(wordcloud, interpolation='bilinear')
  5. plt.axis("off")
  6. plt.show()

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

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

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

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

结果如下:

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

 

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/728897
推荐阅读