[Python与经管学术]关键词词频统计与输出

出于学术研究目的,本文将讲述如何使用Python对Excel文本内容进行关键词统计。

数据挖掘目的:

① 判定该文本是否含有关键词(其中之一),若是则为1,否则为0 !!!

此处涉及重复项

② 判定该文本含有的关键词词频(每一个关键词)

③ 按照特定时间节点进行分组统计(公司*月度/年度)

一、引入相关库

import pandas as pd
from collections import defaultdict
import datetime

注释:datetime目的为将日期数据统一为月度或年度

二、数据特征

由于经济管理,特别是财会金融领域,非常多日度、月度以及年度的文本信息,因此文本分析成为研究的主流。例如,企业数字化转型、年报语调、年报可读性等。

数据结构:非平衡面板数据(公司个体*日度)

==>面板特征可以更改为年度、月度、周度

StkcdDate(日度)Text
0000022022-12-31下过雨的夏天傍晚
0000022022-12-30我都会期待
...........................
0000022011-10-01第一次呼吸畅快

三、读取Excel文件

def read_excel(file_path):
    df = pd.read_excel(file_path)
    return df

四、按照月度分组统计

由于我们一般不对日度数据或其他高频数据进行研究,因此常规来说我们需要进行月度、年度的分组,这里介绍按公司*月度分组统计日度信息。

def keyword_filter_and_count_by_month(df, company_column, date_column, text_column, keywords):
    df[date_column] = pd.to_datetime(df[date_column]).dt.to_period('M')
    grouped_data = df.groupby([company_column, date_column])

    summary_data = []

    for (company, month), group in grouped_data:
        num_filtered_rows = 0
        keyword_counter = defaultdict(int)

        for index, row in group.iterrows():
            text = row[text_column]
            row_keywords = set()
            for keyword in keywords:
                if keyword in text:
                    row_keywords.add(keyword)
                    keyword_counter[keyword] += 1

            if row_keywords:
                num_filtered_rows += 1

        keyword_counts = {k: keyword_counter[k] for k in keywords}
        summary_data.append((company, month, num_filtered_rows, *keyword_counts.values()))

    return summary_data

 五、写入EXCEL文件

def write_to_excel(summary_data, output_file_path, keywords):
    columns = ['证券代码', '月份', '包含关键词的提问个数'] + keywords
    summary_df = pd.DataFrame(summary_data, columns=columns)
    summary_df.to_excel(output_file_path, index=False)

六、主程序

def main():
    input_file_path = "EXCEL文件路径"
    output_file_path = '输出文件保存路径'
    company_column = 'Symbol'
    date_column = 'QuestionDate'
    text_column = 'QuestionContent'
    keywords = ["关键词1","关键词2".....]

    df = read_excel(input_file_path)
    summary_data = keyword_filter_and_count_by_month(df, company_column, date_column, text_column, keywords)
    write_to_excel(summary_data, output_file_path, keywords)

if __name__ == '__main__':
    main()

七、运行程序

if __name__ == '__main__':
    main()

八、输出数据结构特征

StkcdDate(月度)含有关键词的文本个数关键词1词频关键词2词频关键词3词频
0000022022-122210
0000022022-114311
.................
0000022011-013220

九、写在最后

作为经济管理财会金融学子,本人目前着手文本分析,因感此类研究较为丰富且长期热门,特撰该代码公布。当然,这类代码对商业分析、大数据等信息处理的实际应用也有帮助。

总之,望对各位研究有所帮助,如有,还望点赞+收藏+关注。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FerencABC

没饭吃了,帮帮孩子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值