查看原文
其他

数据集 | 使用Python对27G招股说明书进行文本分析

大邓 大邓和他的Python
2024-09-09


一、招股说明书

该数据集共有27G, 百度网盘分享容易被封。且格式比较乱, 有txt、pdf等, 汇总整理至csv中。

使用csv格式,只要定义相应的指标函数,就可以很方便得到相应文本变量。今天依然是做点做点简单的分析。


二、导入数据

截止2022.01.01,共有 3630 家公司,含 公司名、股票代码、日期、标题、报告文本 5个字段。

文末有获取方式

import pandas as pd

df = pd.read_csv('招股说明书.csv')
df.head()


# 招股记录数
len(df)
4630

三、定义指标函数

这里准备两个比较简单的指标,设计函数,可以理解为设计数据分析流水线某环节的输入和输出。

  • 报告长度
  • 情感得分
  • 其他指标...

例如

3.1 报告长度函数

  • 输入: 字符串
  • 运算: 计算字符长度
  • 输出: 数字
def length(text):
    return len(text)

text = '你好啊'
length(text)
3

3.2 某类词个数

  • 输入: 字符串
  • 运算: 使用某种词典(成熟的或自己开发),计算文本中正面词个数、负面词个数、总词数
  • 输出: 数字
import cntext as ct

#使用已有词典或自定义词典
diction = {'pos': ['独家''进步''发展''稳定''卓越''提高''成功'],
           'neg': ['丑闻''挪用''错过''不利''牺牲''干扰''过度']}

text = '公司在市场竞争中,主动发挥技术优势,取得了长足的发展。'

ct.sentiment(text=text, 
             diction=diction, 
             lang='chinese')
{'pos_num': 1,
'neg_num': 0,
'stopword_num': 7,
'word_num': 16,
'sentence_num': 1}
import cntext as ct

diction = {'pos': ['独家''进步''发展''稳定''卓越''提高''成功'],
           'neg': ['丑闻''挪用''错过''不利''牺牲''干扰''过度']}

def pos(text):
    #使用已有词典或自定义词典
    res = ct.sentiment(text=text, 
                       diction=diction, 
                       lang='chinese')
    return res['pos_num']


def neg(text):
    #使用已有词典或自定义词典
    res = ct.sentiment(text=text, 
                       diction=diction, 
                       lang='chinese')
    return res['neg_num']
    


text = '公司在市场竞争中,主动发挥技术优势,取得了长足的发展。'

print(pos(text))
print(neg(text))
1
0

四、批量运算

选中dataframe中某一列,使用apply应用某种计算函数。

#确保text这列所有的数据均为字符串
#如果不是字符串,强制转化为字符串
df['text'] = df['text'].astype(str)

df['Len'] = df['text'].apply(length)
df['Pos'] = df['text'].apply(pos)
df['Neg'] = df['text'].apply(neg)


df['Senti'] = (df['Pos']-df['Neg'])/(df['Pos']+df['Neg'])
df.head()

五、保存

最后保存为csv、或xlsx,具体根据自己需要进行选择。

  • df.to_csv()
  • df.to_excel()
#df.to_csv('result.csv', encoding='utf-8', index=False)
df.to_excel('result.xlsx', index=False)


六、获取数据集

转发本文至朋友圈,集赞 30 +, 加微信 372335839 ,备注【姓名-学校-专业-来意】获取本数据及代码。

精选文章

从符号到嵌入:计算社会科学的两种文本表示

资料 | 量化历史学与经济学研究

长期征稿 | 欢迎各位前来投稿

17G数据集 | 深交所企业社会责任报告

百度指数 | 使用qdata采集百度指数

推荐 | 社科(经管)文本分析快速指南

视频分享 | 文本分析在经管研究中的应用

Maigret库 | 查询某用户名在各平台网站的使用情况

MS | 使用网络算法识别创新的颠覆性与否

认知的测量 | 向量距离vs语义投影

Wordify | 发现和区分消费者词汇的工具

Asent库 | 英文文本数据情感分析

视频专栏课 | Python实证指标构建与文本分析

PNAS | 文本网络分析&文化桥梁Python代码实现

BERTopic库 | 使用预训练模型做话题建模

tomotopy | 速度最快的LDA主题模型

管理世界 | 使用文本分析词构建并测量短视主义

Wow~70G上市公司定期报告数据集

100min视频 | Python文本分析与会计

安装python包出现报错:Microsoft Visual 14.0 or greater is required. 怎么办?

R语言 | 使用posterdown包制作学术会议海报
R语言 | 使用ggsci包绘制sci风格图表
R语言 | 使用word2vec词向量模型

R语言 | 将多个txt汇总到一个csv文件中

继续滑动看下一个
大邓和他的Python
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存