jieba结巴分词--关键词抽取_【python】结巴中文分词生成词云图

【背景】:业务需求,如果需要知道聊天对话中哪些词语或者话题占比最高,就需要词云图的帮助了

【引用】:这几篇博主真的写的非常的清楚了,顺序按我放的顺序看即可~

  • 结巴分词并生产词云图的详细代码
python 结巴分词学习 - 柳帅 - 博客园​www.cnblogs.com
21045ef9a8bb2e4ffa16eba24ce7053b.png
CSDN-专业IT技术社区-登录​blog.csdn.net
  • 面的链接是结巴的三种模式
CSDN-专业IT技术社区-登录​blog.csdn.net

【实例】:分成两个:1、生成词云图 2、词频统计并返回权重

  1. 生成词云图 :
1、生成词云图
from wordcloud import WordCloud
import matplotlib.pyplot as plt

import numpy as np
from PIL import Image

import jieba

# 数据获取
with open("C:hhh.txt",'r', encoding='gbk')as f:
    text=f.read()

# with open('dream is possible.txt','r',encoding='gbk')as f:
#     text=f.read()
#图片获取
mask=np.array(Image.open("C:heart.png"))--这是词云的背景图形状

# 数据清洗
# 屏蔽45
# STOPWORDS.add('45')

font=r'C:WindowsFontssimhei.ttf'---(必须引用字体不然代码会报错)
sep_list=jieba.lcut_for_search(text,)---(结巴有三种方式,全模式、精确模式、搜索引擎模式见链接3)
sep_list=" ".join(sep_list)
wc=WordCloud(
    scale=4,#调整图片大小---(如果设置太小图会很模糊)
    font_path=font,#使用的字体库
    max_words=200,  # 词云显示的最大词数
    margin=2,#字体之间的间距
    mask=mask,#背景图片
    background_color='white', #背景颜色
    max_font_size=200,
    # min_font_size=1,
    # stopwords=STOPWORDS, #屏蔽的内容
    collocations=False, #避免重复单词
    width=1600,height=1200 #图像宽高,字间距
)

wc.generate(sep_list) #制作词云
wc.to_file('词云.jpg') #保存到当地文件

# 图片展示
plt.figure(dpi=100) #通过这里可以放大或缩小
plt.imshow(wc,interpolation='catrom')
plt.axis('off')
plt.show()

【效果图1】:

d45339e7dc26bf02e8e5f98edf9921e6.png

2.词频统计并返回权重

2、词频统计并返回权重
from jieba.analyse import *
data = open("C:hhh.txt",'r', encoding='gbk').read()#读取文件
for keyword, weight in extract_tags(data, topK=30,withWeight=True,allowPOS=()):
    #topK为返回几个TF/IDF权重最大的关键词,默认值为20
    # withWeight为是否一并返回关键词权重值,默认值为False
    # allowPOS仅包括指定词性的词,默认值为空,即不筛选
   print('%s %s' % (keyword, weight))

【效果图2】:

b5ff5167e5c23cd7ae37ed21db416366.png

【问题】:写代码的时候中间遇到的问题

  1. UTF-8编码报错:我就试了一下gbk ,就可以读取了,所以遇到这类问题,可以多试试编码类型
  2. 词云图有重复词语:最后发现自己忘记加collocations=False了
  3. 图片太模糊:因为之前设置的scale=1,调成4后就好了
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值