Python上市公司年报jieba“环保”词频统计

2023-10-23 22:10

本文主要是介绍Python上市公司年报jieba“环保”词频统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标数据:统计上市公司年报全篇总词数和环保类关键词词数。

以长春高新(000661)2021年年度报告为例。

首先,由于年报文件为pdf格式,jieba无法直接处理,因此我们用pdfplumber读取pdf文件所有内容,并将其拼接成一整个字符串。代码如下:

import pdfplumber
path = '000661:2021年年度报告.pdf'
pdf = pdfplumber.open(path)
text_all = ""
for page in pdf.pages:text = page.extract_text() text_all = text_all+'\n'+text #字符串拼接
print(text_all)

运行得到该pdf所有内容的字符串,部分结果截图如下:

其次,使用jieba分词器对所得字符串进行分词切割,并导入停用词词典备用,停用词参考链接:https://www.cnblogs.com/demo-deng/p/9771593.html。代码如下:

import jieba
words = jieba.cut(text_all)
stop = open("stopwords.txt", "r", encoding='utf-8').read()# 打开停用词txt文件

接着,用for循环统计pdf全篇词频,去除掉停用词和字符串长度等于1的单个字,代码如下:

counts = {}# 创建空字典,用来接收统计结果
for word in words:if word not in stop:# 去除停用词if len(word) == 1:#去除字符长度为1的字continueelse:counts[word] = counts.get(word, 0) + 1#满足上述条件,频率加1           
print(counts)   

得到字典:

 最后,通过“环保类”关键词列表,统计环保词词数和全文总词数。环保类关键词参考《雾霾污染、政府治理与经济高质量发展(陈诗一、陈登科),经济研究》。代码如下:

items = list(counts.items())#转换为列表
items.sort(key=lambda x: x[1], reverse=True)#对词频进行降序排序
list_env = ['治理','PM10','PM2.5','雾霾','保护环境','资源','循环','全球变暖','酸雨','温室效应','节水','造林','绿化','扬尘','烟尘','尾气','大气','碧水','蓝天','污水','处理率','河长','绿地','美丽','水源','水耗','颗粒','联防','联控','联防','空气质量','环保','污染','能耗','减排','排污','生态','绿色','低碳','空气','二氧化硫','二氧化碳','可持续','清洁能源','化石燃料','煤','石油','天然气','太阳能','核能','回收'] 
list2 = []
m = 0
n = 0
for i in range(0,len(items)):word, count = items[i] #变量名word对应字典中的键对,变量名count对应字典中的键值m = m+count #m对应全篇所有词数if word in list_env: list2.append([word,count])n = n+count #n为所有环保类关键词个数的汇总
print(m,n)

运行得到总词数和环保词词数:

46223 92

完整代码如下:

import pdfplumber
import jiebapath = '000661:2021年年度报告.pdf'
pdf = pdfplumber.open(path)
text_all = ""
for page in pdf.pages:text = page.extract_text() text_all = text_all+'\n'+text #字符串拼接
#print(text_all)words = jieba.cut(text_all)
stop = open("stopwords.txt", "r", encoding='utf-8').read()# 打开停用词txt文件
#print(stop)
counts = {}# 创建空字典,用来接收统计结果
for word in words:if word not in stop:# 去除停用词if len(word) == 1:#去除字符长度为1的字continueelse:counts[word] = counts.get(word, 0) + 1#满足上述条件,频率加1           
#print(counts)   items = list(counts.items())#转换为列表
items.sort(key=lambda x: x[1], reverse=True)#对词频进行降序排序
list_env = ['治理','PM10','PM2.5','雾霾','保护环境','资源','循环','全球变暖','酸雨','温室效应','节水','造林','绿化','扬尘','烟尘','尾气','大气','碧水','蓝天','污水','处理率','河长','绿地','美丽','水源','水耗','颗粒','联防','联控','联防','空气质量','环保','污染','能耗','减排','排污','生态','绿色','低碳','空气','二氧化硫','二氧化碳','可持续','清洁能源','化石燃料','煤','石油','天然气','太阳能','核能','回收'] 
list2 = []
m = 0
n = 0
for i in range(0,len(items)):word, count = items[i] #变量名word对应字典中的键对,变量名count对应字典中的键值m = m+count #m对应全篇所有词数if word in list_env: list2.append([word,count])n = n+count #n为所有环保类关键词个数的汇总
print(m,n)

这篇关于Python上市公司年报jieba“环保”词频统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270760

相关文章

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v