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

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

数据挖掘目的:

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

此处涉及重复项

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

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

一、引入相关库

import pandas as pd
from collections import defaultdict
import datetime

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

二、数据特征

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

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

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

Stkcd Date(日度) Text
000002 2022-12-31 下过雨的夏天傍晚
000002 2022-12-30 我都会期待
........ ......... ..........
000002 2011-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()

八、输出数据结构特征

Stkcd Date(月度) 含有关键词的文本个数 关键词1词频 关键词2词频 关键词3词频
000002 2022-12 2 2 1 0
000002 2022-11 4 3 1 1
........ .........
000002 2011-01 3 2 2 0

九、写在最后

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

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

猜你喜欢

转载自blog.csdn.net/m0_56120502/article/details/130444917