Python绘制词云图wordcloud - Go语言中文社区

Python绘制词云图wordcloud


假设文本内容为如下所示:

三支决策聚类理论模型与方法研究基于三支决策的微博中文反语识别研究数据分析的三层与三支属性约简系统研究基于决策粗糙集的模糊多分类三支决策方法与应用研究三支决策空间理论研究面向复杂数据的多粒度三支决策研究三支概念格构建理论与方法三支决策不确定性度量与精准推理研究中医人体健康状态辨识三支决策问题研究直觉模糊信息下的三支决策粗糙集方法及知识获取研究在线流计算背景下的三支决策迁移学习基于三支决策的拟阵扩展理论研究复杂数据中的多粒度知识结构与三支决策分析面向不确定性数据分析的三支决策粗糙集模型算法和应用研究基于粒计算的动态三支决策理论与方法三支面向对象属性概念格的知识获取理论研究工业大数据的三支多粒度智能决策模型与方法多属性群决策的多粒度三支建模理论与方法序结构上三支形式概念分析与粗糙集理论的研究多结构上的三支决策空间理论研究基于三支决策的标记分布学习方法研究基于三支决策和强化学习的深空探测器非预期故障自主诊断与系统重构研究面向复杂数据的多粒度知识发现建模与三支决策分析三支决策扩展模型及其在荧光分子断层成像中的应用研究基于属性相关性与三支模糊集的粗糙集模型及其应用决策粗糙集的关键理论方法及其在应急管理中的应用研究基于区间数的决策粗糙集模型与方法研究基于决策粗糙集的代价敏感知识获取方法及其应用研究群决策下模糊决策粗糙集的冲突分析及其应用方法研究基于决策粗糙集的模糊多分类三支决策方法与应用研究面向复杂数据的动态决策粗糙集及其高效特征选择方法研究直觉模糊信息下的三支决策粗糙集方法及知识获取研究面向不确定性数据分析的三支决策粗糙集模型算法和应用研究’

第一步 分词

import jieba, re

# 加载自定义词典
jieba.load_userdict('userdict.txt')

# 导入停用词
with open('stopwords.txt', 'r', encoding='utf-8') as f:
    stopwords = f.readlines()

# 匹配中文分词
zhPattern = re.compile(u'[u4e00-u9fa5]+')
def cut_words(item):
    words = jieba.cut(item)
    return [word for word in words if zhPattern.search(word) and word not in stopwords and len(word) > 1 ]

words = cut_words(string)
words

得到分词后的结果
在这里插入图片描述

第二步 统计词频

import pandas as pd
import numpy as np

# 单词计数
df_all_words = pd.DataFrame({'words': words})
words_count = df_all_words.groupby(by=['words'])['words'].agg({'count': np.size})
# words_count = words_count.reset_index().sort_values(by=['count'], ascending=False) 降序
words_count

得到结果如下
在这里插入图片描述

第三步 绘制词云图

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline

 # 指定默认字体 SimHei为黑体,FangSong为仿宋
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] 

ascending_words_count = words_count.reset_index().sort_values(by=['count'], ascending=False)
matplotlib.rcParams['figure.figsize'] = (10.0, 10.0)

# font_path 字体路径
# scale分辨率,值越大,产生的图片分辨率越高,字迹越清晰

wordcloud = WordCloud(background_color='white', max_font_size=80, font_path='C:WindowsFontsSTZHONGS.TTF', scale=100)
word_frequence = {x[0]: x[1] for x in ascending_words_count.values}
word_frequence = wordcloud.fit_words(word_frequence)
plt.axis('off')  # 不显示坐标轴
plt.imshow(wordcloud)  # 显示在jupyter notebook上
plt.savefig('wordcloud.png')  # 保存到本地

结果如下:
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_17249717/article/details/102962410
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢