词频统计和词云绘制

您所在的位置:网站首页 什么函数根据词频生成词云 词频统计和词云绘制

词频统计和词云绘制

2024-07-01 06:00| 来源: 网络整理| 查看: 265

在前面我们已经提取了很多篇文章的内容,现在我们要对这些内容进行文本的词频统计和词云绘制,以观察热点内容。 在前文中,提取出的文本里有许多不需要的字符,比如列表的符号,因为是以列表的形式进行提取和存储的。将列表转换为字符串,可以使用’’.join()方法,大家可以自行处理一下,这里不再赘述。 词频统计的基本思路是将文本中所有的内容先进行分词,然后再进行停用词去除,停用词就是那些没有意义的词语,比如“的”,“那么”,“如果”等等。由于在结果中发现分词的结果还是存在很多不需要的词,因此先对它们进行了清洗。这里,我所有的文本全部放在了D盘的绿色金融文本库下。 os.walk就是对文件夹进行遍历,提取出文件夹下所有文件。 我们先拿到清洗过的文本:

import os os.chdir(r'd:\\') text=[] text1='' for root,dirs,files in os.walk(r'D:\绿色金融文本库'): for i in files: path=os.path.join(root,i) with open(path,'r',encoding='gb18030',errors='ignore') as f: text=f.readline() text1=text1+text text1=text1.replace(' ','') text1=text1.replace('新华社记者','') text1=text1.replace('中国','') text1=text1.replace('月','') text1=text1.replace('近日','') text1=text1.replace('日','') text1=text1.replace('年','') text1=text1.replace('中','') text1=text1.replace('\n','')

文本清洗过后,需要进行分词和停用词取出,这里需要引入jieba包,并且需要一个停用词表(stopword.txt),停用词表可以在网上下载。 导入停用词表:

stopwords = {}.fromkeys([line.rstrip() for line in open(r'D:\stopword.txt',encoding='utf-8',errors='ignore')])

对文本分词并去除停用词:

import jieba strings=jieba.cut(text1) str='' for i in strings: if i not in stopwords: str+=i

获得去除停用词后的分词文本:

str1=jieba.cut(str)

接下来就是词频统计和词云绘制,词频统计需要引入collections包

import collections word_counts = collections.Counter(str1) # 对分词做词频统计 word_counts_top50 = word_counts.most_common(50) # 获取排名前50的词 word_counts_top50

在这里插入图片描述 最后生成词云,这里需要引入wordcloud包:

from wordcloud import WordCloud wc = WordCloud(background_color = "black",max_words = 300,font_path='C:/Windows/Fonts/simkai.ttf',min_font_size = 15,max_font_size = 50,width = 600,height = 600) wc.generate_from_frequencies(word_counts) wc.to_file("wordcoud.png")

在这里插入图片描述 从图片中我们也可以看到,绿色、环保、责任等关键词是属于热点,这与我们的主题是相关的。当然,由于前面文本提取的时候不是很完美,还是多了许多不需要的词(比如那两串英文字符),这里要说声抱歉了,大家可以下去自行处理。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3