python统计文章中高频词汇并生成词云

LZ的同事写的文章经常被公司或者上级部门发表,LZ对此觉得同事写的文章一定有什么套路或者经常使用的词句,所以LZ收集了6篇同事的文章希望统计出其文章的高频词语以此可以效仿。

首先,把6篇文章放在同一个Text文档中,准备好词云需要的背景图片(有没有无所谓),然后,开始撸代码。。。。

import jieba.analyse #引入词库
import cv2 #图片处理
from PIL import Image
#from scipy.misc import imread
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator #词云
import docx
from matplotlib.font_manager import *

import codecs
import jieba
from collections import Counter  #统计
import matplotlib.pyplot as plt #数据可视化工具
from wordcloud import WordCloud
import imageio

# 1.读取数据
with open("E:\Desktop\pxx1.txt", "rb") as f:
    text = f.read()

# 2.基于 TextRank 算法的关键词抽取,top100
keywords = jieba.analyse.textrank(text, topK=100, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
file = ",".join(keywords)  #逗号分隔


list = jieba.cut(text)
c = Counter()

    #给分词定义条件进行筛选统计词频
for x in list:
    if len(x) > 1 and x != '\r\n':
        c[x] += 1

with open(r'E:\Desktop\bb.txt', 'w', encoding='gbk') as fw:
    for (k,v)in c.most_common():
        fw.write(k+' '+str(v)+'\n')
    fw.close()


# 指定中文字体,不然中文显示框框
font = r'./font/simhei.ttf'
print(file)
# 指定背景图,随意
image = cv2.imread('G:/Picture/413x626.jpg')

wc = WordCloud(
    font_path=font,
    background_color='white',  # 背景色
    mask=image,  # 背景图
    stopwords=STOPWORDS,  # 设置停用词
    max_words=100,  # 设置最大文字数
    max_font_size=100,  # 设置最大字体
    width=800,
    height=1000,
)

# 生成词云
image_colors = ImageColorGenerator(image)
wc.generate(file)

# 使用matplotlib,显示词云图
plt.imshow(wc)  # 显示词云图
plt.axis('off')  # 关闭坐标轴
plt.show()

# 保存图片
wc.to_file('news.png')


fig, ax = plt.subplots()
myfont = r'./font/simhei.ttf'
N = 20
words = []
counts = []
for line in open(r'E:\Desktop\bb.txt'):
    line.strip('\n')
    words.append(line.split(' ')[0])
    counts.append(int(line.split(' ')[1].strip('\n')))
colors = ['#FA8072']

#绘制前十条数据(N=20)
rects = ax.barh(words[:N], counts[:N], align='center', color=colors)
ax.set_yticklabels(words[:N],fontproperties="SimHei")
ax.invert_yaxis()
ax.set_title('pxx文章中的高频词汇TOP20',fontproperties="SimHei", fontsize=17)
ax.set_xlabel(u"出现次数",fontproperties="SimHei")
plt.show()

效果:

嗯。。。看来在文章里强调客户和工作很重要

  • 0
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python是一种强大的编程语言,可以轻松从Excel提取高频词汇生成词云Python有许多可用的库,如NumPy、Pandas、Matplotlib和WordCloud等。Pandas库可用于加载和处理Excel的数据,并创建DataFrame对象。可通过定义Pandas语句来反映数据框高频。然后使用WordCloud库创建单词云。使用WordCloud库后,可以定义颜色、字体和绘图区域大小。在运行Python脚本后,就可以生成漂亮的单词云! 实现这个过程的一些步骤包括: 1. 首先,要安装Pandas和WordCloud库,这可以使用pip install命令完成。 2. 然后,将Excel数据加载到Pandas,使用read_excel()方法即可。在这个步骤,文件路径,工作表名,列名称等各种属性都应该被指定。 3. 对于所选数据进行数据清洗。该步骤包括去除空数据、处理重复数据等。 4. 然后,使用built-in Counter库从数据框提取高频词汇。 5. 接下来,使用WordCloud库生成词云。可以通过设置字体、颜色、图像大小、边界等来调整单词云的外观。 6. 在最后一步,保存生成的单词云。 因此,Python可以方便地从Excel提取高频词汇生成漂亮的词云。这不仅是数据可视化工具的一个很好的例子,而且它是在Python使用标准库和第三方库的完美示例。 ### 回答2: Python从Excel提取高频词汇生成词云的步骤如下: 1.安装必要的依赖项:需要安装pandas、jieba和wordcloud模块,这些模块需要在Python进行安装。 2.导入Excel文档:使用pandas模块,可以轻松将Excel数据导入Python进行处理。将Excel的数据导入到DataFrame,以便进一步操作。 3.数据清洗:必须对数据进行标准化和清洗以进行下一步分析。首先,将所有字符转换为小写,并删除所有的标点符号和无用字母。使用jieba分模块将数据进行分。 4.计算高频:使用Python的 Counter 模块来计算每个单在文本出现的次数。根据结果筛选出高频。 5.生成词云:使用Python的wordcloud模块,输入需要生成词云的文本,并设置形状、样式和颜色等个性化参数,生成词云。 总的来说,使用Python从Excel提取高频词汇生成词云,需要熟悉相关Python模块,使用DataFrame进行数据处理、 Counter计数器来计算频,jieba对文本进行分和wordcloud生成词云来展示高频词汇。 ### 回答3: Python是一种强大的编程语言,可以对Excel表格的数据进行处理和分析。利用Python频计算模块和词云生成工具,我们可以很容易地从Excel表格提取高频词汇生成词云。 首先,我们需要将Excel表格读入Python的Pandas数据框架,并将所需列数据提取出来,然后进行文本预处理,例如去除标点符号、停用等。接着,我们可以利用Python的Counter模块计算单出现频率,得到一个以单为键、频次为值的字典。然后,我们可以使用Python的WordCloud包生成词云图像。 在生成词云时,我们可以设置一些参数,如词云形状、颜色、字体、大小等,以使生成词云更加美观和易读。此外,我们还可以根据需要对生成词云进行自定义处理,例如添加背景图片、调整词云排列方式等。 Python从Excel提取高频词汇生成词云的应用非常广泛,例如在市场营销、舆情分析、新闻报道等领域,都可以利用这种技术来帮助我们更好地理解大量文本数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值