当前位置: 首页 > news >正文

基于Python的上市公司年报数字化词频统计:深入解析与实战

基于Python的上市公司年报数字化词频统计:深入解析与实战

随着数字化转型的不断深入,各行各业纷纷利用数据分析技术获取竞争优势。上市公司的年报作为重要的信息披露文件,包含了大量的文字数据。通过文本分析技术,特别是词频统计,可以有效地挖掘出其中隐含的趋势和关键信息。本篇文章将通过Python代码示例,详细讲解如何对上市公司年报进行数字化词频统计,帮助开发者理解和实践文本分析的基本流程。

一、文本分析的背景与意义

文本分析作为自然语言处理(NLP)的重要分支,可以从大量非结构化的文本数据中提取有价值的信息。上市公司年报中涉及的关键技术和数字化转型的相关内容,往往是投资者和分析师关注的焦点。通过词频统计分析,可以揭示这些年报中提到的关键技术词汇的出现频率,从而识别出公司在数字化领域的布局和关注点。

二、项目环境与数据准备

1. 环境准备
在进行文本分析之前,需要安装并配置好相关的Python环境和库。本项目主要依赖以下几个库:

pip install pandas jieba
  • pandas:用于数据读取和处理。
  • jieba:中文分词库,用于将中文文本分割成词语。

2. 数据准备
我们将使用一个包含2018至2020年上市公司年报的Excel文件作为数据源。数据读取过程如下:

import pandas as pddata = pd.read_excel("C:/Users/Desktop/文本分析/文本分析/年报2018_2020.xlsx", converters={u'Stkcd': str})
print(data.shape)  # 打印数据维度
data = data.sample(50)  # 随机抽取50个样本进行分析
data.shape

三、文本预处理

1. 自定义词典导入
为了提高分词的准确性,我们需要先导入一个自定义词典,这个词典中包含了我们感兴趣的关键词,例如“人工智能”、“云计算”等。通过以下代码实现词典的加载:

import jieba
import jieba.posseg as psg
jieba.load_userdict("数字化.txt")  # 导入自定义词典

2. 分词与词性标注

使用jieba库对文本进行分词,并进行词性标注,将结果保存在seg_word列中:

data["seg_word"] = data["MD&A"].apply(lambda s: [(x.word, x.flag) for x in psg.cut(s)])
data.head()

3. 去除标点符号
在分词结果中,我们需要去除无关的标点符号,只保留有意义的词语。通过以下函数实现:

def cleanx(seg_word):for i in seg_word:if i[1] == 'x':  # 'x'表示标点符号seg_word.remove(i)return seg_worddata['seg_word'] = data['seg_word'].apply(cleanx)
data.head()

四、关键词提取与词频统计

1. 关键词提取
接下来,我们从分词结果中提取自定义词典中的关键词:

de

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 倒计时:可添加可删除的倒计时函数
  • 从零开始手写STL库:Map
  • C++:list类(迭代器)
  • Spring SSM框架--MVC
  • [数据集][目标检测]手钳检测数据集VOC+YOLO格式141张1类别
  • 一:《Python基础语法汇总》— 数据类型与输入输出
  • sql总结
  • C++入门——21特殊的类
  • PostgreSQL下载、安装(Windows 10/11 64位)详细教程【超详细,保姆级教程!!!】
  • python——常见创建型设计模式
  • 仿RabbitMq实现简易消息队列正式篇(路由匹配篇)
  • BFS解决单源最短路问题
  • MySql 高阶二(SQL 性能分析)
  • QT翻金币小游戏(含音频图片文件资源)
  • c#使用Microsoft.Office.Interop.Word提示无法嵌入或操作型“ApplicationClass”。请改用试用的接口。
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Angular4 模板式表单用法以及验证
  • Facebook AccountKit 接入的坑点
  • Golang-长连接-状态推送
  • JavaScript 奇技淫巧
  • JavaScript服务器推送技术之 WebSocket
  • LeetCode算法系列_0891_子序列宽度之和
  • magento 货币换算
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • SpriteKit 技巧之添加背景图片
  • 阿里研究院入选中国企业智库系统影响力榜
  • 原生js练习题---第五课
  • 责任链模式的两种实现
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​secrets --- 生成管理密码的安全随机数​
  • ![CDATA[ ]] 是什么东东
  • # Panda3d 碰撞检测系统介绍
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C++17) std算法之执行策略 execution
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (二)Eureka服务搭建,服务注册,服务发现
  • (回溯) LeetCode 40. 组合总和II
  • (算法)N皇后问题
  • (循环依赖问题)学习spring的第九天
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .net Application的目录
  • .NET delegate 委托 、 Event 事件
  • .Net MVC + EF搭建学生管理系统
  • .Net Web项目创建比较不错的参考文章
  • .ui文件相关
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Autowired 与@Resource的区别
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ Socket学习 ] 第一章:网络基础知识
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [C#] 我的log4net使用手册