本文介紹了一種基于Python的中文文本分析方法,用于從年報文件中提取含有關鍵詞的語句。方法使用jieba分詞庫進行中文分詞,通過自定義詞典提高分詞準確性。程序首先讀取并預處理文本(統一標點符號、去除換行符),然后按句分割文本并進行分詞處理,篩選出包含關鍵詞的語句,最后將結果(股票代碼、年份、關鍵詞、語句長度及內容)保存至Excel。該方法適用于批量處理上市公司文本數據,為后續分析提供結構化數據支持。
import os
import pandas as pd
import jieba
import jieba.analyseitem=0 #保存到excel上的行號
fileList=os.listdir('finaltxt')#已提取完畢的txt年報文件目錄
fileList.sort()#對年報按文件名進行排序
df=pd.DataFrame(columns=['code','year','sign','keyword','length','sentences'],index=range(1,50000))#預先設置列名,包括股票代碼、年報年份、標記、提取出該句子所依據的關鍵詞、文本字符長度、句子,創建50000行的空表,行數可自行估計設定
Dict=['','','']#自行錄入關鍵詞詞典,注意是英文符號for i in Dict:jieba.add_word(i)# 向jieba內加入這些詞語,防止被拆分
for index,i in enumerate(fileList): name=i[:-4].split('_')#根據txt文件名稱進行切分,例如文件名為873833_2023-12-31.txt,name[0]為873833,name[1]為2023-12-31with open('finaltxt\\'+i,'r',encoding='utf-8') as f: text=f.read()text=text.replace('\n','')#刪除換行符text=text.replace(';','。')#將分號統一換成句號textList=text.split('。') #按句號分割#遍歷每一句話,進行分詞和語句提取for i in textList:words=jieba.lcut(i)for word in words:if word in Dict:#如果識別到有分詞結果在關鍵詞詞典里,就錄入信息#向df里錄入信息df['code'][item]=name[0]df['year'][item]=name[1][:4]df['keyword'][item]=worddf['length'][item]=len(i)df['sentences'][item]=iitem+=1breakelse:continuef.close() print(str(index)+'完成')
df.to_excel('result.xlsx')