词频统计和词云绘制

在前面我们已经提取了很多篇文章的内容,现在我们要对这些内容进行文本的词频统计和词云绘制,以观察热点内容。
在前文中,提取出的文本里有许多不需要的字符,比如列表的符号,因为是以列表的形式进行提取和存储的。将列表转换为字符串,可以使用’’.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")

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

本篇文章介绍使用Python进行英文文献词频统计绘制的方法。 1. 数据收集 首先需要收集要分析的英文文献数据。可以从网上搜索并下载文献的text或者pdf格式文件。 2. 数据处理 使用Python读入文献文件,并根据需要进行数据清洗预处理,例如去除标点符号、停用数字等。可以使用nltk库进行自然语言处理。 import string from nltk.corpus import stopwords from nltk.tokenize import word_tokenize from collections import Counter #读入文献文件 with open(r"path/to/file.txt","r", encoding="utf-8") as f: text = f.read() #去除标点符号数字 text = text.translate(str.maketrans("", "", string.punctuation+string.digits)) #分并去除停用 tokens = word_tokenize(text.lower()) stop_words = set(stopwords.words("english")) filtered_words = [word for word in tokens if word not in stop_words] 3. 数据分析 使用Python统计词频,并将结果保存为字典或DataFrame,方便后续绘制或更进一步的分析。 #计算词频 word_count = Counter(filtered_words) #将结果保存为pandas DataFrame import pandas as pd df = pd.DataFrame.from_dict(word_count, orient='index', columns=['count']) 4. 绘制 使用Python绘制,可以使用wordcloud库。在绘制的时候可以对每个单附上对应的词频。 #导入wordcloud库 from wordcloud import WordCloud import matplotlib.pyplot as plt #将结果转换为字典格式 word_dict = {} for key in word_count: word_dict[key] = word_count[key] #绘制 wc = WordCloud(background_color="white", max_words=1000) wc.generate_from_frequencies(word_dict) plt.figure(figsize=(12,6)) plt.imshow(wc, interpolation='bilinear') plt.axis("off") plt.show() 完成以上代码后,就可以得到类似如下的词云图: 如图所示,大的表示在文献中出现的频率更高的单。通过来直观地展现文献中的主题关键,有助于提高阅读效率理解文章主旨。 本篇文章介绍了如何使用Python进行英文文献词频统计绘制。通过这些技术,不仅可以快速获取文献中的关键,也可以更深入地理解文献的内容结构。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值