其他
数据集 | 使用Python对27G招股说明书进行文本分析
一、招股说明书
该数据集共有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 ,备注【姓名-学校-专业-来意】获取本数据及代码。
精选文章
安装python包出现报错:Microsoft Visual 14.0 or greater is required. 怎么办?