批量统计文档指定高频词

本文介绍了如何从2012年至2016年的地级市政府工作报告中提取经济相关高频词汇,包括数据预处理、txt和docx文件转换、以及使用jieba库进行分词和统计的Python代码。脚本涉及文件操作和Excel数据存储。
摘要由CSDN通过智能技术生成

一、背景和功能

 统计2012-2016年间各地级市政府的工作报告中在政治、经济、文化等领域的已指定高频词汇(etc.指定经济类的词汇有发展、经济建设、GDP等)

 其中economy文件打开后如下,

二、存储格式

地级市分年份(不分月份了,没有删掉)

三、数据处理

如果是txt格式文档,可以直接使用,如果是docx格式文档,可以查看我的上一篇文章,有docx批量转txt的代码,转换后就可以直接使用下面的代码。

四、代码

import jieba
import os
import openpyxl

def save_city_year(city_filename, year_num):
    # 打开另一个存储的Excel文件
    outfile = "finaldata.xlsx"
    save_wb = openpyxl.load_workbook(outfile)
    save_sheet = save_wb.active
    # 存储
    year = int(year_num[0:4])
    save_sheet.cell(row=year-2010+5*(city_num-1), column=1, value=city_filename)
    save_sheet.cell(row=year-2010+5*(city_num-1), column=3, value=year)
    # 保存新的Excel文件
    save_wb.save(outfile)

def jiebafenci(txt, year_num, city_num):
    type_num = 0;  # 记录类型数量
    for type_path in os.listdir(r'E:\high_frequency_words'):
        if type_path.endswith('.txt'):
            type_num = type_num+1;
            need_words = open(type_path, encoding="utf-8").read()  # 这个是要查找的词的txt文件 每个词一行
            wordslist = need_words.split()

            jieba.load_userdict(type_path)
            words = jieba.lcut(txt)#要查找的词
            counts = {}
            for word in words:
                counts[word] = counts.get(word, 0) + 1
            lst = []

            # 打开另一个存储的Excel文件
            outfile = "finaldata.xlsx"
            save_wb = openpyxl.load_workbook(outfile)
            save_sheet = save_wb.active

            type_word_num = 0;  # 该类型的词数
            for i in range(len(wordslist)):
                try:
                    # print(wordslist[i], counts[wordslist[i]])
                    type_word_num=type_word_num+counts[wordslist[i]]
                except:
                    lst.append(wordslist[i])
            # print('不存在的词:', lst)
            #存储
            year = int(year_num[0:4])
            save_sheet.cell(row=year-2010+5*(city_num-1), column=type_num+4, value=type_word_num)
            # 保存新的Excel文件
            save_wb.save(outfile)


if __name__ == '__main__':
    root_folder = r'E:\high_frequency_words\地级市政府工作报告'
    city_num=0;
    # 确保指定的文件夹存在
    if not os.path.exists(root_folder):
        print("指定的文件夹不存在。")
    else:
        # 遍历Word文档文件夹中的所有Word文档
        for province_filename in os.listdir(root_folder):
            print(province_filename)
            if province_filename.endswith("省") or province_filename.endswith("市") or province_filename.endswith("区"):
                province_folder = os.path.join(root_folder, province_filename)
                for city_filename in os.listdir(province_folder):
                    if city_filename.endswith("市"):
                        city_num=city_num+1;
                        city_folder = os.path.join(province_folder, city_filename)
                        for txt_name in os.listdir(city_folder):
                            # print(txt_name)
                            if txt_name.endswith('2012.txt') or txt_name.endswith('2013.txt') or txt_name.endswith('2014.txt') or txt_name.endswith('2015.txt') or txt_name.endswith('2016.txt'):
                                txt_path = os.path.join(city_folder, txt_name)
                                # print(txt_path)
                                txt = open(txt_path, encoding="utf-8").read()  # 'wuxi.txt' 更换你的文件(txt格式)
                                jiebafenci(txt, txt_name, city_num)
                                save_city_year(city_filename, txt_name)


  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值